* l'effet train3 est le shift décalé de deux buffers avec mix des deux * refactorisé encore une fois les dossiers de LED RGB
64 lines
1.8 KiB
Lua
64 lines
1.8 KiB
Lua
-- initially based on https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/webap_toggle_pin.lua
|
|
|
|
-- start wifi client or AP mode
|
|
--dofile('wificlient.lua')
|
|
dofile('wifiap.lua')
|
|
|
|
-- LED init (strip with 72 leds)
|
|
print("Initializing LED strip...")
|
|
ws2812.init()
|
|
strip_buffer = ws2812.newBuffer(6, 3)
|
|
ws2812_effects.init(strip_buffer)
|
|
-- initially all leds off
|
|
ws2812_effects.set_speed(200)
|
|
ws2812_effects.set_brightness(0)
|
|
ws2812_effects.set_color(0,0,0)
|
|
ws2812_effects.start()
|
|
print("done.")
|
|
print()
|
|
|
|
-- helper functions
|
|
-- 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 (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+)=([a-z0-9_]+)&*") do
|
|
_GET[k] = v
|
|
end
|
|
end
|
|
if (_GET.set == "effect") then
|
|
print("setting effect", _GET.effect)
|
|
ws2812_effects.set_mode(_GET.effect)
|
|
ws2812_effects.set_speed(200)
|
|
ws2812_effects.set_brightness(50)
|
|
ws2812_effects.start()
|
|
end
|
|
if (_GET.set == "color") then
|
|
print("setting color (RGB)", _GET.r, _GET.g, _GET.b)
|
|
ws2812_effects.set_color(_GET.g, _GET.r, _GET.b) -- obviously our strip is GRB and not RGB
|
|
end
|
|
send_file(client, 'index.html')
|
|
end)
|
|
conn:on("sent", function(c) c:close() end)
|
|
end)
|
|
|