BYDGOSZCZ Termometr internetowy Czyli mała chmura IoT P.K. 2017
Spis treści Wersje dokumentu... 2 Opis i zasada działania... 3 Budowa termometru... 4 Dioda RGB LED... 5 Instalacja i pierwsze uruchomienie... 6 Serwer... 6 Aktualizacja oprogramowania... 6 Adresacja urządzeń i kod PIN... 7 Termometr internetowy. Wersja v1.0 Strona 1
Wersje dokumentu Wersja: Data: Autor: Zmiany: v1.0 16-01-2017 P.K. Pierwsza wersja dokumentu Termometr internetowy. Wersja v1.0 Strona 2
Opis i zasada działania Urządzenie zostało zbudowane w oparciu o procesor ESP8266 firmy Espressif, który posiada wbudowany moduł komunikacji WiFi oraz porty wejścia/wyjścia GPIO. Jako czujniki temperatury zastosowano układy DS18B20 firmy Maxim, podłączone do ESP8266 za pomocą szyny 1-Wire. Termometry są fabrycznie skalibrowane, a dokładność ich pomiarów wynosi +/- 0,25 C. Standardowo urządzenie jest wyposażone w 3 czujniki do pomiaru temperatury: - wbudowany w urządzenie mierzy temperaturę wewnątrz obudowy, żeby np. zbadać, czy urządzenie się nie przegrzewa - zewnętrzny na krótkim kablu może np. mierzyć temperaturę w pomieszczeniu - zewnętrzny na długim kablu można go wyciągnąć za okno i będzie mierzył temperaturę zewnętrzną, bądź przypiąć opaską do rury przy grzejniku wtedy będzie można monitorować układ centralnego ogrzewania Przyporządkowanie portów GPIO do funkcji: GPIO1 TxD wyjście szeregowe RS232 do diagnostyki GPIO2 wbudowana dioda LED na module ESP8266 nie jest widoczna z zewnątrz GPIO3 wyjście sterujące przekaźnikiem, który załącza gniazdko 230V GPIO4 szyna 1-Wire do komunikacji z termometrami DS18B20 GPIO12 zielona część diody LED RGB GPIO13 niebieska część diody LED RGB GPIO14 wyjście sterujące drugim przekaźnikiem opcja, w tej chwili nie zamontowana GPIO15 czerwona część diody LED RGB Urządzenie odczytuje raz na minutę temperatury ze wszystkich podłączonych czujników DS18B20 i wysyła zebrane dane na serwer pod adresem IP 91.239.67.37. Termometr internetowy. Wersja v1.0 Strona 3
Budowa termometru Wygląd zmontowanego urządzenia przedstawia poniższy rysunek: Najważniejsze elementy to: 1 - Gniazdko 230V sterowane zdalnie 2 - Dioda LED czerwona - sygnalizuje stan gniazdka 230V. Gdy dioda świeci, to gniazdko jest włączone. 3 - Dioda wielokolorowa - RGB LED - sygnalizuje stan pracy urządzenia. Dokładny opis w rozdziale 4 - Sondy do pomiaru temperatury 5 - Kabel zasilający Termometr internetowy. Wersja v1.0 Strona 4
Dioda RGB LED Dioda pełni funkcję informacyjną wskazuje aktualny stan termometru, status ostatniej operacji itp. Od momentu włączenia urządzenia do prądu wskazywane są następujące informacje: Sygnał świetlny: Odpowiadająca mu informacja: Łagodna fala w kolorach: czerwonym, Urządzenie rozpoczyna pracę zielonym i niebieskim Impulsy w kolorze białym Wersja oprogramowania urządzenia obecnie wgrana jest wersja 34 (będą 34 impulsy) Impulsy w kolorze niebieskim, 2 grupy po 5 lub Urządzenie łączy się z siecią WiFi 6 impulsów Krótki impuls w kolorze fioletowym Sprawdzenie, czy jest dostępna nowa wersja oprogramowania Długi ciąg impulsów w kolorze fioletowym (ok. Pobieranie i instalowanie nowej wersji 15 sekund) oprogramowania ten krok jest opcjonalny i wykonywany tylko, jeśli nowe oprogramowanie jest dostępne. Jeśli tak, to po wgraniu nowego oprogramowania nastąpi restart urządzenia sygnalizacja diodą wróci do początku Jeden impuls (ok. 1s) w kolorze niebieskim Wymiana danych z serwerem aktualne temperatury są wysyłane, a pobierane są informacje o stanie gniazdka 230V czy je Impuls w kolorze zielonym (jasne światło, czas ok. 1s) włączyć, czy wyłączyć Komunikacja z serwerem przebiegła prawidłowo Lub impuls w kolorze czerwonym (jasne światło, czas ok. 1s) Krótkie impulsy w kolorze żółtym Ciągłe światło zielone (przygaszone) około 1 minuty Ciągłe światło czerwone (przygaszone) około 1 minuty Komunikacja z serwerem się nie powiodła błąd połączenia Ilość impulsów odpowiada ilości termometrów, z których udało się odczytać temperatury Stan ostatniej komunikacji z serwerem powiodła się Stan ostatniej komunikacji z serwerem wystąpił błąd Termometr internetowy. Wersja v1.0 Strona 5
Instalacja i pierwsze uruchomienie Przed ostatecznym zamontowaniem urządzenia w docelowym miejscu i przed zainstalowaniem czujników warto wykonać próbne uruchomienie, żeby sprawdzić czy urządzenie prawidłowo łączy się z siecią WiFi i czy odczyt temperatur działa prawidłowo. W tym celu rozpakowujemy urządzenie i włączamy do gniazdka sieciowego. Następnie kontaktujemy się z administratorem i informujemy go o podłączeniu urządzenia. Administrator poprosi o adres urządzenia zapisany na spodzie obudowy i zweryfikuje, czy dane z tego urządzenia są prawidłowo odbierane przez serwer. Jeżeli wszystko będzie działać, to będzie można zainstalować urządzenie w docelowym miejscu. Będzie można też nadać nazwy tak dla całego węzła jak i poszczególnych sond mierzących temperatury. Serwer Serwerem jest maszyna VPS (wirtualna) z wydzielonym dyskiem SSD 25GB znajdująca się w serwerowni w Poznaniu. Serwer odbiera dane od urządzenia i umieszcza je w bazie danych MySQL. Później - kiedy ktoś z komputera lub komórki wejdzie na stronę przeznaczoną dla danego termometra serwer na podstawie zebranych danych generuje wykresy. Na serwerze przechowywane jest również oprogramowanie dla termometrów. Aktualizacja oprogramowania Ponieważ platforma jest cały czas rozwijana (poprawki błędów, nowe funkcje), to powstają kolejne wersje oprogramowania termometrów. Obecna wersja na dzień 17-01-2017 to v34. Nowe oprogramowanie po wyprodukowaniu jest umieszczone na serwerze VPS, skąd jest zdalnie pobierane i instalowane przez termometry. Po włączeniu zasilania urządzenia zaraz po połączeniu z siecią WiFi urządzenie sprawdza, czy na serwerze jest dostępna nowsza wersja oprogramowania. Jeśli tak, to jest ono pobierane i instalowane. Instalacja nowego oprogramowania może również zostać wymuszona przez serwer kiedy termometr łączy się z serwerem i przekazuje odczyty temperatur może dostać w odpowiedzi komendę do załadowania nowego oprogramowania. Termometr internetowy. Wersja v1.0 Strona 6
Adresacja urządzeń i kod PIN Każde z urządzeń posiada swój unikalny identyfikator adres. Pozwala on na odróżnienie konkretnego urządzenia od pozostałych i dzięki temu przypisanie mu własnej strony internetowej do prezentacji odczytów temperatur oraz (w przyszłości) sterowanie gniazdkiem tego konkretnego urządzenia. Adres urządzenia jest brany z adresu MAC interfejsu WiFi jest on ustawiony przez producenta modułu ESP8266 w fabryce i dzięki temu można do wszystkich urządzeń wgrać takie samo oprogramowanie, a dalej będzie można urządzenia odróżnić od siebie. Znając adres urządzenia (zapisany pisakiem z tyłu obudowy) możemy wejść na stronę jego odczytów. W przeglądarce internetowej należy wpisać np: http://91.239.67.37/index.php?nodeid=18fe34cc94d9&period=3 nodeid to adres MAC urząrzenia, część 18FE34 jest stała, a po niej podajemy adres węzła napisany z tyłu obudowy. period przedział czasowy danych, dla którego ma być zrobiony wykres. Możliwe wartości to: 0- Ostatnie 10 minut 1- Ostatnia godzina 2- Ostatnie 8 godzin 3- Ostatnia doba 4- Ostatni tydzień 5- Ostatni miesiąc Aby ułatwić dostęp do wybranego węzła umieściłem linki na stronie http://mysiaki.eu pod zakładką Temperatura : Kod PIN nie jest obecnie używany w przyszłości będzie służył np. jako hasło, które będzie wymagane do zmiany stanu gniazdka 230V. Termometr internetowy. Wersja v1.0 Strona 7