Elektroda.pl
Elektroda.pl
X
BotlandBotland
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

HSWG 06 Maj 2020 09:03 1791 3
  • System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    Ponad 4 lata temu zbudowałem system monitorowania parametrów środowiskowych serwerowni (głównie temperatura) opartego na projekcie nettemp, a sprzętowo na Raspberry Pi. Działało to na tyle dobrze, że 3 lata później dokonałem małej modernizacji.
    Do zbudowania prezentowanego rozwiązania wykorzystałem:
    - obudowę rack 19" 1U po starym KVM;
    - Raspberry 3 (w pierwszej wersji Raspberry 1);
    - wyświetlacz LCD 2x16 znaków (HD44780) z modułem i2c;
    - modem Huawei E220 + prepaid Virgin Mobile;
    - czujniki 1-wire DS18B20 i DHT11
    - gniazda/wtyki RJ12 do łączenia czujników
    - zasilacz (transformator z kvm'a) dający na wyjściu 5V

    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    W panelu przednim kolega wyciął mi na CNC otwór pod wyświetlacz, Na tylnej ściance wyrżnąłem sam dremelem tak, by był dostęp do portów USB RPi oraz RJ12 do podłączenia czujników.

    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    Ze zdemontowanego zasilacza kvma wykorzystałem transformator, zaprojektowałem pod niego płytkę drukowaną z dwoma liniowymi stabilizatorami LM7805. W zamyśle jeden miał zasilać Raspberry, drugi czujniki i wyświetlacz. Generalnie przy obciążeniu 1A, miałem 5W mocy użytecznej i 10W strat, a transformator pracował na granicy wydajności prądowej, Modernizując zasilanie, LM7805 zastąpiłem chińskim modułem na LM2596, co wydatnie zmniejszyło obciążenia trafa.
    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    Do tego jeszcze mała płytka do gniazdek czujników
    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    Całość w obudowie
    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    Czujniki umieściłem w natynkowych gniazdach RJ12, nawiercając w obudowie otwory, by był tam jakiś przepływ powietrza:
    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    Część software'owa to Raspbian bez GUI i projekt nettemp. Oryginalny projekt umarł na jakiś czas, więc skorzystałem z forka, który dodawał parę funkcjonalności, w tym wysyłanie danych na ThingSpeak, projekt na https://github.com/mariano78/nettemp. Ostatnio jednak autor oryginału przepisał kod z PHP na Pythona, ale nie testowałem jeszcze tego. Link do repo https://github.com/sosprz/nettemp. Co do karty SD, to polecam jakąś firmową, najlepiej w wersji industrial. Początkowo miałem najtańszego Goodrama, ale co kilka miesięcy wysypywał się system plików. Teraz siedzi SanDisk Industrial i jest spokój.
    W konfiguracji ustawiłem sobie wysyłanie powiadomień sms, gdy temperatura przekroczy skonfigurowany próg.
    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    Dodałem też wysyłanie powiadomienia mailem. Do nettempa można podłączyć kamerki, skonfigurować open VPN'a, jest możliwość sterowania przez GPIO Raspberry, obsługa wielu czujników w tym bezprzewodowych na ESP. Jest też projekt stacji meteo. Generalnie całość jest bardzo elastyczna, jeśli chodzi o rozbudowę.
    Dane pobrane z czujników są zapisywane i na ich podstawie generowane są wykresy z historią z różną rozdzielczością czasową:
    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail ]Link[/url]

    Jak wspomniałem wyżej, fork posiada możliwość wysyłania danych do ThingSpeak, także zdalnie można sobie podejrzeć, co się dzieje:
    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    Plus takie gadżety z wartościami bieżącymi:
    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    Na wyświetlaczu LCD też można sobie skonfigurować wyświetlane parametry, generalnie nie jest on potrzebny, ot taki gadżet:
    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail


    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    System monitorowania temperatury (i nie tylko) z powiadamianiem SMS/mail

    Jeśli chodzi o koszty, to myślę, że można się zamknąć w 300-350zł. Największy wydatek to Raspberry Pi. Obudowę rack kupiłem na aukcji w cenie złomu, modem to też symboliczne pieniądze, podobnie jak czujniki, gniazdka itp. Myślę, że warto, tym bardziej, że dedykowane rozwiązania kosztują nawet 10x tyle i są mniej elastyczne.

    Fajne! Ranking DIY
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
    O autorze
    HSWG
    Poziom 21  
    Offline 
  • BotlandBotland
  • #2
    lokii
    Poziom 12  
    Ciesze się, że ktoś używa mojego forka. U mnie NT steruje ogrzewaniem, podlewaniem ogrodu, czyta info z inwertera PV i kilkoma innymi drobnymi funkcjami - takie mini smart home.
  • BotlandBotland
  • #3
    megrims
    Poziom 9  
    Kiedyś programowałem dużo i to bardzo fajne zajęcie, ale czy nie lepiej skonfigurować Raspbery + DS18B20 jako źródło danych SNMP dla zabbix'a? Zrobiliśmy tak u siebie w dwóch serwerowniach i działa. Inna sprawa to czy masz tylko 2 czujniki? My zrobiliśmy w jednej serwerowni dać 5 w drugiej 4. Długość przewodu to odpowiedni 5 i 3 metry. W zależności od ułożenia przewodów czasem są zakłócenia i nie wszystkie czujniki się budzą. Miałeś takie problemy? I to nie ma nic do tego zabbix. Po prostu nie było czasem w /sys/devices/w1_bus_master1 wszystkich czujników. Reboot pomagał z inaczej ułożonymi przewodami. Bardzo fajny projekt.
  • #4
    meksykaniec86
    Poziom 9  
    Podobnie jak kolega napisał, my również używamy Zabbixa do monitorowania temperatury. Jeżeli urządzenie nie wspiera SNMP to podłączamy UPSa. A podejrzewam, że raczej każdy ma taki zasilacz awaryjny :)
    Dodajemy czujkę w Zabbixie:
    ups_internaltemp
    I np taki trigger:
    {UPS:ups_internaltemp.max(#10,0)}>40
    Ten alarmuje gdy temperatura UPSa jest powyżej 40 stopni.