ESP8266

Co jest małe, może się łączyć bezprzewodowo z siecią WiFi i ma dwa wejścia GPIO?

To ESP8266, a dokładniej ESP-01. W sieci dostępne są również inne moduły, które różnią się między innymi liczbą portów GPIO. My jednak skupimy się na wersji ESP-01.

Na początek parę informacji technicznych:

  • posiada porty GPIO, I2C, ADC, SPI, PWM
  • procesor RISC 80MHz
  • zasilanie 3.3V
  • logika 3.3V
  • pamięć FLASH 512kb

Do czego można tego użyć? Oczywiście może służyć jako bramka do WiFi np dla Arduino. Jednak nas będzie teraz interesować użycie ESP8266 jako samodzielnego modułu.

Zbudujemy prosty rejestrator temperatury, wysyłający dane do internetu.

Użyjemy w tym celu:

Zacznijmy od podłączenia się.

W pierwszym kroku interesuje nas GND i VDD – zasilanie, maksymalnie 3.6V! Nasz konwerter USB/Serial mimo że pracuje z logiką TTL 3.3V może mieć napięcie zasilające 5V! Dlatego najlepiej podłączyć zasilanie 3.3V z Arduino i masę konwertera, ESP i Arduino połączyć razem.

U0TXD,U0RXD służą do komunikacji z konwerterem a CHIP_EN trzeba zewrzeć do zasilania, by nasz układ ESP zaczął działać.

Do dalszej konfiguracji można użyć komend AT, my jednak skorzystamy z programu ESPlorer). Wybieramy port do którego jest podłączony nasz konwerter, klikamy “open” i….. jeśli wszystko zrobiliśmy poprawnie po kliknięciu AT w zakładce AT v0.20 w oknie powinno się pojawić “OK”. Jest to najszybszy i najprostszy sposób, aby sprawdzić czy nasz moduł działa.

Pierwszym krokiem będzie wgranie firmware’u NodeMcu. Pliki znajdują się w folderze pre-build/latest.

EDIT Po zmianie katalog ten nie jest dostępny. Najnowsze wersje FW są do wygenerowania na stronie: http://frightanic.com/nodemcu-custom-build/ lub pozostaje zrobienei tego własnoręcznie…

Używając esptool wgramy ten plik bin na nasze ESP. Aby wgrać nowy soft należy pin GPIO0 zewrzeć do masy. Tak też zrobimy i dopiero wtedy możemy podłączyć nasz układ do komputera.

W przypadku linuxa otwieramy konsolę i przechodzimy do folderu w którym mamy program esptool (warto do tego samego folderu wrzucić plik z firmware’em).

Wpisujemy:

sudo ./esptool.py --port /dev/ttyUSB0 write_flash 0x000000 nodemcu_512k_**NAZWA**.bin

Gdzie NAZWA zależy od pliku bin ściągniętego z NodeMcu, jeśli użyłeś naszych wskazówek będzie to latest, ale może być numer wersji jeżeli sam wybrałeś inny.

Jeśli wszystko jest ok, naciskamy enter i powinniśmy zobaczyć poniższe statusy.

Connecting…
Erasing flash…
Writing at 0x0007ec00… (100 %)
Leaving…

Po wgraniu oprogramowania, odłączamy ESP od zasilania i usuwamy zworkę łączącą GPIO0 z masą. Od teraz możemy używać języka lua do komunikacji z ESP. W następnym kroku korzystając z ESPlorer’a wgrywamy pliki .lua ściągnięte z GitHuba. W pliku init.lua musimy podać dane naszej sieci WiFi:

wifi.sta.config(“SSID”,“PASSWORD”)

Gdzie SSID i PASSWORD to oczywiście wartości pasujące do Waszej sieci WiFi a w ds1820.lua trzeba podać API key naszego kanału serwisu ThingSpeak:

conn:send(“GET /update?key=YOURKEY&field1=”..t1..“.”..t2..“ HTTP/1.1rn”)

I to wszystko – po ‘Send to ESP’ i odłączeniu  układ powinien zacząć wysłać dane do serwera ThingSpeak. Zajrzyjcie do nas, jaka jest temperatura:

One Reply to “ESP8266”

  1. Ciekawie się zaczęło, ale …
    1. Do czego potrzebne Arduino? Jaką rolę ma spełniać? Tylko zasilacz?
    2. Do czego potrzebna płytka stykowa?
    3. Gdzie jest czujnik temperatury i jak jest podłączony?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.