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.

Opublikuj swój projekt i odbierz 50% rabatu do wykorzystania w sklepie Nettigo.pl

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.

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

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)
Nettigo - patron działu Elektronika

Podobne posty

Regulator PID na arduino.

Regulator PID na arduino.

Witam wszystkich majsterkowiczów! Chciałbym przedstawić wam moje nagranie dotyczące realizacji regulatora PID przy użyciu arduino.Regulatory…

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

Odpowiedz

anuluj

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

Nie przegap nowych projektów!

Zapisując się na nasz Newsletter będziesz miał pewność, że nie przegapisz żadnego nowego projektu opublikowanego w Majsterkowie!

Od teraz nie przegapisz żadnego projektu!

Masz uwagi?