ESP8266 LUA komme nicht weiter

OP #4054285
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
Gast #4054426
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.
OP #4054621
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)
#4063094
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.