NodeMCU – jak wgrać firmware?

NodeMCU

Dotarł dziś do mnie moduł NodeMCU bazujący na ESP8266, niby nic wyjątkowego, mam już ESP-10, ale ten moduł po pierwsze ma wbudowany konwerter USB<->UART, więc można go podłączyć bezpośrednio do komputera, po drugie ma dużą liczba wyprowadzonych pinów, po trzecie moduł ma piny opisane zgodnie z nomenklaturą stosowaną w firmware NodeMCU. Jeśli hasło NodeMCU nic Ci nie mówi to krótko opiszę co to jest.

NodeMCU – co to jest?

Projekt NodeMCU to firmware dla modułu ESP8266 umożliwiający programowanie go w języku Lua. Jeśli pierwszy raz słyszysz o Lua to witaj w klubie 🙂 Całe szczęście język jest na tyle prosty, że jeśli masz jakiekolwiek doświadczenie z jakimkolwiek językiem programowania lub chociaż tworzeniem skryptów, to jesteś gotowy do programowania NodeMCU.

Wgrywanie NodeMCU do modułu z ESP8266

Używam systemu Windows, a dla tego systemu przygotowano prosty w obsłudze program, który wszystko za mnie zrobił, program jest dostępny na GitHubie. Nie trzeba pobierać całości archiwum, wystarczy sam plik wykonywalny, który znajduje się w katalogu Win32/Release lub Win64/Release, zależnie od systemu, którego używasz. Po uruchomieniu programu musiałem w zakładce Advanced zmienić szybkość komunikacji na 115200 b/s (domyślnie było 230400), ponieważ moduł dostarczony przez Kamami skonfigurowany był do działania z tą właśnie szybkością.

nodemcu_br
Teraz wystarczy nacisnąć przycisk Flash (oczywiście dołączając przedtem moduł do komputera przez USB), poczekać chwilę i moduł jest gotowy do pracy.

nodemcu_flash

Pierwsze kroki z Lua

Do komunikacji z modułem można użyć np. terminala dostępnego w środowisku Arduino IDE, najpierw wybieramy w menu Narzędzia>Port właściwy wirtualny port COM, następnie wciskamy Ctrl+Shift+M (lub wybieramy z menu Narzędzia>Szeregowy monitor), ustawiamy prędkość portu na 9600 b/s, koniec linii na „Zarówno NL i CR”. Teraz naciskamy przycisk reset na module, jeśli prawidłowo wgraliśmy firmware to NodeMCU przedstawi się w następujący sposób:

nodemcu_term
W tej chwili możemy już wysyłać polecenia do modułu, wykaz dostępnych poleceń znajduje się na stronie projektu NodeMCU. Na początek spróbujemy zaświecić diodę wbudowaną w moduł, dioda dołączona jest do linii GPIO0. Pierwsze co musimy zrobić to skonfigurować linię jako wyjście, robimy to poleceniem:

gpio.mode(0, gpio.OUTPUT)

Polecenie wpisujemy w terminal, następnie naciskamy Enter. Teraz można zaświecać i gasić diodę poleceniami:

gpio.write(0, gpio.HIGH)
gpio.write(0, gpio.LOW)

To tyle na dziś, następnym razem postaram się pokazać trochę bardziej zaawansowane przykłady.

 

4 komentarze

  1. Próbowałem skorzystać z porad tego poradnika, niestety wpisanie komendy gpio.write(0, gpio.HIGH) powoduje tylko chwilowe zapalenie niebieskiej diody. (tak jakby zapalała się ona na czas transmisji danych)

    🙁

  2. Witam,
    Informacje załączone do opisu nie są wystarczające do wykonania wczytania flash-a do modułu ESP8266. Log po próbie wczytania jest następujący:

    Note:Detect serial port changed.
    Note:Auto MAP serial port.Port–>COM7

    Note:Serial port connected.
    Note:Begin find ESP8266.
    Note:ESP8266 ACK success.
    Note:ESP8266 ACK success.
    Error:Set ESP8266 Address timeout.

    Pozdrawiam

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.