Język LUA dla ESP8266

0

Zacząłem korzytać z ESP8266 i języka LUA jak na razie jest on dla mnie nie zrozumiały.

gpio.mode(4,gpio.OUTPUT)
 
state = 0
 
tmr.alarm(0, 500, 1, function()
    if (state==0) then
        state = 1
        gpio.write(4, gpio.HIGH)
        else
        state = 0
        gpio.write(4, gpio.LOW)     
    end
end)

Przykładowy kod znaleziony na stronie www. Powinien działać, a przy próbie wgrania pojawiają się takie kwiatki

stdin:1: 'then' expected near 'thenstate'
stdin:2: '=' expected near 'tate'
stdin:2: malformed number near '0tmr'
stdin:1: malformed number near '1gpio'

Używam Esplorer IDE.
JAk to ogarnąć?

0

Najpierw naucz się języka, a dopiero potem twórz w nim na egzotyczną platformę...

Tak czy siak problem masz w tym, że pewnie kod wklejasz w złe miejsce:

03b15cad56.png

i klikasz potem Save&Run (pierwszy od lewej), z tego co pamiętam, bo moje ESP leży zakurzone niestety ;p

0

Wklejam kod tam gdzie napisałeś. Nie mam niegdzie przycisku Save&run

0

O, ja mam 0.2.0-rc3 - jak widać jestem w tyle :P
I Send to ESP zwraca Ci te błędy, tak?
Próbowałeś zamieniać taby na spacje w kodzie źródłowym?

0

Tak zwraca błędy. Jutro spróbuję zamienić tab na spacje, bo dziś już schowałem zabawki.

Nic to nie zmieniło.
Znacie jakieś inne platformy oferujęce podobne możliwości co ESP8266?

0

Możesz pisać pod ESP8266 w Arduino albo w C.

0

To jest jakiś śmiech na sali. Przykłądow dwa timery.

tmr.alarm(0, 1000, 1, function()
print("test")
end)
tmr.alarm(1, 1000, 1, function()
print("Ala")
end)

Czasem wgrywa się bez problemu, a czasem pojawia się

stdin:2: '=' expected near 'm'

Co w ogóle znaczy stdin

0

stdin to standard input, czyli strumień, którym przesyłasz dane do ESP - :2 oznacza drugą linię.
A błędy się pojawiają losowo, ponieważ masz źle podpięte/przygotowane urządzenie, którym wysyłasz dane do ESP - na przykład brakuje Ci gdzieś opornika/kondensatora/whatever, przez co niektóre bity się czasem źle przesyłają.

0

Ale ja używam gotowego modułu, z wyprowadzeniami, układem zasilania, przejściówką USB-UART.

0

Zakładając, że nie jest to tania chińszczyzna za piątaka, spróbuj pobawić się ze zmianą prędkości UART na mniejszą.

0

Moduł jakim używam to nodeMCU v2.0. Spróbuję użyć przejściówki FTDI.

Czy mógłby ktoś mi podesłać starszą wersję Esplorera? Może ta najnowsza ma bugi?

0

Tutaj masz tę ode mnie (0.2.0-rc3), która u mnie się sprawdza.

0

Czy my naprawdę doszliśmy do momentu, gdzie soft na mikrokontrolery piszemy w językach skryptowych?

0

@mlyszczek: a nawet dwa poziomy wyżej, ponieważ ESP8266 to z założenia tylko karta wifi ;-)

0

Problem nadal występuje.
Do posiadaczy ESP, kto jest chętny sprawdzić czy u niego działa?

gpio.mode(4,gpio.OUTPUT)
gpio.write(4,gpio.LOW)
wifi.setmode(wifi.STATION)
wifi.sta.config("ssid","password")
print(wifi.sta.getip())
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive",function(conn,payload)
conn:send("<h1>ESP826!</h1>")
conn:send("<p>My first paragraph.</p>")
conn:close() end)
end)

Oczywiście wpisuję poprawny ssid i hasło.

stdin:2: '=' expected near 'd'
stdin:2: ')' expected (to close '(' at line 1) near 'irst'
stdin:2: '=' expected near 'aragraph'
0

Ostatecznie mój moduł chyba padł. Próbowałem sił z arduino i pojawia się taki komunikat:

 error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

chyba eeprim padł.

1 użytkowników online, w tym zalogowanych: 0, gości: 1