Light Cube/Projektcode

Aus C3MAWiki
Zur Navigation springenZur Suche springen
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("C3MA", "chaosimquadrat")
   ws2812.init();  
   local ledCount = 34;
   local leds = string.char(10,00,0):rep(ledCount)
   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)
   function update ()
       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;
       end
      ws2812.write(leds) 
   end
   tmr.alarm(0, 100, tmr.ALARM_AUTO, update)      


Hauptsteuereinheit


--