Files
NodeMCU_Lua/LED_RGB_WS2812/chapeau_led/webleds.lua
Christian Zufferey ad7b286fb4 Super bien amélioré mon chapeau à LED RGB
* ajouté le nouveau telnet serveur
* modifié la page HTML du chapeau afin de pouvoir aller directement sur la page wWEBIDE
* ajouté une fonction pour reformater le positionnement des LED RGB suivant le ruban de LED que l'on a
* mis les vraies couleurs des LED RGB dans la page HTML du chapeau, vu que c'est reformaté maintenant
* ajouté les changements de vitesse 'très vite' et 'très lent' dans la page HTML du chapeau
* ajouté un fichier vide.lua pour faire des petites démos du WEBIDE
2018-12-15 14:56:03 +01:00

85 lines
2.4 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 zf181215.1447 \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
elseif (_GET.speed == "dec") then
train_speed=train_speed*1.2
elseif (_GET.speed == "tresvite") then
train_speed=7
elseif (_GET.speed == "treslent") then
train_speed=77
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)