|
|
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| [[Kategorie:öffentlich]] | | [[Kategorie:öffentlich]] |
| {{aktives Projekt|Kontakt=Berkay|öffentlich=ja}} | | {{aktives Projekt|Kontakt=Berkay|öffentlich=ja}} |
| Dies ist der vollständige Projektcode. Die Projektseite: [[Light Cubes]]
| | Wenn du Fragen zum Projektcode hast, wende dich an [[Benutzer:Berkay|Berkay]] |
| | |
| | |
| == 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)
| |