Zaczynam miniserię technicznych wpisów na temat własnego home-lab w cebulowym wydaniu, opartych na Raspberry Pi 4b 8GB. Trochę egzotyki na blogu nie zaszkodzi ;-)
Czym jest RaspberryPi?
O Raspberry Pi ↗ (pieszczotliwie malinka czy RPi) większość geeków słyszała. W dużym uproszczeniu to miniaturowy w pełni funkcjonalny komputer, który swoimi wymiarami zawstydza dzisiejsze smartfony. Posiada procesor, pamięć RAM oraz liczne bogato wyposażone peryferia.
W zależności od wersji “malinki” możemy spodziewać się komunikacji po LAN/WIFI/BT, a także złączy AUDIO/HDMI/USB (2.0 i 3.0) / rozserzeń 40 pinów (GPIO) oraz interfejsów wyświetlacza DSI i kamery CSI.
Malinka działa pod kontrolą systemu RaspberryPi OS (dawniej Rasbian), oparty na popularnym Debianie. Nic nie stoi na przeszkodzie, by móc korzystać z innych dystrybucji, jak chociażby Ubuntu w dedykowanej wersji, przygotowane przez Cannonical.
Słowo klucz “Home Lab”
Do tej pory korzystałem z przestarzałego notebooka o dużo gorszych parametrach niż najnowsza wersja RaspberryPi 4B. Służył za narzędzie do testowania szybkości działania internetu w kilku lokalizacjach, pośredniczył w kilku małych automatyzacjach domowych.
Jednym słowym - Homelab.
Przy okazji przeprowadzki do nowego domu zrobiłem porządek, kupując najmocniejsza wersję Malinki, stary sprzęt zutylizować, wyciągając jedynie dysk SSD o pojemności 120 GB. Zamówiłem kabel SATA firmy Ugreen, do połączenia dysku pod malinkę jako ten główny.
Ciekawostka - bazowe oprogramowanie RPi 4b wspiera boot dysków SSD bez konieczności aktualizacji firmware.
W międzyczasie na karcie pamięci 8 GB podstawiłem Raspberry OS i zacząłem zabawę od skonfigurowania środowiska stricte developerskiego (php, mysql, nodejs) obok oprogramowania Open Media Vault, będącego zalążkiem NAS.
Monitoring temperatury
Wymyśliłem sobie, ze będę monitorował temperaturę w domu i poza nim, korzystając z urządzeń bez konieczności lutowania, konfiguracji etc.
Z pomocą przychodzą rewelacyjne czujniki XIAOMI Mijia Bluetooth 2 ↗ (LYWSD03MMC), niewymagające żadnej ingerencji z naszej strony - poza włożeniem baterii CR2032. Komunikacja pomiędzy RPi a czujnikami Xiaomi odbywa się za pomocą Bluetooth - bez żadnej pośredniej bramki.
Za gromadzenie i wizualizację danych odpowiada trio TIG
czyli:
- Telegraf - agent / pośrednik do zbierania i wysyłania metryk i zdarzeń z baz danych, systemów czy ujników
- InfluxDB - baza danych (OpenSource) z serii Time Series Database, idealny dla projektów, w których generowane są duże ilości danych do zapisu i odczytu.
- Grafana - narzędzie do wizualizacji danych (wykresy, tabele) z różnych źródeł bazodanowych, w tym influxDB.
Pozostała kwestia odczytu pomiarów z czujników i przesłania ich do TIGu. Z pomocą przychodzi rewelacyjna społeczność na Githubie, w szczególności ten projekt ↗, który pozwala na odpytanie urządzenia po jego MAC i wysyłaniu informacji po RestAPI do influxdb.
Instalacja, konfiguracja, a także sposób przetwarzania to temat na inny wpis. W sieci można znaleźć kilka poradników, które sprawdzają. Zmieniając RaspberryPi OS na Ubuntu 20.10, wspierające w pełni 64 bit środowisko, nieco utrudniłem całość.