Dies ist ein Projekt, an dem momentan aktiv gearbeitet wird. Wenn du Fragen hast oder mitarbeiten möchtest, wende dich an Berkay.
Hier wird der bisherige Projektcode von dem Projekt Light Cube reingestellt. Die Projektseite: Light_Cube
ESP-Platine/Bauteil ESP NodeMCU Devboard
wifi.setmode(wifi.STATION) wifi.sta.config("SSID", "PW")
ws2812.init();
local ledCount = 34; local leds = string.char(10,00,0):rep(ledCount) local hadIP = false; local tick = false; function readjson(data)
ok, json = pcall(cjson.decode, data) if ok then leds = "" for ledid = 1, ledCount, 1 do local ledData = json[ledid]; leds = leds .. string.char(ledData.g,ledData.r,ledData.b) end else print("failed to decode!") end
end local pseudoRemote = {} for ledid = 1, ledCount, 1 do
pseudoRemote[ledid]={} pseudoRemote[ledid].r=100 pseudoRemote[ledid].g=0 pseudoRemote[ledid].b=ledid
end local remoteData = cjson.encode(pseudoRemote); print(remoteData) local srv=net.createServer(net.TCP) srv:listen(80,function(conn)
conn:on("receive",function(conn,payload) print("Got something...") print(payload); readjson(payload) conn:send("HTTP/1.1 200 OK\n") conn:send("Content-Type: text/html\n\n") end)
end)
local led1 = 0; local led2 = 0; local led3 = 0; function countBlinks(eingabe)
while(eingabe > 0) do if(eingabe >= 100) then led1 = led1 +1 eingabe = eingabe -100 else if(eingabe >= 10) then led2 = led2 +1 eingabe = eingabe -10 else led3 = led3 +1 eingabe = eingabe -1 end end end
end
function update()
ws2812.write(leds)
end local anSekunde = false; function blinkIP()
anSekunde = not anSekunde if(anSekunde) then if led1 > 0 then ws2812.write(string.char(0,20,0)) led1 = led1 -1 return end if (led2 > 0) then ws2812.write(string.char(0,0,0) .. string.char(0,20,0)) led2 = led2 -1 return end if (led3 > 0) then ws2812.write(string.char(0,0,0):rep(2) .. string.char(0,20,0)) led3 = led3 -1 return end tmr.alarm(0, 100, tmr.ALARM_AUTO, update) else ws2812.write(string.char(00,0,0):rep(ledCount)) end
end function wlaninit ()
if(not wifi.sta.getip())then tick = not tick; if(tick)then ws2812.write(string.char(0,0,20):rep(ledCount)) else ws2812.write(string.char(0,0,0):rep(ledCount)) end return; else if not hadIP then hadIP = true local IP = wifi.sta.getip() local o1,o2,o3,o4 = IP:match("(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)" ) local eingabe = tonumber(o4) countBlinks(eingabe); tmr.alarm(0, 1000, tmr.ALARM_AUTO, blinkIP) end end
end tmr.alarm(0, 100, tmr.ALARM_AUTO, wlaninit)