KursyPoradnikiInspirujące DIYForum

ESP8266 - co warto wiedzieć?

ESP8266 (a konkretnie ESP8266EX) to niezwykle popularny układ, który pozwala na budowę urządzeń komunikujących się przez WiFi. Idealnie wpisuje się więc w trend IoT. Swoją sławę zdobył dzięki tanim modułom bazowym oraz możliwości programowania z poziomu Arduino.

ESP8266 - co to jest?

ESP8266 jest układem SoC (ang. System-on-a-chip) od chińskiego producenta Espressif Systems. Pełna nazwa układu to ESP8266EX, najczęściej w praktyce spotykamy się jednak ze skróconą nazwą ESP8266, która i tak odnosi się do różnych gotowych modułów - mało kto wykorzystuje "gołe" scalaki.

Logo producenta ESP8266

Logo producenta ESP8266

Układ integruje w sobie elementy niezbędne do komunikacji przez WiFi w standardzie 802.11 b/g/n, dzięki czemu idealnie nadaje się do budowy tanich i energooszczędnych urządzeń, które komunikują się z Internetem lub urządzeniami w sieci lokalnej. Moduły ESP mogą np. pełnić rolę małych serwerów www lub klientów. W praktyce moduł ten świetnie sprawdza się więc w zastosowaniach związanych np. z automatyką domową. Następcą opisywanego scalak jest wyposażony w Bluetooth układ ESP32.

Gotowe moduły z ESP

Mało kto zdaje sobie sprawę, że układy Espressifa stały się popularne dopiero dzięki firmie Ai-Thinker, która zaczęła produkcję modułów zawierających na jednej płytce drukowanej układ ESP, pamięć FLASH oraz antenę (lub złącze U.FL). Pierwszym modułem, który zyskał na popularności był niżej widoczny ESP-01. Posiada on wyprowadzone 2 piny GPIO oraz interfejs UART, dzięki czemu idealnie nadaje się do współpracy z Arduino lub do działania jako niezależny, prosty układ sterownia.

Układ ESP8266 na module ESP-01

Układ ESP8266 na module ESP-01

Choć moduł ESP-01 dał początek wielu projektom Internetu Rzeczy to nie jest on zbyt przyjazny dla początkujących elektroników i majsterkowiczów. Stąd bardzo dużą popularnością cieszą się płytki rozwojowe DevModule (NodeMCU) wyposażone w moduł ESP-12E oraz elementy, które zazwyczaj trzeba było dołączyć do ESP we własnym zakresie tj.: układ regulacji zasilania oraz konwerter USB-TTL (USB-UART) ułatwiający programowanie wraz ze złączem programowania/zasilania micro USB.

ESP8266 DevModule - specyfikacja:

  • Komunikacja WiFi:
    • standard 802.11 b/g/n 2,4 GHz,
    • prędkość transmisji do 72,2 Mb/s,
    • zabezpieczenia: WPA/WPA2,
    • szyfrowanie: WEP/TKIP/AES,
    • protokoły: IPv4, TCP/UDP/HTTP.
  • Zasilanie:
    • napięcie pracy: 2,5 – 3,6 V,
    • napięcie zasilania: 4,8 – 12 V,
    • średni pobór prądu: 80 mA,
    • maksymalny pobór prądu: 800 mA.
  • Aktualizacja oprogramowania:
    • UART,
    • OTA.
  • CPU:
    • Tensilica L106 32-bit 80 MHz,
    • obudowa: QFN32-pin (5 mm × 5 mm),
    • interfejsy: UART/SDIO/SPI/I2C/I2S/IR (zdalne sterowanie),
    • dostępne 10 GPIO,
    • 1 wyprowadzenie ADC (0 – 3,3 V).
  • Konwerter USB-TTL (UART): CH340.
  • Raster wyprowadzeń: 2,54 mm.
  • Wymiary modułu: 58 × 30 mm.

ESP8266 pinout - opis wyprowadzeń modułów

Jak podłączyć ESP8266? To pytanie zadaje sobie wielu elektroników. Mało kto szuka jednak faktycznie tego jaki jest pinout ESP8266, ponieważ hobbyści raczej nie korzystają z samego scalaka. Najwięcej osób szuka opisu wyprowadzeń konkretnych modułów. Poniżej znaleźć można przykładowe opisy dla dwóch najpopularniejszych przypadków:

Jak programować ESP8266?

Metod na programowanie ESP jest dużo. Po pierwsze, producent dostarcza oficjalne SDK, dostępne jest również alternatywne SDK tworzone przez społeczność, które nosi nazwę ESP-Open-SDK. Oprócz tego dostępne jest ponad 20 zupełnie innych rozwiązań, które pozwalają tworzenie aplikacji w języku C++, Lua, a nawet MicroPythonie. ESP można też traktować jak zwykłe moduły komunikacyjne, z którymi wymienia się informację za pomocą komend AT. Lista dostępnych narzędzi dla programistów została wypisana na Wikipedii, wiele przykładów znaleźć można również na stronie producenta.

Najwięcej osób wykorzystuje jednak 2 sposoby. Pierwszy z nich to programowanie ESP8266 w Arduino. Po zainstalowaniu odpowiednich bibliotek uzyskuje się możliwość pisania programów na ESP tak, jak na ogólnodostępne moduły Arduino. Drugą popularną opcją wykorzystania modułów ESP jest użycie gotowych wsadów typu ESP Easy, które pozwalają na wykorzystanie peryferiów modułu z poziomu panelu dostępnego przez standardową przeglądarkę internetową (moduł staje się wtedy serwerem).

Przykładowy fragment panelu ESP Easy na ESP8266

Przykładowy fragment panelu ESP Easy

ESP8266 i Arduino

Programowanie ESP8266 przez Arduino jest obecnie najprostszą opcją, dzięki której osoby znające tę popularną platformę mogą łato zbudować urządzenia korzystające z łączności przez Internet. W celu rozpoczęcia swojej przygody z ESP8266 wystarczy zainstalować pakiet bibliotek oraz informacji na temat popularnych płytek z ESP.

Jak programować ESP8266 z Arduino?

W Arduino IDE wybieramy opcję Plik > Preferencję i w polu Dodatkowe adresy URL do menedżera płytek wpisujemy poniższy adres:

W praktyce powinno to wyglądać następująco:

Dodanie informacji o ESP8266 do Arduino IDE

Dodanie informacji o ESP8266 do Arduino IDE

W kolejnym kroku wybieramy opcję Narzędzia > Płytka > Menedżer płytek, w wyszukiwarkę wpisujemy hasło "ESP8266" i instalujemy paczkę nazwaną "esp8266 by ESP8266 Community". Od tej pory podczas wyboru płytki dostępne będą różne modele modułów z ESP8266 na pokładzie.

Wybór płytek z ESP w Arduino IDE

Wybór płytek z ESP w Arduino IDE

Pisanie programów można zacząć od tradycyjnego Hello World lub migania diodą. Większość funkcji będzie działała tak samo jak w przypadku np. Arduino UNO. Bazą do nauki programowania może być więc nasz darmowy kurs Arduino od podstaw.

Kurs podstaw Arduino – #0 – spis treści, wstęp
Kurs podstaw Arduino – #0 – spis treści, wstęp

Jak najłatwiej rozpocząć przygodę z elektroniką, robotyką i budową programowalnych urządzeń?Oczywiście od Arduino! Tania, prosta platforma,... Czytaj dalej »

ESP8266 datasheet - nota katalogowa układu

Producent udostępnia datasheet ESP8266 w formie 31-stronicowego PDFa, w którym znaleźć można opis wszystkich parametrów oraz rejestrów przydatnych podczas programowania. Przykładowa wersja dokumentacji (w wersji 6.3) dostępna jest do pobrania tutaj.

Projekty na ESP8266 - co można zbudować?

Przy pomocy opisywanych modułów można zrealizować liczne projekty IoT, takie jak: bezprzewodowe czujniki, elementy wykonawcze automatyki domowej, a nawet energooszczędne stacje pogodowe. Przykładowo poniższa stacja solarna wykorzystuje układ ESP8266 na module WeMos D1 mini Pro, aby pobierać dane z czujników atmosferycznych i udostępniać je w sieci.

Moduły ESP znaleźć można też w licznych komercyjnych rozwiązaniach z zakresu automatyki domowej, gdzie urządzenia łącząc się w obrębie sieci lokalnej sterują np. oświetleniem lub roletami. Przykładowe projekty zrealizowane na ESP8266 znaleźć można na naszym blogu:

Pływająca głowa krokodyla IoT – oryginalny termometr DIY
Pływająca głowa krokodyla IoT – oryginalny termometr DIY

Niska cena i duże możliwości sprawiły, że układy ESP8266 znalazły zastosowanie w licznych DIY. Tym razem pora na niezwykle oryginalny…... Czytaj dalej »

Czy wpis był pomocny? Oceń go:

Średnia ocena 4.5 / 5. Głosów łącznie: 137

Nikt jeszcze nie głosował, bądź pierwszy!

Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!

Czy wpis był pomocny? Oceń go:

Średnia ocena 4.5 / 5. Głosów łącznie: 137

Nikt jeszcze nie głosował, bądź pierwszy!

Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!