RB-WiFi-TempLogger

RB-WiFi-TempLogger to jak sama nazwa wskazuje rejestrator temperatury. Projekt ten powstał z potrzeby zdalnego monitorowania temperatury w halach kortów tenisowych w okresie sezonu grzewczego. Urządzenie oparto o moduł NodeMCU v3, który wyposażony jest w mikrokontroler ESP8266 posiadający wbudowany moduł WiFi, umożliwiający bezprzewodową komunikację. Płytka PCB została zaprojektowana tak aby zmieściła się w obudowie Z52 firmy KRADEX, wyposażonej w uchwyty umożliwiające zamocowanie jej na ścianie. Wymiary urządzenia to 74x145x40 mm.

Na płytce PCB umieszczono diodę LED sygnalizującą status pracy urządzenia oraz przycisk przywracania ustawień fabrycznych. Ponadto zarezerwowano miejsce na wyświetlacz OLED 0.96”, dzięki czemu możliwe byłoby bezpośrednie wyświetlanie temperatur, ale głównym założeniem tego zabiegu było zwiększenie uniwersalności płytki pozwalającej na jej wykorzystanie w przyszłych projektach. Choć w urządzeniu znalazło się miejsce na akumulator typu 18650, oraz PCB wyposażone jest w obwód jego ładowania to do zasilenia urządzenie niezbędny będzie zwykły zasilacz o napięciu 5v oraz przewód z końcówką micro-USB. Wersja 1.0 płytki PCB umożliwiała zasilanie zasilaczem o napięciu w zakresie 7-12V, jednak w wersji tej, podczas zasilania jedynie z akumulatora występowały pewne problemy z poprawnym pomiarem jego napięcia.

Czas pracy na akumulatorze o pojemności około 2000mAh przy załączonym trybie oszczędzania energii oraz interwale pomiarowym wynoszącym 30 minut, wyniesie około 7 dni. Urządzenie obsługuje maksymalnie dwa popularne czujniki typu DS18B20, których zakres pomiarowy wynosi od -55 do 125°C.

Zaczynając pracę nad tym projektem, założyłem sobie, że akwizycja temperatury ma się odbywać poprzez jej zapis na zewnętrznym serwerze WWW wykorzystując metodę POST, na którym odpowiedni skrypt PHP będzie przetwarzał dane i umieszczał je np. w bazie danych. Podgląd temperatury będzie się odbywał poprzez przeglądarkę internetową, bądź w przypadku smartfonu przez dedykowaną aplikację. Prosty interfejs konfiguracyjny dostępny jest poprzez przeglądarkę internetową. Interfejs ten wyświetla aktualną temperaturę oraz stan naładowania akumulatora, a także umożliwia konfigurację sieci WiFi, do której ma być podłączone urządzenie, możemy także dokonać konfiguracji tzw. Klucza API identyfikującego urządzenie, adres serwera na jaki mają być wysyłane dane oraz nazwę skryptu PHP przetwarzającego przesyłane informacje, a także ustawienia interwału pomiaru temperatury. Możliwe jest również określenie etykiet czujników. Na stronie konfiguracyjnej możemy załączyć tryb oszczędzania energii, który stanowczo wydłuża pracę urządzenia na wewnętrznym akumulatorze. W trybie tym urządzenie łączy się z siecią WiFi, wykonuje pomiar oraz zapis temperatura serwerze, a następnie przechodzi w stan uśpienia na zadany interwał pomiarowy. W trybie tym nie ma możliwości komunikacji z urządzeniem poprzez stronę konfiguracyjną, ponieważ urządzenie pozostaje aktywne tylko na czas pomiaru i wysłania danych do serwera, który wynosi około 3 sekundy. Wyłączenie trybu oszczędzania energii wymaga przywrócenia ustawień fabrycznych. Podczas pierwszego uruchomienia, należy połączyć się z siecią WiFi rozgłaszaną przez urządzenie, a następnie wpisać jego adres IP w przeglądarce internetowej.

Specjalnie dla obsługi kortów stworzyłem prostą stronę internetową, która wyświetla w przystępnej formie aktualne temperatury w halach kortów tenisowych. Strona umożliwia także wyświetlanie wykresów, prezentujących zmiany temperatury w czasie. Strona dostępna jest tutaj.

W międzyczasie ciągłego ulepszania płytki PCB oraz programu mikrokontrolera, stworzyłem serwis internetowy, który obsługuje urządzenie. Jego funkcjonalność polega na możliwości założenia konta użytkownika, do którego następnie przypisujemy identyfikatory urządzeń. Serwis, podobnie jak strona wyświetlania temperatur na kortach, umożliwia przeglądanie wykresów zmian temperatur. Można dodać dowolną ilość urządzeń.