Bardzo się cieszę, że mój poprzedni wpis o bezprzewodowych czujnikach temperatury DS18B20 na ESP8266 cieszył się tak dużym zainteresowaniem bo ok 8tyś wyświetleń. Wiem, że było trochę problemów z wgrywaniem programów na ESP ale mam nadzieję, że teraz pójdzie wszystkim lepiej. Tym razem chciałbym pokazać jak podłączyć pod ESP8266 czujnik wilgotności i temperatury DHT11.

Od razu napisze dlaczego nie DHT22, bo nie mam teraz na stanie. Jak będzie to też coś napiszę/zrobię. Jak by się ktoś zastanawiał czy bezprzewodowe czujniki DHT11/22 będą obsługiwane w nettemp to zapewniam, że tak.

Podłączenie

UWAGA: ESP8266 pracuje z 3.3V, trzeba pamiętać aby ustawić odpowiednie napięcie na FTDI lub innej przejściówce.

Trzeba się zaopatrzyć w ESP8266, FTDI FT232RL, DHT11 rezystor i 4,7k. Poniżej mały schemacik:

ESP8266_DHT11-22

 Nodemcu

Wersja nodemcu którą wgrałem na ESP8266 to 0.9.5 2015014. Wgrywam ją tak jak zawsze poprzez esptool.py z https://github.com/themadinventor/esptool. GPIO0 musi być zwarte do GND aby wgrać sam firmware. Potem trzeba rozłączyć GPIO0 od GND.

./esptool.py --port /dev/ttyUSB0 write_flash 0x00000 nodemcu.bin

Aby połączyć się do ESP poprzez terminal polecam użyć Cutecom i prędkości 9600. Ale to nie wszystko czas na program. Poniżej screen z cutecom.

ESP8266_DHT11_nettemppl

Program

Program pochodzi z http://scottsnowden.co.uk/?p=431 a ja go zmieniłem na swoje potrzeby i dołożyłem serwer www. Generalanie jest to jedyna działająca wersja programu. Inne, nawet z nodemcu pokazywały głupoty. Oba pliki znajdują się już w repozytorium nettempa i trzeba je ściągnąć:

https://raw.githubusercontent.com/sosprz/nettemp/beta/modules/sensors/wireless/DHT11/dht.lua

https://raw.githubusercontent.com/sosprz/nettemp/beta/modules/sensors/wireless/DHT11/init.lua

Trzeba pamiętać aby w init.lua dodać swój ssid i hasło do wifi.

Ja wgrywam programy za pomocą luatool z https://github.com/4refr0nt/luatool, można zrobić to przy pomocy specjalnej wersji Arduino https://github.com/esp8266/arduino.

./luatool.py -p /dev/ttyUSB0 -f init.lua -t init.lua
./luatool.py -p /dev/ttyUSB0 -f dht.lua -t dht.lua

Po wgraniu tych plików, po restarcie za pomocą komendy node.restart(); wydanej w cutecom albo wyłaczeniu zasilania i włączeniu. ESP8266 powinien połączyć się do twojej sieci WiFi. A po wpisaniu w przeglądarce adresu który uzyskał powinny pojawić się wartości czujnika wilgotności i temperatury. Aby dowiedzieć się jaki adres uzyskał układ z DHCP wydaj dwa polecenia w cutecom:

ip = wifi.sta.getip()
print(ip)

 

ESP8266_DHT11_nettemppl_server_www

Teraz tylko zostało dorobienie obsługi w nettemp… Mam nadzieje, że wam wszystko działa. Nawet jak działa napiszcie w komentarzach. Dzięki.