System monitorowania temperatury z powiadamianiem SMS – cz. 1
W dzisiejszym wpisie przedstawię poskładany z klocków kompletny system monitorowania temperatury z powiadamianiem sms i mail. Urządzenie jest oparte o Raspberry Pi, system raspian i darmowe oprogramowanie nettemp, które zawiera całą logikę. Założenie jest takie, by monitorować temperaturę w czterech/pięciu punktach serwerowni i wilgotność. Zbyt niska lub wysoka mierzona wartość ma powodować wysłanie smsa lub maila pod zdefiniowane wcześniej numery/adresy. Całość musi się zmieścić w obudowie 1U, która zostanie wkręcona do szafy rackowej.
Zestaw części niezbędnych do budowy
Budując system monitorowania i powiadamiania należy zaopatrzyć się w Raspberry Pi, mocniejsze Raspberry Pi 2 lub Banana Pi na którym również działa nettemp. Niezbędny jest również zasilacz stabilizowany 5V min. 2A, obudowa, czujniki i modem obsługiwane przez nettemp. Opcjonalnie można użyć wyświetlacza LCD 2×16 znaków i sterownika I²C.
Mój zestaw to:
- Raspberry Pi B i karta 8GB Class 10;
- Zasilacz DIY 2x5V 2×1,5A;
- Modem Huawei E220 i karta prepaid Virgin Mobile;
- Wyświetlacz LCD HD44780 2×16 znaków + driver I²C;
- 2 czujniki DS18B20 i 1 czujnik DHT11;
- Gniazda natynkowe RJ12 jako obudowy do czujników;
- Płytka DIY z gniazdami RJ12 do podłączenia czujników;
- Obudowa 1U po KVM’ie VGA;
- Kabelki żeńskie goldpin, kabel telefoniczny, inne drobiazgi.
Budowa systemu monitorowania temperatury z powiadamianiem
Budowę mojego systemu opartego na nettemp zacząłem od obudowy 1U i rozplanowanie w niej modułów. Pierwszy etap to usunięcie płyty głównej przełącznika KVM i odzyskanie z niej przydatnych części (transformator, radiatory, stabilizatory).
Zostawiłem instalację 230V, czyli przedni włącznik, tylne gniazdo z bezpiecznikiem i kable – idealnie nadadzą się w budowanym układzie. Wykorzystując zdemontowany transformator sieciowy i stabilizatory, zbudowałem klasyczny zasilacz liniowy z dwoma stabilizatorami LM7805. Zaprojektowana płytka posiada otwory montażowe pasujące pod gwintowane tuleje dystansowe obudowy.
Napięcia wyjściowe są dostępne za listwie ARK i goldpinach. Stabilizatory zostaną zamontowane na radiatorach poza PCB. Z założenia jeden obwód będzie zasilał Raspberry Pi, drugi pozostałe urządzenia typu wyświetlacz, modem itp.
Założyłem, że czujniki będę podłączał za pośrednictwem gniazd RJ12 i 4-żyłowego kabla telefonicznego. Wystarczyło zaprojektować prostą płytkę drukowaną, na której uwzględniłem rezystor 3,9kΩ podciągający linię DQ czujników DS18B20 do plusa zasilania. Płytka została wyposażona w 3 pinowe gniazdko do podłączenia z Raspberry Pi.
Najmniej wdzięczny etap prac, to przygotowanie obudowy. Na panelu przednim potrzebowałem otwór pod wyświetlacz LCD. Z uwagi na estetykę, nie było tu mowy o ręcznym wycinaniu multiszlifierką – zajął się tym znajomy, profesjonalnie wycinając metal frezarką. Tylną część ciąłem już sam dremelem, robiąc (prawie) prostokątne otwory pod gniazdka RJ12 małej płytki i kartę sieciową oraz USB Raspberry Pi. Pozostałe otwory po gniazdach VGA zostały finalnie zaślepione.
Między przedni, odkręcany panel, a pionową ściankę obudowy wstawiłem kawałek przezroczystego tworzywa z jakiegoś blistra, którego zadaniem jest ochrona wyświetlacza przed uszkodzeniem.
Do tak przygotowanej obudowy należało zamontować RaspberryPi, płytkę z gniazdkami, zasilacz, wyświetlacz i połączyć to wszystko ze sobą kabelkami.
Zdecydowałem się na niezbyt wygodne zasilanie RPi przez gniazdko microUSB tylko ze względu na dobre zabezpieczenie, znajdujące się na płytce komputerka. Stabilizowane +5V można też podpiąć do goldpinów, ale awaria np. stabilizatora na wyjściu którego wzrośnie napięcie, spowoduje uszkodzenie malinki. Zakup wtyczki microUSB i dolutowanie do niej dwóch kabelków pozwoli spać spokojniej :).
Przy podłączaniu całej reszty przydatna będzie rozpiska pinów w Raspberry Pi.
Stabilizatory LM7805 zasilacza przykręciłem do niewielkich radiatorków z odzysku – jedno i drugie posmarowałem pastą termoprzewodzącą, dzięki czemu scalaki oddają lepiej ciepło do radiatorków a te do metalowej obudowy. Zasilanie wyświetlacza LCD i sterownika I²C podłączyłem do drugiej sekcji stabilizującej +5V, linie SDA i SCL do pinów w Raspberry (GPIO2, GPIO3). Zasilanie płytki Z RJ12 zostało podłączone pod pin 3V3 i GND, linia DATA DQ do GPIO4. Po zaprojektowaniu płytki okazało się, że korzystnie byłoby użyć rówież czujnika DHT11. Zrobiłem więc małą przeróbkę – w skrajnym czarnym gnieździe RJ12 odciąłem linię DATA od rezystora i przylutowałem kabelek dołączony do GPIO17. Takie rozwiązanie wymusza dołączenie rezystora podciągającego do +3V3 – ja zamontowałem go bezpośrednio w obudowie czujnika.
Druga część zawiera opis instalacji i konfiguracji systemu, oraz podłączenie czujników i modemu: System monitorowania temperatury z powiadamianiem SMS – część 2.
A czy mógłbyś wrzucać schematy swoich układów? Ja wiem, że zasilacz na 7805 to abecadło ale pokazanie tego jako całość czy poszczególne moduły pomogłoby wielu amatorom zrozumieć klocki 🙂
Świetnie rozpisane. Myślałem nad czymś takim, ale po tym artykule biorę się do roboty. Dzięki!
Sam system robi wrażenie, w szczególności możliwość powiadamiania sms. Robiąc instalację samemu możemy zaoszczędzić sporo pieniędzy
witam,
Może moje pytanie będzie nie na miejscu, ale..czy dużym wyzwaniem byłoby zbudowanie w/w układu z pominięciem Raspberry Pi? Czy układ będzie trudno zbudować na płytce stykowej? czy mógłbym prosić o odpowiedź?
Pozdrawiam