NodeMcu i pierwszy program LUA dla ESP8266

Mając już wgrany firmware do modułu ESP8266 można zabrać się za pisanie pierwszego programu. Będzie to prostu program, który połączy się z siecią Wi-Fi a wtedy będzie się można do niego „spingować”.

Dzięki temu, iż moduł ESP8266 działa na firmware NodeMCU, można zaprogramować go za pomocą języka LUA. Język LUA jest prostym językiem skryptowym, w zupełności wystarczającym na potrzeby programowania układu ESP8266. Węcej informacji można znaleźć na Wikipedii oraz na stronie projektu www.lua.org.

Do zaprogramowania układu posłuży środowisko programistyczne ESPlorer. Jest intuicyjne w obsłudze, posiada podpowiadanie składni oraz można bezpośrednie z niego uruchamiać i wgrywać programy do modułu.

Do uruchomienia tego środowiska potrzebna jest Java w wersji minimum 1.7. Następnie należy pobrać ESPlorer ze strony projektu https://esp8266.ru/esplorer/#download, rozpakować archiwum i uruchomić z terminala java -jar ESPlorer.jar. W tym momencie można już podpiąć układ Arduino+ESP8226, zmontowany w jednym z poprzednich wpisów, do komputera i spróbować się połączyć. Wybieramy odpowiedni port, baud rate na 115200 oraz klikamy Open. Kontrolki Open oraz CTSPowinny się zaświecić na zielono. Gdy Open świeci się na czerwono, można wysłać komendę za pomocą jednego z przycisków na dole programu np. “Chip Info”. To powinno pomóc. W ten sposób układ jest gotowy do napisania pierwszego programu.

ESplorer IDE

ESplorer IDE

Pierwszy program będzie bardzo prosty i pozwoli nam sprawdzić, czy moduł działa jak należy. Połączymy się z siecią Wi-Fi oraz spróbujemy zrobić Ping do ESP8266. Następnie gdy układ połączy się z siecią Wi-Fi, wykonamy Ping do modułu na podany adres.

Wklej poniższy kod do ESPlorer oraz kliknij “Save to ESP”. Program zapyta nas jeszcze o nazwę dla pliku. Jeśli plik zostanie nazwany init.lua program będzie się wykonywał automatycznie po starcie układy. Póki co na nasze potrzeby nauki lepiej tego nie zapisywać jako init.lua, żeby nie uniknąć ewentualnych kłopotów.

wifi.setmode(wifi.STATION)              -- ustawiamy modul w trybie STATION
wifi.sta.config("nazwsa_sieci","haslo")  -- podajemy nazwe i haslo do naszej wifi
-- robimy petle, ktora bedzie wykonywala zawarty w niej kod co sekunde
tmr.alarm(0,1000,1,function()
    -- jesli modul sie polaczyl i uzyskal adres IP...
    if wifi.sta.getip() ~= nil then
        print("Polaczony")              
        print("IP: "..wifi.sta.getip()) -- ...to wyswietl adres IP
        tmr.stop(0)                     -- oraz wyjdz z petli
    else
        -- w przeciwnym wypadku wyswietlaj komunikat o laczeniu
        print("Lacze...")          
    end
end)

 

Program zapisze się w pamięci ESP8266, a na prawym panelu powinien pojawić się adres IP tego modułu.

ESP8266 połączony z WiFi

ESP8266 połączony z WiFi

Teraz można spróbować wysłać ping pod podany adres IP. Otwieramy terminal i wpisujemy ping 192.168.1.102 w moim przypadku. Jak widać moduł ładnie połączył się z siecią.

Ping do ESP8266

Ping do ESP8266

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *