sobota, 13 kwietnia 2019

Bezprzewodowy miernik wilgotności gleby z odczytem w telefonie cz. 4


Dziś kolejny odcinek polowego serialu o bezprzewodowym mierniku (a raczej wskaźniku) wilgotności gleby znanego producenta DIY.
Jeśli nie uda mi się próba poskładania części z poprzedniego odcinka w działającą całość zawsze mogę kupić coś gotowego - ot chociażby taki Smart-Yi za 7 stów z hakiem.








Hardware

Połączyłem pajęczyną wszystkie elementy. Zasilać mogę to zarówna z akumulatora jak i z USB.


A oto schemat w wersji mocno obrazkowej



Panel solarny + LiIon + moduł ładowania TP4056 załatwia problem zasilania całości bezprzewodowego miernika wilgotności.
D1 MINI rozwiązuje pozostałe kwestie. Stabilizator LDO RT9013 znakomicie radzi sobie z zasilaniem z akumulatora. Do poziomu 3,4 V napięcie podawane na ESP utrzymywane jest na poziomie 3V3(rzeczywisty spadek napięcia na LDO to około 0,6V). A i dalsze obniżenie napięcia niespecjalnie wpływa na jego działanie. Zmniejsza się tylko proporcjonalnie napięcie wyjściowe czujnika ale cały układ pracuje normalnie.

ESP8266 mierzy napięcie analogowe w zakresie 0-1V. D1 MINI ma na pokładzie dzielnik 1:3 przez co czujnik wilgotności można przyłączyć bezpośrednio do pinu oznaczonego jako A0.

W zasilaniu czujnika zastosowałem mały trick. Napięcie zasilania podawane jest z ..... portu cyfrowego D1 MINI zamiast z zacisku 3V3. Po co?  Pomiary wilgotności będą wykonywane rzadko - zakładam nie częściej niż co godzinę. Większość czasu układ (a dokładnie ESP) będzie w stanie uśpienia pobierając niewielki (kilkaset uA) prąd. Podłączenie czujnika wilgotności bezpośrednio do Vcc zwiększyłoby ten prąd 100-krotnie. I żegnaj układzie po jednym pochmurnym dniu. Na szczęcie czujnik pobiera ok 10 mA a maksymalny prąd wyjściowy portu mikroprocesora to 12 mA.  Po wybudzeniu procesora program przełączy port w stan wysoki a tym samym poda napięcie na czujnik wilgotności. Napięcie zasilania czujnika z portu procesora wynosi około 3,12-3,15 V co całkowicie wystarcza do prawidłowej pracy modułu.

Dla bezpieczeństwa powinno połączyć się równolegle dwa porty ale przy ich niejednoczesnym załączeniu może się zdarzyć iż na jednym pojawi się O a na drugim 1. I mam zwarcie, które uszkodzi jeden lub oba porty. Rozwiązaniem są szeregowe diody ale w tym przypadku napięcie zasilania czujnika spadłoby do poziomu 2 ,3- 2,5 V.  Czujnik zasilany więc będzie tylko z jednego portu.

Takie rozwiązanie otwiera jeszcze jedną możliwość - jest to pomiar wilgotności wieloma czujnikami przy użyciu jednego tylko ESP8266.  Jak?
Każdy z czujników zasilany jest z innego portu cyfrowego Dx a wyjścia wszystkich połączone są równolegle do portu A0. Sekwencyjne załączanie napięcia zasilania na poszczególne czujniki pozwala mierzyć napięcie jedynie z wybranego czujnika.
Pomysł sprawdziłem na dwu czujnikach - działa bez zarzutu.

Program i aplikacja BLYNKa

No tu się nie wysilałem - wgrałem do modułu program, którym testowałem ROW-01. Wszystkie sterowania i odczyt portu A0 zaprogramowałem w aplikacji jako piny rzeczywiste.


W lewym górnym rogu jest wskaźnik wartości z portu A0. Przyciski sterują port zasilania czujnika wilgotności i (kontrolnie) GPIO2 na którym wisi niebieski LED modułu D1MINI. Tradycyjnie w prawym rogu umieściłem wirtualny LED jako wskaźnik komunikacji z serwerem BLYNK (V0).

Widget SupreChart pięknie pokazuje zmiany wartości napięcia z czujnika wilgotności. I czegóż potrzeba więcej?

Czas na nieco poważniejszy kawałek softu z usypaniem procesora. A potem zostaje tylko upchnąć wszystko w obudowę solarnego panelu, zabezpieczyć przed wilgocią i hajda na pole..

Ale to już robota dla ulubionego dalszego ciągu.


Wszystko co potrzeba o D1MINI

Brak komentarzy:

Publikowanie komentarza