Moduł ESP-12F (ESP8266) i czujnik DHT11 – pomiar temperatury i wilgotności za pomocą Supla.

Moduł ESP-12F jest jednym z najtańszych na rynku modułów opartych na ESP8266. Na dzień pisania tego artykułu udało się go kupić za 11,55zł. Można nim zrealizować funkcje inteligentnego domu taki jak sterowanie oświetleniem, gniazdami czy pomiarem parametrów otoczenia (np. temperatury i wilgotności). Wygląda jak na zdjęciu poniżej.

To tak naprawdę koniec plusów jakie niesie ze sobą wykorzystanie tego modułu z oprogramowaniem Supla. Jeżeli nie zdecydowałeś się jeszcze na zakup ESP-12F to polecam, zakup WeMOS D1 mini. Na dzień pisania tego artykułu udało się go zakupić za 15,89zł. Różnica to 4,34zł, ale co za nią otrzymujesz?

  • zasilanie przez port mikro USB lub zasilaczem 5V. Dzięki temu możesz go zasilić z dowolnej ładowarki smartfona na USB. Natomiast ESP-12F jest zasilany tylko z napięciem 3.3V i konieczny jest zakup bądź wykonanie dodatkowej przetwornicy co znacząco podnosi koszt całego zestawu.
  • Programowanie przez port mikro USB, nie potrzebujesz dodatkowego programatora. Do ESP-12F konieczny jest programator TTL, co również podnosi koszty.
  • wyprowadzenie pinów na popularny raster 2,54mm, gdzie ESP-12F ma wyprowadzenia 2mm.

Programowanie WeMOS D1 mini opisałem w tym artykule.

Ale koniec już szydzenia z ESP-12F spróbujmy coś z nim stworzyć. Na początek przygotowujemy połączenia wg schematu poniżej.

  1. Piny VCC i EN podłączamy do +3,3V z programatora.
  2. TX do RX programatora i na odwrót RX do TX programatora.
  3. GND i GPIO0 do GND programatora.
  4. GPIO15 do GND programatora, ale przez rezystor 10k.

Po wykonaniu na płytce stykowej plątanina (choć działała) wyglądała tak:

Wpinamy teraz programator z podpiętym modułem ESP-12F do komputera i rozpoczynamy programowanie. Cała procedura programowania jest opisana w tym artykule i nie ma sensu jej tu powtarzać.

Pamiętajmy tylko, by podczas generowania oprogramowania przez Supla GUI-Generic Builder zaznaczyć opcję „Sensor DHT11” w sekcji „1Wire” na TAK.

Po zaprogramowaniu modułu odpinamy go od portu USB.

Teraz należy pamiętać by odłączyć GPIO0 od GND.

W ten sposób wyjdziemy z trybu programowania i urządzenie się poprawnie uruchomi po po ponownym podłączeniu. Ale jeszcze nie podłączam mojego ESP-12F do zasilania. Uprościłem trochę przewody i zostawiłem dodatkowo przewód z TX. Za chwilę wyjaśnię dlaczego. Wygląda to teraz dużo przejrzyściej:

Trzeba się zająć rzeczonym modułem DHT11. Podłączamy go wg schematu poniżej:

  1. VCC do VCC DHT11 (1 pin od lewej)
  2. TXD0 do DATA DHT111 (2 pin od lewej)
  3. GND do GND DHT11 (4 pin od lewej)

Trzeci pin od lewej pozostaje niewykorzystany.

Pamiętajmy by wlutować rezystor 4,7k pomiędzy piny VCC i DATA w DHT11:

Po wykonaniu wszystkich połączeń, wpinamy programator do portu USB. Teraz jest on już tylko dla nas źródłem zasilania. Równie dobrze możemy go zastąpić jakimś innym zasilaniem 3,3V. Na potrzeby prezentacji zostanę jednak przy zasilaniu z programatora. Urządzenie uruchamia się bardzo szybko. Weryfikację wgranego oprogramowania można przeprowadzić za pomocą smartfona. Wchodzimy na smartfonie w listę dostępnych sieci WiFi. Powinna pojawić się sieć o SSID zaczynającym się na SUPLA-GUI-Generic-…

Łączymy się z tą siecią, po połączeniu otwieramy przeglądarkę internetową i wpisujemy adres 192.168.4.1. Powinna pojawić się strona konfiguracji urządzenia. Na stronie klikamy kolejno „Ustawienia urządzenia” i „1WIRE”. Następnie w sekcji „Ustawienie GPIO dla DHT11” wybieramy ilość i pin GPIO1-TX. Potwierdzamy zmiany przyciskiem „Zapisz”.

Teraz najlepiej zrestartować urządzenie, aby konfiguracja się odświeżyła. Jeżeli wszystko wykonaliśmy poprawnie, to po restarcie na stronie głównej konfiguracji powinny być widoczne wartości odczytu z sensora.

Moje starania finalnie wyglądają w ten sposób:

Moduł jest bardzo mały, nieco ponad 2cm. W ten sposób za znikomym nakładem kosztów otrzymaliśmy czujnik temperatury i wilgotności z łącznością WiFi, odczytem aktualnego pomiaru na smartfonie i zapisem historii pomiarów na Sulpa.org.

Trzeba rozważyć oddalenie czujnika DHT11 od samego ESP8266, tak by ciepło emitowane przez niego nie miało wpływu na odczyty.

Koniec 🙂

Jeżeli pomogłem to Postaw mi kawę na buycoffee.to ,a będę miał więcej energii na pisanie kolejnych ciekawych wpisów.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *