System monitorowania temperatury z powiadamianiem SMS – cz. 2

Poprzednia część zakończyła się na umieszczeniu modułów w obudowie i opisie ich połączeń. Teraz kolej na uruchomienie całości, podłączenie modemu, czujników i konfigurację. Mój system monitoringu składa się obecnie z dwóch czujników DS18B20 połączonych 4-żyłowym kablem telefonicznym (4 i 7 metrów), które mierzą temperaturę lewego i prawego rzędu szaf rackowych oraz czujnika wilgotności i temperatury DHT11 połączonego 5-metrowym kablem telefonicznym, który mierzy parametry zamkniętego, ciepłego korytarza między rzędami szaf. Ostatnie urządzenie zewnętrzne, to modem Huawei E220 wpięty w gniazdo USB, który wysyła SMS’y z powiadomieniami.

Instalacja nettemp na Raspbian Jessie Lite

Nettempa najlepiej zainstalować na czysty, zaktualizowany system, bez zbędnych dodatków (stabilność). Ja wybrałem Raspbian Jessie Lite z 9 lutego 2016. Po wgraniu obrazu na kartę odpaliłem Raspberry i dokonałem wstępnej konfiguracji. O podstawowych ustawieniach pisałem już tutaj: Pierwsze uruchomienie Raspbiana. Ważne jest rozszerzenie partycji na całą kartę SD, bez tego będą później same problemy.

Po skonfigurowaniu sieci (np. według tego opisu), aktualizacji systemu i instalacji pakietu git (sudo apt-get update && sudo apt-get upgrade && sudo apt-get install git) można przystąpić do instalacji nettempa. Informacje jak to zrobić, znajdują się na githubie: https://github.com/sosprz/nettemp. Ja instalowałem betę, więc wklepałem w terminalu:

Instalacja musi być przeprowadzona z uprawnieniami roota. Po pomyślnym zakończeniu skryptu z komunikatem informującym o zainstalowaniu nettempa, można przejść do konfiguracji. Jeśli jednak pojawiły się jakieś błędy, warto zajrzeć na forum nettemp.

Podłączenie czujników

Zgodnie z opisem w pierwszej części, czujniki są dołączane za pośrednictwem kabla telefonicznego i złącz RJ12. Wtyki RJ11 muszą być zaciśnięte w taki sposób: pin 2 do 5, 3 do 4, 4 do 3, 5 do 2, czyli wygląda to tak:

rj11 nettemp

Jak widać, nie jest to połączenie 1 do 1.

Podłączając natynkowe gniazdko telefoniczne będące obudową czujnika, rozkład wyprowadzeń wygląda jak niżej:

Gniazdo RJ12 jako obudowa czujników

Warto sprawdzić u siebie omomierzem, czy jest tak samo. Błędne połączenie może uszkodzić czujnik. Gniazdo natynkowe posiada jeszcze jedną zaletę – taśmę dwustronnie przylepną, co ułatwia mocowanie. W obudowie warto nawiercić kilkanaście otworów wiertłem 3mm, by ułatwić obieg powietrza dookoła czujnika.

Konfiguracja nettemp

Po instalacji na komputerze z jakaś przeglądarką internetową wklepujemy adres ip raspberry – pojawi się żądanie autoryzacji, gdzie login i hasło to admin admin. Od razu wyłączyłem to zabezpieczenie, logując się do panelu (okienka na górze po prawej: admin/admin) i po przejściu do zakładki Security->WWW Authmod i przełączyłem opcję na Off. Można już włączyć wyświetlacz LCD: zakładka Device->LCD i suwak na On przy pozycji 2×16 lub 4×20 znaków, czyli zależnie od posiadanego wyświetlacza.

LCD w nettemp

Jeśli jakaś zmiana ustawień wymaga restartu, od razu pojawia się odpowiedni komunikat. Raspberry może zostać ponownie uruchomione wprost ze strony www, bez konieczności logowania do terminala: zakładka Tools->Reboot. U mnie wyświetlacz wygląda tak:

LCD w nettemp

Konfiguracja czujników również nie nastręcza większych problemów. Układy DS18b20 podłączane pod 4 GPIO są wykrywane automatycznie – zakładka Device->Scan. W Devices, sekcji New devices mamy wykryte czujniki, które można dodać do systemu przyciskiem +. Nieco inaczej wygląda dodawanie DHT11/22 – przechodzimy do zakładki Devices->GPIO, wybieramy pin pod który podpięty jest czujnik, u mnie był to GPIO17. Klikamy na dodanym pinie w kolumnie Setting, ustawiamy mu nazwę oraz wybieramy DHT11/22.

Nettemp - dodawanie dht11/22

Ostatecznie dodany czujnik:

Czujnik DHT11 w nettemp

W zakładce Devices można ustawić wiele opcji każdego dodanego do systemu czujnika:

Konfiguracja czujników

Od kolejności wyświetlania w sekcji Status, poprzez nazwę, stan bazy danych, korektę wskazań, możliwość ustawienia alarmu (mail, sms), określenie wartości granicznych (min i max), tworzenie grup wykresów, po wyświetlanie danych czujnika na LCD i wykresach czy mapie.

Konfiguracja modemu sprowadza się do podłączenia, przejścia do zakładki Devices->USB/Serial i wybrania z listy rozwijanej wykrytego modemu w wierszu Modem SMS:

Modem w nettemp

W zakładce Settings->Modem wpisujemy nr centrum SMS danej sieci w formacie 48XXXXXXXXX. Ja używam Virgin Mobile ze względu na rok ważności konta (połączenia wychodzące), nr centrum to 48790998250. Nieco niżej można wysłać do siebie SMS testowy, format zapisu numeru jak wyżej. By otrzymywać sms z powiadomieniem, należy założyć użytkownika (Settings->Users) i wpisać mu numer telefonu oraz mail dla powiadomień otrzymywanych na skrzynkę pocztową. Serwer poczty wychodzącej ustawia się w Settings->Mail. Opcji jest w sumie sporo i warto sobie przeklikać nettempa.

Pierwsza zakładka to Status. Prócz czujników, można tu dodawać swoje widżety, np. pogodę, kalendarz google, okienko z poglądem kamery IP, stan GPIO i wiele innych. Przykłady można znaleźć na forum nettemp.

Zakładka status w nettemp

Zebrane przez czujniki dane można wyświetlać na wykresach. Domyślnie są one pogrupowane jako temperatura, wilgotność itd. Można tez zdefiniować swoje grupy, w zakładce Devices można przypisać dany czujnik do grupy i pojawi się zakładka, u mnie Group 1 gdzie mam temperatury i wilgotność na jednym wykresie:

Nettemp - zgrupowane wykresy

Jest oczywiście skalowanie osi czasu: godzina, dzień, tydzień, miesiąc itd. Można również robić to suwakami.

Odpalając w terminalu skrypt:

Otrzymamy po zalogowaniu do nettempa przez ssh taki ekran (wyjście CTRL+C):

figlet nettemp

Jest też mapa (zakładka Map), gdzie można wgrać np. rzut monitorowanego obiektu i rozmieścić czujniki, tak jak są faktycznie zamontowane.

Podsumowanie

Zbudowany przeze mnie system monitorowania serwerowni wykorzystuje tylko niewielkie możliwości nettempa. Oprogramowanie ciągle się rozwija i już obecnie umożliwia zbudowanie inteligentnego domu z pomiarem temperatury, pobieranej mocy elektrycznej i wielu innych parametrów. Jest możliwość sterowania przekaźnikami, odczyt i ustawianie stanów logicznych na GPIO, podłączenie czujki PIR itd. Po opis wszystkich możliwości i przykłady zastosowań przedstawione przez innych użytkowników odsyłam na forum projektu.

Kilka dni po wkręceniu do szafy rackowej, urządzenie pokazało swoją przydatność alarmując smsem i mailem o zbyt niskiej wilgotności w serwerowni (oczywiście w piątek po godz. 20), czemu winny okazał się uszkodzony nawilżacz.

Wpis “System monitorowania temperatury z powiadamianiem SMS – cz. 2” komentowano 4 razy

  1. Brawo!
    Bardzo dobry wpis. Fajnie się czyta-od deski do deski z wielkim zaciekawieniem.
    Pozdrawiam. Wielki fan systemu NetTemp 😉

  2. Wszystko ładnie, ale jakby jeszcze była odpowiednio stosowana interpunkcja, to nie trzeba by się domyślać, „co autor miał na myśli”.

Dodaj komentarz