System monitorowania temperatury – upgrade po 3 latach

System monitorowania temperatury z powiadamianiem, oparty o nettemp, zbudowałem ponad 3 lata temu. Całość opisałem w dwóch częściach: wpis 1 i wpis 2. W skrócie – układ opierał się na Raspberry v1, czujniki DS18B20 mierzyły temperaturę, całość, łącznie z wyświetlaczem LCD wsadziłem w obudowę Rack 19 1U i wkręciłem w szafę w serwerowni. Po 3 latach przyszedł czas na modernizację.

Rpi3 lepsze od RPi1

Pierwszym powodem modernizacji była możliwość zmiany Raspberry pierwszej generacji na 4-rdzeniową malinkę w wersji 3. Generalnie urządzenie przez 3 lata pracowało praktycznie bezawaryjnie 24 godziny na dobę, pomijając dwukrotne rozsypanie się struktury plików na karcie. Wadą było dość powolne działanie, skanowanie w poszukiwaniu nowych czujników trwało naprawdę długo, poruszanie się po menu też nie było jakoś bardzo płynne. Obsługa modemu (powiadamianie SMS) dość mocno obciążała CPU. Zastosowanie RPi3 o nieporównywalnie większej wydajności z pewnością wyeliminowałoby te niedogodności. Nowa płytka pociągnęła za sobą konieczność przeprowadzenia kilku zmian.

Modyfikacja zasilania – LM2596 zamiast 7805

Do Raspberry Pi 3 zaleca sie zasilacz o napięciu 5V i wydajności min. 2,1A. Napięcie oczywiście stabilizowane. W pierwotnym rozwiązaniu użyłem dwóch stabilizatorów LM7805 (opis tutaj). W zamyśle jeden miał zasilać płytkę, drugi peryferia. Dla energooszczędnej RPi 1 było to wystarczające. Z drugiej strony mało eleganckie, bo na wejście 7805 było podawane aż 15V, co przy poborze prądu na poziomie 1A dawało aż 10W strat i 5W mocy użytecznej czyli sprawność na poziomie 33%. Generalnie i transformator i radiator z 7805 były wyraźnie ciepłe. Takie rozwiązanie dla RPi 3 nie wchodziło w rachubę.

Rozwiązaniem byłby stabilizator impulsowy gdzie sprawność bez problemu przekracza 80%. By jak najmniej przerabiać istniejącą elektronikę, zdecydowałem się na zastosowanie taniego modułu z Chin na układzie (klonie) LM2596. Podobne rozwiązanie zastosowałem w zasilaczu do Raspberry / Banana Pi, gdzie nie do końca ufałem tej przetwornicy i użyłem jej jako układu obniżającego napięcia dla 7805, układ sprawdził się w boju i teraz bezpośrednio zasila malinkę. Na szybko usunąłem 2 radiatory ze stabilizatorami i kabelkami podpiąłem moduł przetwornicy:

Skręciłem potencjometr na minimum, włączyłem zasilanie i ustawiłem na złączu śrubowym napięcie 5,05V, które będzie zasilało Raspberry.

Modyfikacja obudowy rack

Raspberry 3 ma inny rozkład otworów montażowych i dodatkowe 2 porty USB. Wymusiło to nawiercenie na nowo otworów w dnie obudowy oraz poszerzenie otworu na tylnej ściance, to zrobiłem tanim multitoolem z marketu z mini tarczą do metalu. Cały proces niewarty opisywania i fotografowania, dosłownie 10 minut pracy. Potem wszystko podłączamy, tak jak w RPi1, czyli SDA i SCL od wyświetlacza do portów GPIO 2 i 3, Data z DS18B20 do GPIO 4, zasilanie 3V3 i GND:

Fork nettemp

Przemek z techfreak.pl postanowił chyba odpocząć od kodu nettempa, bo na githubie ostatnie zmiany były jakiś (spory) czas temu: https://github.com/sosprz/nettemp. Ale forum cały czas żywe
https://nettemp.pl/forum/ i chłopacy wzięli sprawy, a nawet kod w swoje ręce i jest fajny fork: https://github.com/mariano78/nettemp. Nie będę opisywał jak to zainstalować, bo na githubie jest to wyjaśnione, są też inne instrukcje, jak np. ta tutaj w formie wiki. Generalnie ten fork nettemp działa i ma parę dodatkowych funkcji.

Wykresy na ThingSpeak

W forku jest możliwość wysyłania danych do ThingSpeak. Coś podobnego opisałem kiedyś przy okazji zabaw z innych IoT: ESP easy – prosty sposób na obsługę czujników po WiFi. Generalnie tworzymy sobie kanał, fieldy pomiarowe, parametryzujemy je, spisujemy sobie WRITE API KEY. Po stronie nettempa wchodzimy w Device -> Device -> Settings, widzimy listę czujników:

Po prawej stronie widać przy każdym czujniku niebieski przycisk [More], po wciśnięciu włączamy widoczność w opcji thingspeak:

Teraz można przejść w podmenu do zakładki ThingSpeak, wpisać write API Key odczytany z kanału, przypisać czujniki z nettempa do fieldów, ustawić interwał wysyłania danych:

I cieszyć się odczytami w dowolnie skonfigurowanej formie z dowolnego miejsca świata z dostępem do netu, np. wykresy:

Albo zegary ze zdefiniowanymi zakresami (polami) w różnych kolorach:

Z poziomu ThigSpeak można sobie włączyć powiadomienia na Twittera itp. Oczywiście sam nettemp może nas informować o przekroczonych wartościach za pomocą smsów, maila czy wiadomościami Pushover na telefon z Androidem czy iOS. Mój kanał znajdziesz pod tym adresem:https://thingspeak.com/channels/475816

Posumowanie

Przedstawiona wyżej modernizacja ma właściwie same zalety. Na pewno odciążony jest transformator, który ma moc 12VA i teraz nie idzie to w ciepło, bo straty są pewnie z 10 razy mniejsze niż na liniowych stabilizatorach. Do tego nie ma lagów przy klikaniu po menu no i doszła fajna funkcja wysyłania danych do ThingSpeak i jak mam alert, to mogę sobie np. z domu sprawdzić jak te temperatury wyglądają na wykresach.

Możesz również polubić…

5 komentarzy

  1. pimowo pisze:

    Dziękuję za ten wpis. Jakby nie patrzeć jest to mała reklama NT, której bardzo nam trzeba.

  2. Wojtek pisze:

    Nie ma sprawy :). Nettemp fajnie działa, bardzo łatwo go wdrożyć.

  3. mariano78 pisze:

    Dodatkowo możesz użyć widgetu IoT ThingSpeak Monitor Widget i mieć fajny kafelkowy podgląd danych z TS na telefonie.

  4. pimowo pisze:

    Racja, sam używam do temperatury-jeden rzut oka na telefon i już wiem jaką mam temperaturę na zewnątrz. Najfajniejsze jest to, ze nie trzeba uruchamiać żadnej aplikacji czy przeglądarki aby zobaczyć 🙂

  5. Piotr Pitucha pisze:

    Kiedyś bawiłem się Nettempem i wszystko było klarowne, człowiek wiedział jak się tym posłużyć. Niedawno musiałem bawić się Domoticzem, poruszanie się po tym nie ma nic wspólnego z prostotą i logiką. 5 dla Nettempa 3 dla Domoticza, ( jestem starej daty, wtedy szóstek jeszcze nie było ).

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.