Forum: Mikrocontroller und Digitale Elektronik ESP8266 LUA komme nicht weiter


von Franz S. (franz_0815)


Lesenswert?

Hallo

ich spiele mit dem ESP8266 1 herum
kann jetzt mit dem Lua Loader das System programmieren.
Aber was macht er dann.

Das Englisch ist so nicht mein Ding,deshalb frage ich hier noch mal 
freundlich.

Ist es richtig das ich jetzt ein Grund programm auf dem ESP habe und ich 
die srips von Lua über den LuaLoader aufspielen kann ?.


Wie könnte ich dann eine einfache Ausgabe auf dem Webserver machen?
Wo steht welche Befehle er verarbeiten kann?

Wär nett wenn ic paar kurze Hinweise bekommen könnte.
Gruss

von Martin P. (billx)


Lesenswert?

RTFM

von Franz S. (franz_0815)


Lesenswert?

top
ss

von Linksammler (Gast)


Lesenswert?

Franz Suahnein schrieb:
> Wie könnte ich dann eine einfache Ausgabe auf dem Webserver machen?

* Der ESP als Webserver?
Webserver in Lua programmieren. Beispielcode haufenweise vorhanden.

* Der ESP als Web-Client, der eine "Ausgabe" an einen anderen Webserver 
schicken soll?
HTTP-Client in Lua programmieren. Beispielcode ist vorhanden.

> Wo steht welche Befehle er verarbeiten kann?

* Sprachkern:
In der Lua-Dokumentation. Minus komplizierte MATH-Sachen.

* NodeMCU erweiterungen/interfaces:
In deren Dokumentation.

von Franz S. (franz_0815)


Lesenswert?

danke

von Franz S. (franz_0815)


Lesenswert?

Lua ist dann aber eine sript sprache ,muss nicht compiliert werden ?
ähnlich java und javascript

von FUNKtioniert nicht (Gast)


Lesenswert?

Franz Suahnein schrieb:
> Lua ist dann aber eine sript sprache ,muss nicht compiliert werden ?
> ähnlich java und javascript

Du kannst das LUA kompilieren, musst aber nicht.
Der Compiler ist bei neuen Versionen mit auf dem ESP drauf, wird einfach 
per
node.compile("sourcefile.lua") gestartet.

von Franz S. (franz_0815)


Lesenswert?

Ich habe hier noch esp8266 esp 03
sollte es damit laufen ?

von Franz S. (franz_0815)


Lesenswert?

AAAAAAAAAAAAh

Im LuaLoader steht ja fast alles drinn.

Kommen der sache schon mal näher.
Uhrzeit von Google kommt schon.

Da gibt es doch bestommt was das die GPIO ' anzeigt ,also muss der esp 
dann als server laufen und hat seine IP.
Wo wird dann der Port angegeben ?

von Jojo S. (Gast)


Lesenswert?

da im Quick Start Guide ist ein 'How do I read a gpio input'
http://benlo.com/esp8266/esp8266QuickStart.html

von Franz S. (franz_0815)


Lesenswert?

Nochmal der mit dem ersten Schritten ESP

Wenn ich diesen script in ein file first.lua mit richtigen ssid und pwd 
speicher und dann diese file per lualoader auf dem chip sende müsste ich 
an seiner ip seite doch was sehen

Oder ?



wifi.setmode(wifi.SOFTAP);
wifi.ap.config({ssid="test",pwd="12345678"});
gpio.mode(1, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive", function(client,request)
local buf = "";
local _, _, method, path, vars = string.find(request, "([A-Z]+) 
(.+)?(.+) HTTP");
if(method == nil)then
_, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
end
local _GET = {}
if (vars ~= nil)then
for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
_GET[k] = v
end
end
buf = buf.."<h1> Hello, NodeMcu.</h1><form src=\"/\">Turn PIN1 <select 
name=\"pin\" onchange=\"form.submit()\">";
local _on,_off = "",""
if(_GET.pin == "ON")then
_on = " selected=true";
gpio.write(1, gpio.HIGH);
elseif(_GET.pin == "OFF")then
_off = " selected=\"true\"";
gpio.write(1, gpio.LOW);
end
buf = 
buf.."<option".._on..">ON</opton><option".._off..">OFF</option></select> 
</form>";
client:send(buf);
client:close();
collectgarbage();
end)
end)

von Franz S. (franz_0815)


Lesenswert?

Hier klappt es nicht mit dem autoconnect.
Zuerst muss ich mit dem lualoader eine verbindung herstellen.

?
Woran liegt das ?

von Alexander F. (trilex)


Lesenswert?

@franz0815

Hi, ich steige durch dein Script nicht durch, packe das beim nächsten 
mal bitte in code Blöcke (Über dem Eingabefeld erklärt). Wenn der 
ESP8266 nach einem Neustart automatisch etwas machen soll, muss das 
Script init.lua heißen. Das wird dann direkt nach dem Neustart 
ausgeführt.

Auf der github Seite von nodeMCU 
(https://github.com/nodemcu/nodemcu-firmware) gibt es ganz unten ein 
paar Beispiele. Der Webserver ist einfacher, teste den doch mal.
1
   
2
-- A simple http server
3
    srv=net.createServer(net.TCP)
4
    srv:listen(80,function(conn)
5
      conn:on("receive",function(conn,payload)
6
        print(payload)
7
        conn:send("<h1> Hello, NodeMcu.</h1>")
8
      end)
9
      conn:on("sent",function(conn) conn:close() end)
10
    end)

Mit der init.lua musst Du ein wenig aufpassen, wenn die Fehler enthält, 
die den ESP8266 un-ansprechbar machen, kommst Du nur durch ein 
neuflashen an ihn ran.

Grüße
Alex

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.