ESPlorer – IDE dla NodeMCU

Poprzednio pisałem o tym jak wgrać firmware do modułu NodeMCU i wydać mu kilka prostych poleceń. Dziś opiszę IDE ESPlorer, które ułatwi programowanie modułu. IDE ESPlorer stworzono w Javie, dzięki temu działa pod systemem Windows, Linux oraz MacOS (oczywiście musimy mieć zainstalowaną Javę).

Na początek musimy pobrać IDE ESPlorer, pobrane archiwum rozpakowujemy i uruchamiamy środowisko, okno aplikacji wygląda następująco:

IDE ESPlorer - widok okna aplikacji
W prawej górnej części okna musimy wybrać port COM do którego jest dołączony moduł z ESP8266, nacisnąć przycisk Open i jesteśmy gotowi do pisania aplikacji. Zaczniemy tradycyjnie od migania diodą. Zazwyczaj pierwszy tego typu program piszemy używając do odmierzania czasu między mignięciami funkcji typu sleep lub delay albo stosując pętlę opóźniającą, NodeMCU ma tego typu funkcję (tmr.delay), ale jej stosowanie nie jest zalecane ze względu na to, że ta funkcja blokuje procesor na czas opóźnienia. Jest na to lepszy sposób, należy użyć funkcji

tmr.alarm(id, interval, repeat, function do())

Jej parametry to:

  • id – identyfikator, który może posłużyć potem do wyłączenia alarmu funkcją tmr.stop
  • interval – czas w milisekundach między wywołaniami funkcji podanej jako parametr do
  • repeat – jeśli podamy 0 to funkcja do zostanie wykonana raz, jeśli podamy 1 to funkcja będzie wywoływana w nieskończoność (ewentualnie do wywołania funkcji tmr.stop)
  • do – funkcja, która będzie wywoływana

Kompletny program wygląda następująco:

gpio.mode(0, gpio.OUTPUT)         -- konfiguracja pinu 0 jako wyjście

ledon = 1                         -- zmienna, która mówi czy dioda jest obecnie zapalona

tmr.alarm(0, 1000, 1,             -- uruchamiam wywoływanie funkcji co sekundę
  function ()
    if ledon == 0 then            -- jeśli dioda jest zgaszona to ją zaświecamy
      gpio.write(0, gpio.HIGH)
      ledon = 1
    else                          -- jeśli dioda jest zapalona to ją gasimy
      gpio.write(0, gpio.LOW)
      ledon = 0
    end
  end
)

Powyższy kod należy skopiować i wstawić w lewe okienko aplikacji, teraz można uruchomić program na module, w tym celu naciskamy przycisk Send to ESP, po chwili dioda modułu powinna zacząć migać.

esplorer_1
Po prawej stronie widać polecenia wysyłane przez IDE do modułu, można też wysyłać polecenia ręcznie korzystając z pola na dole okna i klikając przycisk Send:

esplorer_2

Zapisywanie skryptu w module

Teraz zróbmy eksperyment: zrestartujmy moduł przyciskiem RST lub (jeśli mamy moduł bez tego przycisku) odłączmy i dołączmy zasilanie modułu. Widzimy, że aplikacja nie uruchamia się. Aby aplikacja była pamiętana i uruchamiana automatycznie musimy ją zapisać w systemie plików modułu pod nazwą init.lua. Aby to zrobić musimy nasz skrypt zapisać w pliku o nazwie init.lua (plik po załadowaniu do modułu będzie miał taką samą nazwę jak plik skryptu na dysku komputera), następnie zapisać plik w module klikając Save to ESP (nie Send to ESP!). Teraz można zresetować moduł, aplikacja powinna się automatycznie uruchomić.

Kasowanie skryptu z modułu

Aby usunąć skrypt możemy się posłużyć poleceniem file.remove(„init.lua”) wpisując je w okienko poleceń i naciskając Send.

esplorer_3