Sporo czasu minęło od ostatniego wpisu pierwszej części projektu stacji pogodowej. Nie mogłem się zmotywować do opisania części drugiej, ponieważ nie udało mi się osiągnąć zamierzonego celu. Niestety wszystko na to wskazuje, że mój moduł ESP8266 NodeMCU v3 jest uszkodzony. Po podłączeniu baterii jako źródła zasilania moduł WiFi nie uruchamia się. Na pinach wyjściowych płynie prąd, termometr odczytuje temperaturę, niestety dane nie są wysyłane na serwer :(. Co innego jak moduł podłączony jest przez USB wtedy wszystko działa jak powinno. Nie udało mi się stworzyć mobilnego termometru, który mierzy temperaturę poza domem. Mimo wszystko postanowiłem dokończyć część drugą i opisać co udało się osiągnąć.
Do realizacji tej części wykorzystałem:
- Arduino IDE
- ESP8266 NodeMCU v3
- MCP9700
- Płytkę i kilka kabli
Zmontowanie układu jest banalnie proste termometr MCP9700 ma trzy nóżki VDD, VOUT i GND. Nóżkę środkową VOUT podpinamy do wejścia analogowego A0, nóżkę VDD do wyjścia 3V oraz masę do masy.
Gotowy układ prezentuje się następująco:
Pora na skrypt.
Na początku ustawiane jest połączenie z serwerem, na który będzie wysyłany wynik pomiaru temperatury. W głównej pętli skryptu co 25 sekund mierzone są pięć pomiarów temperatury. Termometr MCP9700 nie jest za dokładny, wyniki pomiaru temperatury w przeciągu kilku sekund potrafią różnić się nawet o 2 stopnie. Dlatego by ustalić poprawną temperaturę postanowiłem pobierać pięć pomiarów temperatury następnie odrzucać skrajne wyniki i z pozostałych pomiarów wyznaczyć średnią temperaturę. W ten sposób zniwelowane są jakiekolwiek odchylenia, które wystąpiły w czasie wykonywania pomiaru. Po zmierzeniu temperatury wynik wysyłany jest na serwer, gdzie jest zapisywany w bazie danych. Temperatura mierzona jest co godzinne. Cały skrypt dostępny jest na githubie.
Podsumowanie
Mimo, że nie udało się osiągnąć zamierzonego celu (mobilnego termometru do mierzenia temperatury na zewnątrz) udało się stworzyć termometr stacjonarny podłączony do USB. Mimo wszystko jestem zadowolony ze zrealizowanego projektu. Kolejną część związaną z przeniesieniem serwera na Azure zrealizuję w 2018 roku.