W gadżetach elektroda.pl niebawem ponownie pojawi się moduł oparty o ESP8266-12E tym razem będzie to NodeMCU Amica.
Po umieszczeniu poprzedniej części materiału: Moduł D1 mini - ESP8266 WIFI pojawiły się pytania w jaki sposób podłączyć czujnik temperatury DS18B20 komunikujący z wykorzystaniem cyfrowej magistrali 1-wire. W porównaniu do analogowego TMP36 na magistrali 1-wire może pracować kilka czujników. Warto zwrócić uwagę na długość (pojemność) linii 1-wire i dość długi (750ms) czas odczytu przy maksymalnej (12b) rozdzielczości pomiaru temperatury. Linię magistrali 1-wire podciągniemy do zasilania 3.3V rezystorem 4.7kom.
Instrukcja użytkowania modułu z LUA znajduje się jako warstwa opisowa na płytce Amica:
Wykorzystamy aktualną wersję środowiska Arduino 1.8.3 pobraną z www.arduino.cc dokładny opis sposobu przygotowania środowiska Arduino do pracy z ESP8266 oraz kilka przykładowych kodów znajdziecie w poprzedniej części materiału Link.
Moduł NodeMCU wykorzystuje konwerter USB-UART CP2102 dzięki czemu w Windowsach od 8.1 sprzęt zostanie zainstalowany automatycznie. W skrócie dostosowanie środowiska Arduino do współpracy z NodeMCU Amica wygląda tak:
-Plik->Preferencje->Dodatkowe adresy URL do menadżera płytek - wklejamy: http://arduino.esp8266.com/stable/package_esp8266com_index.json (w komentarzach pojawiła się podpowiedź innego linku: http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json )
-Narzędzia->Płytka->Menadżer Płytek-> i wyszukujemy "nodemcu" a następnie instalujemy paczkę ESP8266.
-Po podłączeniu modułu Amica do portu USB w systemie powinien pojawić się nowy port szeregowy.
-Narzędzia->Płytka->NodeMCU 1.0 oraz Narzędzia->port i wybieramy port com konwertera USB<->UART.
Biblioteki znacznie ułatwią napisanie kodu:
Szkic->dołącz bibliotekę->zarządzaj bibliotekami wyszukujemy "ds18b20" oraz wybieramy bibliotekę DallasTemerature https://github.com/milesburton/Arduino-Temperature-Control-Library, i instalujemy. Podobnie instalujemy bibliotekę "OneWire" https://www.pjrc.com/teensy/td_libs_OneWire.html.
Biblioteki pozwalają na odczytywanie temperatury z wielu czujników DS18B20 podłączonych do różnych linii 1-wire na różnych pinach modułu lub kilku czujników temperatury na jednej wspólnej magistrali. Warto zajrzeć do przykładowych kodów dołączonych wraz z bibliotekami.
Termometr przewodowy.
Na początek spróbujmy odczytać dane z podłączonych czujników DS18B20 i przesłać wyniki poprzez konsolę szeregową, wyniki można obserwować uruchamiając Narzędzia->Monitor portu szeregowego. Kolejne urządzenia znalezione na magistrali 1-wire zostaną powiązane z kolejnymi indeksami. Po uruchomieniu programu w konsoli szeregowej zobaczycie adresy czujników znalezionych na magistrali. We własnym zakresie możecie zmodyfikować kod np. tak aby czujnik o określonym adresie zawsze posiadał stały indeks, wtedy podłączenie nowych czujników nie spowoduje zmiany kolejności odczytywanych danych jednak będzie wymagało wstępnej konfiguracji.
Sposób podłączenia modułu NodeMCU Amica:
a tak to wygląda na poprzednio dostępnym module D1 mini (na drugim zdjęciu moduł D1 leży na płytce, nie jest z nią bezpośrednio połączony):
Przykładowy kod:
Termometr WiFi ThingSpeak.
Dodajemy bibliotekę ThingSpeak, wykorzystując kod z poprzedniej części materiału łatwo prześlemy wyniki pomiaru temperatury przez czujniki DS18B20 na pola kanału założonego na https://thingspeak.com . W efekcie będziemy mogli obserwować w przeglądarce internetowej zmiany wartości pomiarów temperatury:
Przykładowy kod:
Termometr WiFi Blynk.
Wykorzystanie Blynk pozwoli na obserwację zmian temperatury w konfigurowalnej aplikacji na smarfton/tablet z Android/iOS. Dodajemy bibliotekę Szkic->dołącz bibliotekę ->zarządzaj bibliotekami wyszukujemy i instalujemy bibliotekę blynk, oraz instalujemy aplikację Blynk na smartfonie, więcej informacji w poprzedniej części materiału. W aplikacji widoczne są dane przesyłane przez ESP8266:
Przykładowy kod:
W odróżnieniu do poprzedniego materiału wykorzystujemy tutaj wirtualne linie V1, V2 ... Vx dla kolejnych czujników na magistrali, timer uruchamia co 10s przesyłanie informacji z ESP8266 do blynk, dlatego w aplikacji wybieramy metodę odświeżania "push" gdyż sami decydujemy kiedy zostanie wysłana informacja z modułu.
Na zakończenie warto powrócić do funkcji oszczędzania energii i wykorzystać przedstawioną ostatnio funkcję:
ESP.deepSleep(300000000); //300s uśpienia i reset przez RTC
która znacząco zredukuje moc pobieraną przez ESP8266 a po połączeniu wyprowadzenia D0 z RST pozwoli na zresetowanie modułu przez RTC po zadanym czasie i ponowne wykonanie kodu wysyłającego dane.
Do czego wykorzystacie moduł NodeMCU Amica z ESP8266?

Po umieszczeniu poprzedniej części materiału: Moduł D1 mini - ESP8266 WIFI pojawiły się pytania w jaki sposób podłączyć czujnik temperatury DS18B20 komunikujący z wykorzystaniem cyfrowej magistrali 1-wire. W porównaniu do analogowego TMP36 na magistrali 1-wire może pracować kilka czujników. Warto zwrócić uwagę na długość (pojemność) linii 1-wire i dość długi (750ms) czas odczytu przy maksymalnej (12b) rozdzielczości pomiaru temperatury. Linię magistrali 1-wire podciągniemy do zasilania 3.3V rezystorem 4.7kom.
Instrukcja użytkowania modułu z LUA znajduje się jako warstwa opisowa na płytce Amica:
Wykorzystamy aktualną wersję środowiska Arduino 1.8.3 pobraną z www.arduino.cc dokładny opis sposobu przygotowania środowiska Arduino do pracy z ESP8266 oraz kilka przykładowych kodów znajdziecie w poprzedniej części materiału Link.
Moduł NodeMCU wykorzystuje konwerter USB-UART CP2102 dzięki czemu w Windowsach od 8.1 sprzęt zostanie zainstalowany automatycznie. W skrócie dostosowanie środowiska Arduino do współpracy z NodeMCU Amica wygląda tak:
-Plik->Preferencje->Dodatkowe adresy URL do menadżera płytek - wklejamy: http://arduino.esp8266.com/stable/package_esp8266com_index.json (w komentarzach pojawiła się podpowiedź innego linku: http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json )
-Narzędzia->Płytka->Menadżer Płytek-> i wyszukujemy "nodemcu" a następnie instalujemy paczkę ESP8266.
-Po podłączeniu modułu Amica do portu USB w systemie powinien pojawić się nowy port szeregowy.
-Narzędzia->Płytka->NodeMCU 1.0 oraz Narzędzia->port i wybieramy port com konwertera USB<->UART.
Biblioteki znacznie ułatwią napisanie kodu:
Szkic->dołącz bibliotekę->zarządzaj bibliotekami wyszukujemy "ds18b20" oraz wybieramy bibliotekę DallasTemerature https://github.com/milesburton/Arduino-Temperature-Control-Library, i instalujemy. Podobnie instalujemy bibliotekę "OneWire" https://www.pjrc.com/teensy/td_libs_OneWire.html.
Biblioteki pozwalają na odczytywanie temperatury z wielu czujników DS18B20 podłączonych do różnych linii 1-wire na różnych pinach modułu lub kilku czujników temperatury na jednej wspólnej magistrali. Warto zajrzeć do przykładowych kodów dołączonych wraz z bibliotekami.
Termometr przewodowy.
Na początek spróbujmy odczytać dane z podłączonych czujników DS18B20 i przesłać wyniki poprzez konsolę szeregową, wyniki można obserwować uruchamiając Narzędzia->Monitor portu szeregowego. Kolejne urządzenia znalezione na magistrali 1-wire zostaną powiązane z kolejnymi indeksami. Po uruchomieniu programu w konsoli szeregowej zobaczycie adresy czujników znalezionych na magistrali. We własnym zakresie możecie zmodyfikować kod np. tak aby czujnik o określonym adresie zawsze posiadał stały indeks, wtedy podłączenie nowych czujników nie spowoduje zmiany kolejności odczytywanych danych jednak będzie wymagało wstępnej konfiguracji.
Sposób podłączenia modułu NodeMCU Amica:
a tak to wygląda na poprzednio dostępnym module D1 mini (na drugim zdjęciu moduł D1 leży na płytce, nie jest z nią bezpośrednio połączony):
Przykładowy kod:
Kod: C / C++
Termometr WiFi ThingSpeak.
Dodajemy bibliotekę ThingSpeak, wykorzystując kod z poprzedniej części materiału łatwo prześlemy wyniki pomiaru temperatury przez czujniki DS18B20 na pola kanału założonego na https://thingspeak.com . W efekcie będziemy mogli obserwować w przeglądarce internetowej zmiany wartości pomiarów temperatury:
Przykładowy kod:
Kod: C / C++
Termometr WiFi Blynk.
Wykorzystanie Blynk pozwoli na obserwację zmian temperatury w konfigurowalnej aplikacji na smarfton/tablet z Android/iOS. Dodajemy bibliotekę Szkic->dołącz bibliotekę ->zarządzaj bibliotekami wyszukujemy i instalujemy bibliotekę blynk, oraz instalujemy aplikację Blynk na smartfonie, więcej informacji w poprzedniej części materiału. W aplikacji widoczne są dane przesyłane przez ESP8266:
Przykładowy kod:
Kod: C / C++
W odróżnieniu do poprzedniego materiału wykorzystujemy tutaj wirtualne linie V1, V2 ... Vx dla kolejnych czujników na magistrali, timer uruchamia co 10s przesyłanie informacji z ESP8266 do blynk, dlatego w aplikacji wybieramy metodę odświeżania "push" gdyż sami decydujemy kiedy zostanie wysłana informacja z modułu.
Na zakończenie warto powrócić do funkcji oszczędzania energii i wykorzystać przedstawioną ostatnio funkcję:
ESP.deepSleep(300000000); //300s uśpienia i reset przez RTC
która znacząco zredukuje moc pobieraną przez ESP8266 a po połączeniu wyprowadzenia D0 z RST pozwoli na zresetowanie modułu przez RTC po zadanym czasie i ponowne wykonanie kodu wysyłającego dane.
Do czego wykorzystacie moduł NodeMCU Amica z ESP8266?
Fajne? Ranking DIY
