W jednym z poprzednich wpisów przybliżyłem trochę pojęcie Internetu rzeczy. Czas więc pokazać realne zastosowanie urządzenia IoT jakim jest samodzielnie wykonana stacja pogodowa zbudowana na mikrokontrolerze ESP8266.
Mikrokontroler ESP8266 zrewolucjonizował świat Internetu rzeczy. Niska cena w połączeniu z ogromnymi możliwościami otwarła drogę amatorom do konstruowania urządzeń IoT. Mikrokontroler pozwala łączyć się z siecią Wi-Fi i wykonywać proste połączenia TCP/IP. ESP8266 dysponuje procesorem Tensilica L106 w 32-bitowej architekturze RISC taktowanym zegarem o częstotliwości 80 MHz. Procesor może bez większych problemów pracować z zegarem 160 MHz. Odbywa się to jednak kosztem jego energooszczędności, a przy typowych zastosowaniach IoT nie ma potrzeby zwiększania częstotliwości zegara.
Bardzo popularnymi modułami wykorzystującymi ten mikrokontroler w unowocześnionej wersji EX są produkty firmy Wemos Electronics. Najciekawszym przedstawicielem rodziny Wemos D1 mini jest moduł D1 mini Pro. W D1 mini Pro zrezygnowano z użycia gotowego modułu ESP8266 i wszystko zaprojektowano od podstaw. Zmieniono konwerter USB-serial na CP2104, co ułatwia współpracę modułu z komputerem – sterowniki do konwertera CP2104 instalują się w nowych wersjach systemów Windows automatycznie z Windows Update. Zamiast 4 MB pamięci flash (lub 1 MB, jak w D1 mini Lite), w D1 mini Pro mamy do dyspozycji aż 16 MB. Ponadto nie ma tu anteny PCB, lecz zastosowano lepszą antenę ceramiczną o wzmocnieniu 3 dB. Na płytce znajduje się również złącze antenowe U.FL (IPX). Wemos D1 mini Pro jest konstrukcją jednostronną. Spód płytki jest płaski i nie ma na nim żadnych elementów elektronicznych. Układ można programować prosto z aplikacji Arduino IDE. Opcjonalnie można skorzystać z firmware’u NodeMCU i programować moduł w języku LUA.
Do budowy stacji pogodowej wybrałem właśnie moduł Wemos D1 mini Pro ze względu na zamontowaną antenę o wzmocnieniu 3 dB i ewentualną możliwość podłączenia anteny zewnętrznej. Stacja została zamontowana na balkonie w sporej odległości od mojego routera Wi-Fi. Jak się okazało, nie muszę montować anteny zewnętrznej – ceramiczna, wewnętrzna antena w zupełności wystarcza.
Oprócz modułu Wemos D1 mini Pro potrzebujemy jeszcze:
- czujnik temperatury, wilgotności i ciśnienia BME280,
- czujnik natężenia oświetlenia BH1750,
- ładowarka akumulatorów Li-Ion TP4056 z zabezpieczeniem,
- akumulator Li-Ion 3,7 V model 18650 o pojemności 3400 mAh,
- panel solarny 6 V / 5 W.
Założenia projektu:
- stacja musi być zasilana energią słoneczną,
- dane pomiarowe ze stacji wysyłane są do bazy danych MySQL na serwerze podłączonym do tej samej sieci LAN / Wi-Fi,
- serwer Raspberry Pi 3 B+ jest również serwerem WWW hostującym strony z danymi meteo,
- częstotliwość wysyłania danych do bazy konfigurowana w parametrach programu stacji,
- stacja ma przesyłać do bazy danych pomiary następujących wartości:
- temperatura,
- wilgotność powietrza,
- ciśnienie atmosferyczne bezwzględne (absolutne),
- wyliczone ciśnienie atmosferyczne względne (relatywne),
- natężenie światła (nasłonecznienie),
- napięcie zasilania stacji (napięcie akumulatora),
- poziom sygnału Wi-Fi.
Kompletna dokumentacja niezbędna do wykonania amatorskiej stacji meteo została umieszczona na portalu majsterkowo.pl.
Wszystkich zainteresowanych samodzielnym wykonaniem takiej stacji zapraszam do zapoznania się ze szczegółowym opisem projektu dostępnym w trzech częściach:
Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 1
Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 2
Solarna stacja meteo z wykorzystaniem Wemos D1 mini Pro oraz Raspberry Pi 3 B+ – część 3
Właśnie trafiłem na ten poradnik i chciałem wykonać też coś takiego.
Mam (tak mi się wydaję) te same części i złożyłem (na razie bez Wemosa) na szybko sprawdzając czy ładowanie działa – telefon się ładował ale tylko przez chwilę. Ogniwo jest naładowane. Zastanawia mnie czemu na wyjściu (gdzie powinno być 5V) i w miejscu gdzie jest ogniwo napięcie jest identyczne. Czy tak musi być czy ja coś źle zrobiłem? Na wejściu baterii mam np 3.9 lub 4.2 V i na wyjściu tym 5V jest tyle samo..
Paweł, nie bardzo rozumiem, jaki telefon się ładował. Ta ładowarka nie nadaje się do ładowania telefonu.
Po prostu wyjście (gdzie tu w schemacie jest 5V do wemosa) na próbę podłączyłem pod jakiś stary telefon (wtyczką usb) chcąc po prostu sprawdzić czy to działa.
Ale mam 2 sztuki TP4056 i w obu po umieszczeniu baterii wg. schematu wyjścia OUT mają tyle samo V co bateria – około 4V. Chciałem się upewnić czy mój „prototyp” działa dobrze – stąd moje pytanie tutaj – bo wg. grafiki OUT prowadzi do 5V i myślałem, że tyle też powinno wskazywać na mierniku 😉
Działa prawidłowo. TP4056 nie jest jednocześnie przetwowrnicą Step-Up, więc podaje dokładnie napięcie z baterii. Ponieważ układy ESP8266 zasilane są napięciem 3.3V, na płytce Wemosa jest stabilizator 3.3V, który jest zasilany właśnie wyższym (ok. 4V) napięciem z akumulatora/panelu solarnego.
Cześć Robert,
Świetnie opisany projekt, doceniam że dzielisz się z innymi tak szczegółowo. Osobiście popełniłem kilka projektów na ESP, niedawno zacząłem przygodę z Maliną.
Zastanawiam się nad kwestią wizualizacji danych z bazy. Podoba mi się jak to jest zrobione np. na serwerze AQI.eco (też mam moduł NAM). Widziałem też rozwiązania bazujące na influxdb Grafana, ładnie to wygląda.
Działałeś może coś w tym temacie?
Czy na Malinie udało się uruchomić jakąkolwiek wersję stacji pogodowej ?
Cześć Robert,
Świetny projekt. Bardzo dobrze opisany. To mój pierwszy projekt na ESP.
Zrobiłem własna stację meteo i bardzo fajnie to wygląda. Mam jednak jeden problem. Po uruchomieniu stacja się ładuje, łączy z WIFI i przesyła dane do MySQLa. Następnie wchodzi w stan głębokiego snu i – no właśnie nie wybudza się :(. Na monitorze wypisane zostają dziwne krzaczki i kończy się działanie programu – zawiesza się do ponownego uruchomienia/restartu. Po restarcie ponownie łączy się w WIFI, przesyła dane do MySQLa i ponownie się wiesza. Czy spotkałeś się z takim przypadkiem? Masz pomysł jak się z tym uporać?
Pozdrawiam
Za wybudzanie ESP odpowiada zworka D0 (GPIO16) z pinem RST. Bez tej zworki ESP się nie wybudzi.
Dziękuje za odpowiedź – wieczorem sprawdzę
Udało mi się sprawdzić wcześniej – faktycznie zworka pomogła – jesteś wielki 🙂
witam
Czy jak bym jeszcze dodał czujnik zanieczyszczenia do da radę to uciągnąć na tej baterii ?
Witam,
Sam czujnik zanieczyszczeń ma wbudowany wiatraczek zaciągający powietrze, a to już robi się zdecydowanie większy pobór prądu. Ale podejrzewam, że działało by to na akumulatorze przy pomiarach wykonywanych co 30 minut. Jednak aby w miarę prawidłowo mierzyć ilość zanieczyszczeń przy dużej wilgotności powietrza powinno się przed pomiarem osuszyć mierzone powietrze grzałką. A takie rozwiązanie niestety dyskwalifikuje zasilanie bateryjno-solarne.
a jak by zastosować
Jakoś powietrza
Moduł jakości powietrza „MQ-135” wykrywa w atmosferze: benzen, amoniak (NH3) oraz dwutlenek węgla (CO2).
Ten czujnik ma wyjście analogowe, z którego odczytamy tylko poziom stężenia tych trzech gazów ale bez podziału na poszczególne rodzaje oraz wyjście cyfrowe, które jest alarmem po przekroczeniu jakiegoś (ustawianego potencjometrem na czujniku) poziomu tych wszystkich gazów. Nigdy tego czujnika nie stosowałem i raczej nie polecam, bo nic z takich danych nie wynika.
ok
dziekuje za pomoc
pozdrawiam
witam a czy moglby pan dodac do projektu jaki czujnik promieniowania uv?
Ten projekt nie będzie już rozwijany. Być może na wiosnę 2023 powstanie zupełnie nowy projekt stacji pogodowej.