ESP8266 LUA komme nicht weiter

OP #4054285
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
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.
Gast
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.
OP
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 ?
OP
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)
@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

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.