Proste, małe, bezprzewodowe czujniki temperatury i wilgotności komunikujące się przez WIFI ESP8266

Proste, małe, bezprzewodowe czujniki temperatury i wilgotności komunikujące się przez WIFI ESP8266

Witam, dzisiaj przedstawię Wam mały, prosty czujnik temperatury i wilgotności komunikujący się przez tani okład ESP8266. Dane z czujnika są wysyłane na serwer Thingspeak. Do ESP8266 dane pobierane z DHT11 wysyła Arduino (po prostej modyfikacji kodu można zmusić każdy czujnik do działania).

IMG_20150302_160449316
Gwóżdż programu – ESP8266

Co będzie potrzebne?:

  1. Układ ESP8266
  2. dowolne Arduino. Ja posiadam Arduino Leonardo z starter kitu ElektroPrzewodnika. W wersji finalnej, projekt można przenieść na atmege328 z bootloaderem.
  3. Konwerter USB-Serial. Potrzebny by zaktualizować firmware. Używam chinskiego klona pl2032, lecz lepiej dołożyć do konwertera z układem FT232RL i móc programować nim mikrokontrolery. Można także zastosować Arduino UNO z wyciągniętym mikrokontrolerem.
  4. Kabelki żeńsko-męskie

 

Potrzebne elementy
Potrzebne elementy

Aktualizacja Firmware ESP8266

Aby zacząć zabawę z ESP8266 powiniśmy posiadać najnowszy firmware.

UWAGA! Nowe wersje firmware posiadają Baud Rate ustawiony domyślnie na 9600. Kod programu jest kompatybilny tylko i wyłącznie z wersjami 9600, więc jeżeli używamy starszego firmware należy wgrać nowy lub zmienić baudrate.

Podłączenie ESP8266 do komputera i wejście w tryb pozwalający na zmianę firmware:

ESP8266 - Widok z góry
ESP8266 – Widok z góry

Podłączamy ESP8266 do konwertera.

UWAGA! ESP8266 DZIAŁA NA NAPIĘCIACH 3.3V! SPRAWDŹ TRZY RAZY ZANIM PODŁĄCZYSZ KONWERTER DO KOMPUTERA!!!

VCC i CH_PD do 3V na konwerterze,

GND do GND,

URXD do TX na konwerterze,

UTXD do RX na konwerterze,

GPIO0 do GND – Dzięki temu wchodzimy w tryb pozwalający na zmianę firmware. Przy normalnej pracy, ten pin nie powinien być podłączony.

Zmiana firmware – Windows:

Pobieramy dwa pliki: firmware (klik!) oraz program pozwalający na jego wgranie (klik! – pobieramy XTCOM_UTILITY). Rozpakowujemy pliki, podłączamy konwerter z ESP8266 z GPIO0 podpiętym pod GND i uruchamiamy XTCOM_UTILITY. Naszym oczom ukaże się takie okienko:

XTCOM_UTILITY
XTCOM_UTILITY

Klikamy “Tools”, “Config Device”, ustawiamy port COM konwertera i Baud Rate na 115200. Następnie “Open” i “Connect”. Nie zamykamy tego okna.

Okno wyboru portu.
Okno wyboru portu.

W “API TEST” wybieramy Flash Image Download i w “Browse” znajdujemy nasz firmware. Klikamy “Update”.

Wgrywanie firmware
Wgrywanie firmware

Jeżeli wszystko poszło dobrze, posiadamy ESP8266 z najnowszym firmware. Ponieważ nie używam systemu Windows, instrukcja zmiany firmware została przetłumaczona z https://www.ukhas.net/wiki/esp8266_firmware_update.

Zmiana firmware – Linux:

Pobieramy firmware(kilk!)  i narzędzie umożiwiające jego wgranie(klik!). Jeśli nie posiadamy pakietów python2 i python2-pyserial doinstalowujemy je teraz. Paczki rozpakowujemy i wrzucamy je do folderu domowego. Zmieniamy nazwę pliku z firmware na Firmware.bin.

Teraz podłączamy ESP8266 z pinem GPIO0 podpiętym do masy(GND).

Po wykonaniu powyższych czyności, otwieramy terminal i wpisujemy:

Po zakończeniu wgrywania odłączamy ESP8266 od komputera i przechodzimy do następnego kroku.

Konfiguracja Thingspeak.com:

Jeżeli nie posiadamy jeszcze konta na serwisie www.thingspeak.com, tworzymy je teraz. Następnie tworzymy nowy kanał z dwoma polami, i klikamy Save.

Ustawienia kanału.
Ustawienia kanału.

Zapisujemy na kartce klucz API z zakładki “API Keys”. Teraz dzięki specjalnemu zapytaniu do serwera, możemy zapisywać  dane do wykresu.

 

Podłączenie ESP8266 do Arduino i DHT11:

Do Arduino podłączamy DHT11 i ESP8266 według tego schematu (Z góry przepraszam za jego marną jakość- to mój pierwszy schemat.):

Mój marny schemat.
Mój marny schemat.

Jeżeli ktoś woli rysunki w fritzingu to przygotowałem też taką wersję:

Plątanina kabli w Fritzingu
Plątanina kabli w Fritzingu

Wgrywanie kodu do Arduino:

Pamiętaj! ESP8266 działa na napięciach 3.3V!!!

Pobieramy bibliotekę do odczytu danych z DHT11(klik!) i instalujemy(w ArduinoIDE klikamy: Szkic, Importuj Bibliotekę, Dodaj Bibliotekę).

Jeżeli wszystko poprawnie podłączyliśmy, wgrywamy na naszą płytkę taki oto program:

W miejscach zaznaczonych komentarzami, wpisujemy: nazwę swojej sieci, haslo do naszej sieci oraz APIkey do thingspeak.com.

Po niecałej minucie powiniśmy znaleść odczyty na naszym kanale w thingspeak.

Zasada działania:

Spróbuję po krótce opisać działanie mojego projektu:

Po uruchomieniu, ESP8266 łączy się z naszą siecią. Po połączeniu dane z czujników zostają skonwertowane na łańcuchy(typy String). Przekonwertowane dane zostają wysłane przez funkcje updateHumi() oraz updateTemp(). Po wysłaniu danych procesor czeka około 1 godzinę, i proces rozpoczyna się od nowa.

Później czujniki można wykonać na bazie atmegi328 i porozmieszczać w całym mieszkaniu. Mam nadzieję, że projekt się spodobał.

Gotowe!
Gotowe!

 

 

 

 

Ocena: 3.89/5 (głosów: 89)

Podobne posty

42 komentarzy do “Proste, małe, bezprzewodowe czujniki temperatury i wilgotności komunikujące się przez WIFI ESP8266

Odpowiedz

anuluj

Masz uwagi?