Język LUA dla ESP8266

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.

Kopiuj
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

Kopiuj
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ąć?

edytowany 1x, ostatnio: flowCRANE
flowCRANE
Kod wrzucaj w znaczniki <code=lua></code>
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
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


edytowany 3x, ostatnio: flowCRANE
0

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

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
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?

mad_penguin
mad_penguin
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Rzeszów
0

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

0

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

Kopiuj
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ę

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

Co w ogóle znaczy stdin:2:

edytowany 2x, ostatnio: flowCRANE
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
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.

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
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?

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

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


mlyszczek
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Wrocław
  • Postów:167
0

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

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

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


flowCRANE
@mlyszczek i @Patryk27, nie zaśmiecajnie wątku postami z OT - od tego są komentarze;
0

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

Kopiuj
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.

Kopiuj
stdin:2: '=' expected near 'd'
stdin:2: ')' expected (to close '(' at line 1) near 'irst'
stdin:2: '=' expected near 'aragraph'
edytowany 1x, ostatnio: flowCRANE
flowCRANE
Wstawiaj kod w znaczniki &lt;code=lua&gt;
0

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

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

chyba eeprim padł.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.