Files
NodeMCU_Lua/LED_RGB_WS2812/chapeau_led/webleds.lua
Christian Zufferey 65fa2289ec Super bien avancé sur ma démo de chapeau
* ajouté un mini WEB IDE qui permet directement sur le NodeMCU d'éditer un script LUA
* refactorisé un poil mes deux WEB IDE
* rangé au bon endroit mes dexu WEB IDE
2018-12-05 21:19:44 +01:00

81 lines
2.2 KiB
Lua

-- Petit script de serveur WEB pour piloter les effets des LED RGB
-- source: https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/webap_toggle_pin.lua
print("\n webleds.lua zf181205.2101 \n")
-- send a file from memory to the client; max. line length = 1024 bytes!
function send_file(client, filename)
if file.open(filename, "r") then
repeat
local line=file.read('\n')
if line then
client:send(line)
end
until not line
file.close()
end
end
-- web server
srv = net.createServer(net.TCP)
srv:listen(80, function(conn)
conn:on("receive", function(client, request)
local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP")
if not string.find(request, "/favicon.ico") then
--print("coucou")
if (method == nil) then
_, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP")
end
_GET = {}
if (vars ~= nil) then
for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
_GET[k] = v
print(k..": "..v)
end
end
if (_GET.fonction == "start") then
train_start()
end
if (_GET.fonction == "stop") then
train_stop()
end
if (_GET.set == "speed") then
train_stop()
if (_GET.speed == "inc") then
train_speed=train_speed*0.8
else
train_speed=train_speed*1.2
end
train_start()
end
if (_GET.set == "color") then
print("setting color (RGB)", _GET.R1, _GET.G1, _GET.B1)
train_stop()
R1=_GET.R1 G1=_GET.G1 B1=_GET.B1
R2=_GET.R2 G2=_GET.G2 B2=_GET.B2
train1_fill()
train2_fill()
train_start()
end
if (_GET.restart == "1") then
restarttimer1=tmr.create()
tmr.alarm(restarttimer1, 2*1000, tmr.ALARM_SINGLE, function()
node.restart()
end)
end
print("send html...")
send_file(client, 'index.html')
end
end)
conn:on("sent", function(c) c:close() end)
end)