ESP8266 – początki w Windows

Nadszedł czas na moduł ESP8266, który kupiłem pod koniec zeszłego roku na ebayu. Poniżej zebrałem garść podstawowych informacji, które umożliwią szybki start z układem WiFi. Mimo, iż podobnych poradników w sieci jest całe mnóstwo, napisałem te kilka zdań, bo zaczynając zabawę z moim modułem posiedziałem chwilkę nad przeglądarką z otwartymi 20 zakładkami, nim wszystko zaczęło działać tak jak chciałem.

ESP8266 – co nam będzie potrzebne?

Ten opis bazuje na prostej płytce o oznaczeniu ESP-01 z 8 goldpinami. Niezbędna będzie również przejściówka USB-RS232 TTL ze stabilizatorem 3,3V, mała płytka stykowa, kilka kabelków do płytki i na goldpiny. Może się okazać, że przejściówka będzie posiadała źródło napięcia 3V3 zbyt słabe prądowo, wtedy będziemy potrzebować modułu zasilającego do płytki stykowej, skonfigurowanego na napięcie 3,3V.

Co potrzebne do ESP8266

Niezbędny będzie komputer z Windowsem i trochę softu, o którym niżej.

ESP8266 ESP-01 – podłączenie

Mój moduł kupiłem na ebayu w grudniu 2014 za $3,15. Teraz ceny są niższe, ale patrząc na obecny kurs dolara, różnica nie jest wielka. ESP-01 to maleńka płytka drukowana, na której prócz anteny i kilkunastu elementów znajdziemy złącze goldpin 2×4. Piny nie są opisane, warto mieć ściągę:

Opisy pinów od góry - esp-01

Na płytce znalazły się dwie diody LED – czerwona sygnalizująca podłączone zasilanie i niebieska, migająca podczas komunikacji szeregowej.

ESP-01 Opisy od strony pinów

Połączenia między konwerterem USB/RS232 a ESP8266:
– bezpośrednio: Tx z Rx i Rx z Tx
– za pośrednictwem płytki stykowej: GND-płytka-GND, 3V3-płytka-VCC i CH_PD
Na czas wgrywania bootloadera do GND należy podłączyć GPIO_0

Po sprawdzeniu (najlepiej dwa razy) poprawności połączeń, można wpiąć przejściówkę w port USB, Jeśli kupiliśmy tani, chiński konwerter na chipie prolific, to prawie na pewno będzie to podróbka, która nie zadziała na automatycznie pobranych driverach z Windows Update:

Kod 10 w sterowniku Prolific

Pobieramy stąd starsze, działające sterowniki: Kabel USB-RS232 Prolific PL2303 i błąd kod 10. Po zainstalowaniu, przechodzimy do Menedżera Urządzeń, tam klikamy dwa razy na pozycji naszego kabelka, przechodzimy do zakładki Sterownik->Aktualizuj sterownik->Przeglądaj mój komputer w poszukiwaniu…->Pozwól mi wybrać z listy sterowników… i wybieramy te działające:

Ustawienie działającego sterownika

W zakładce Ustawienia portu->Zaawansowane warto też ustawić jakiś niski, niezajęty port COM.

Port COM - ustawienia

Mimo tych zmian, nowsze Windowsy będą uparcie ładować nowszy, niedziałający sterownik po ponownym podłączeniu przejściówki. By wyłączyć te automatyczne aktualizacje, należy we Właściwościach systemu (Panel sterowania->System->Zaawansowane ustawienia systemu) przejść do zakładki Sprzęt, wybrać Ustawienia instalacji urządzeń i zmienić ustawienie na Nie, pozwól mi wybrać, co zrobić i Nigdy nie instaluj sterownika z Witryny Windows Update.

Wgrywanie firmware’u do ESP8266

Najczęściej nie wiadomo, co Chińczyk wgrał w zakupiony moduł ESP-01 i można tracić czas na próbę połączenia ustawiając różne parametry, lub od razu przejść na stronę nodemcu na github i pobrać najnowszą wersję nodeMCU.

Strona nodemcu na githubie

Do wyboru są dwa firmware: z obsługą liczb rzeczywistych (integer) i o nieco większym rozmiarze, obsługujący liczby zmiennoprzecinkowe (float). Bardziej uniwersalny jest ten drugi – pobieramy go na dysk:

Nodemcu - wersje firmware

Do wgrania softu można wykorzystać jedno z kilku dostępnych narzędzi, od dedykowanego NodeMCU Flasher (link do pobrania), czyli ESP8266Flasher.exe, który jest dostępny dla Windowsów 32 jak i 64 bitowych

ESPFlasher NodeMCU

Do wgrania wystarczą defaultowe ustawienia, ścieżkę do firmware podaje się w zakładce Config. Należy pamiętać o podłączeniu pinu GPIO_0 do masy (GND) na czas wgrywania.

ESP-01 podłączony do komputera

Kolejne narzędzie, to bardzo prosty ESP8266 Flash Downloader. Link do pobrania.

Flash Downloader do ESP8266

Na końcu pojawi się błąd wyjścia z trybu flash, ale to prawidłowa reakcja. Pin GPIO_0 oczywiście również musi być podłączony do GND.

Kolejny flasher ESP FLASH DOWNLOAD TOOL V2.3 nieco straszy liczbą opcji (link do pobrania). Tu również ustawienia powinny być defaultowe. Często trzeba zmienić adres początku wgrywania na 0x000000:

Flash Download Tool V2_3

Programowanie ESP8266

Mając wgrany firmware nodeMCU, można zacząć pisać proste programy. Zaczynamy od podłączenia z naszym ESP-01. Oprogramowanie pozwala na połączenie telnet z prędkością 9600Bd. Warto skorzystać z nieśmiertelnego PuTTy (link do pobrania):

Połączenie ESP8266 z PuTTy

Klepnięcie w [enter] powinno spowodować pojawienie się znaku zachęty >. Po wpisaniu:

node.restart()

powinniśmy ujrzeć nieco więcej informacji:

Restart ESP8266

Przeklepmy w terminalu przykładowy program, który połączy się z naszą siecią bezprzewodową:

ip = wifi.sta.getip()
print(ip)
wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","password")
ip = wifi.sta.getip()
print(ip)

W pierwszych dwóch linijkach pobieramy i wyświetlamy adres IP, urządzenie zwraca nil, gdyż nie jest podłączone pod APeka. W kolejnych ustawiamy tryb pracy, nazwę naszej sieci (SSID) i hasło (password). Następnie znowu pobieramy IP i wyświetlamy. Ja jeszcze spingowałem ESP8266, by pokazać, że działa:

ESP8266 - pierwszy program

Jak widać, program jest wykonywany linijka po linijce. Taki zapis nie jest trwały, po restarcie nie będzie po nim śladu. By to zmienić, należałoby program zapisać w pliku, który trzeba załadować do ESP8266. Jeśli plik nazwiemy init.lua, to zostanie on uruchomiony po restarcie. Dla wygody można skorzystać z mini IDE, które to ułatwi. Środowisko nazywa się ESPlorer i można je pobrać tutaj. Do działania niezbędna jest Java.

Program Esplorer

Podsumowanie

Jak widać, ta mała płytka ma bardzo duże możliwości. Nic więc dziwnego, że w sieci można znaleźć całe tony zastosowań, od prostych samodzielnych układzików, po części składowe systemów inteligentnych domów. Sporo przydatnych informacji znajduje się na tematycznym forum: esp8266.com. Moduły z ESP8266 na pewno będą się jeszcze pojawiać na stronie.

Możesz również polubić…

15 komentarzy

  1. Szymski pisze:

    Witam, mam mały problem, mój ESP8266 falshuje się lecz potem, po odłączeniu GPIO0 od GND staram się łączyć ESPlorer i zaczyna szukać ale nic nie otwiera, próbowałem inne prędkości także nic, próbowałem też dla putty, otwiera się konsola ale naciskanie czegokolwiek nie zmienia stanu na znak zachęty. Czy można uzyskać jakieś porady jakie może jest rozwiązanie?

    • Wojtek pisze:

      Jaki dokładnie firmware wgrywasz? Po wgraniu oczywiście odłączasz gpio0 od GND i zasilanie, po czym podłączasz je znowu (zasilanie)? W nodemcu 0.9.6 predkość wynosi 9600.

  2. Szymski pisze:

    Na początku miałem jakiś o wiele większy baud tam ustawiony, może jeszcze inne ustawienia, można prosić o jakiegoś screena ustawień z nodemcu? A z zasilaniem, zmieniam GPIO0 przy wyłączonym zasilaniu.

  3. Wojtek pisze:

    W nodemcu flasher w zakładce Config wczytaj firmware nodemcu 0.9.6 float pobrane z GitHub,, adres ustaw na 0x00000. W zakładce Advaced wciśnij Restore Default, czyli baudrate 230400, flash size 4MB, flash speed 40MHz, SPI Mode DIO.
    Po flashowaniu i odłączeniu GPIO0 od GND, podłącz zasilanie do ESP2866, powinna zapalić się czerwona i mignąć niebieska dioda, w ESPlorer odśwież porty, prędkość zostaw ustawioną na 9600, wybierz ten właściwy i połącz się.

  4. Szymski pisze:

    Ok to już jakiś trop, flash zrobiony z takimi ustawieniami itp. ale po zmianie pina GPIO0 i podłączeniu zasilania nie ma tego mignięcia niebieską diodą. To jakiś znak?

    • DEX pisze:

      W dwóch modułach ESP01 miałem ten sam przypadek. Bez problemu Firmware wygrywa się, ale po RESETcie, nic. Okazało się, że pamięć Flash umarła, wymieniłem choć to się ekonomicznie nie opłaca i moduły ożyły. Trzeba też uważać na “śmieciowy”(modyfikowany przez firmy lub domowych userów na własne potrzeby) Firmware, potrafi uśmiercić ESP. Są też Firmwarey nie działające z na niektórych wersjach ESP, Dla przykłady Firmware ESP Basic nie działa na ESP07 i na niektórych wersjach ESP01 z 512MB pamięci Flash. Nie działa też najnowszy Firmware od Ai Thinker na modułach z pamięcią mniejsza niż 4MB, Uważać też trzeba na Firmware w przypadku ESP13, Tu podobny problem z zarządzaniem pamięcią ESP13 ma 16MB. Starsze wersje Firmware ów obsługują max 4MB. Na koniec uwaga co do ESP01, nóżki TX RX też można używać jako GPIO, pod warunkiem, że w aplikacji nie korzystamy z RS232.

  5. patryk pisze:

    Witajcie
    chciałbym zrobić co powyższe z modułem ESP-12. W nodemcu flasher ustawiam wszystko tak samo jak jest tutaj opisane natomiast podłączenia jak niżej:
    ESP VCC – 3.3v USB-RS232 TTL
    ESP GND – GND USB-RS232 TTL
    ESP RX – TX USB-RS232 TTL
    ESP TX – RX USB-RS232 TTL
    przeczytałem również, że by wejsć w tryb flashowania trzeba dodatkowo połączyć:
    ESP Vcc to CH_PD to enable the chip
    ESP GPI0 to GND to enable flash reprogramming
    ESP GPI15 to GND to enable UART Download
    robię w ten sposób i w nodemcu na standardowych ustawieniach wszysko wydaje sie być ok – plik float się wgrywa z powodzeniem.
    Mam jednak ogromny problem by otworzyć ESP-12 w ESPlorer.
    Z ESP-01 wszystko szło wg instrukcji i komentarzy powyższych natomiast z ESP-12 nie mogę sobie poradzić 🙁 czy moglibyście mi pomóc i podać jakieś wskazówki by uzyskać połączenie w ESPlorer z ESP-12?

    • patryk pisze:

      Dodam jeszcze, że moim zdaniem chodzi pewnie o procedurę połączeń miedzy ESP-12 a USB-RS232 przed próbą otwarcia portu w ESPlorer.
      Każda próba połączenia kończy się próbą łączenia i rzędami kropek…nic poza tym 🙁

  6. silver111silver111 pisze:

    Mam mały problem z ESP8266. Bez problemu udaje mi się wgrać nodemcu_float_0.9.6-dev_20150704. Jednak po rozłączeniu masy od GPIO_0 i ponownym podłączeniu do usb zrywa połączenie, nie rozpoznaje urządzenia USB. a gdy już uda połączyć się przez PUTTY po komendzie wifi.sta.config(“SSID”,”password”) zrywa połączenie

    • Wojtek pisze:

      Jeśli zasilanie bierzesz z przejściówki USB->RS232 to masz problem z zasilaniem. Problem częściowo rozwiąże kondensator elektrolityczny 1000uF w linii 3V3, a całkowicie stabilizowane napięcie 3V3 o wydajności około 500mA

  7. silver111silver111 pisze:

    Masz rację – problem dotyczył zasilania, ale rozwiązałem to inaczej, zasilam nadal z przejściówki USB>RS232 ale przełączyłem ją na 5V i podłączyłem wydajniejszy stabilizator 3,3V. Zadziałało. Dzięki za pomoc.

  8. Les Jacewicz pisze:

    Witam,
    przede wszystkim szacun , kawał dobrej roboty- chodzi mi o stronę i toturiale.
    Mam pytanie jak wgrać pliki LUA do ESP8266. (WeMos mini d1)
    z plikiem bin nie ma problemu, flasher daje sobie rade , ale LUA … nie mam pojęcia jak to zrobić
    Proszę o pomoc.

  1. 30.12.2015

    […] zeszłym miesiącu podałem nieco podstawowych informacji o ESP8266 i obsłudze z poziomu Windows. W tym wpisie pokażę jak wgrać firmware za pomocą komputera z linuksem. Napiszemy też […]

  2. 11.06.2017

    […] z esp easy traktujemy jak zwykły soft dla ESP. Sposób wgrania z poziomu Windowsa opisałem tutaj: ESP8266 – początki w Windows. Wraz z pobraniem paczki ze strony domowej projektu otrzymamy wersje do układów z pamięcią […]

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.