Light Cube/Projektcode: Unterschied zwischen den Versionen

Aus C3MAWiki
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
K (Der Seiteninhalt wurde durch einen anderen Text ersetzt: „Kategorie:öffentlich {{aktives Projekt|Kontakt=Berkay|öffentlich=ja}} Wenn du Fragen zum Projektcode hast, wende dich an Ben…“)
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:öffentlich]]
[[Kategorie:öffentlich]]
{{aktives Projekt|Kontakt=Berkay|öffentlich=ja}}
{{aktives Projekt|Kontakt=Berkay|öffentlich=ja}}
Hier wird der bisherige Projektcode von dem Projekt Light Cube reingestellt. Die Projektseite: [[Light_Cube]]
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)

Aktuelle Version vom 1. Dezember 2016, 22:37 Uhr

Dies ist ein Projekt, an dem momentan aktiv gearbeitet wird. Wenn du Fragen hast oder mitarbeiten möchtest, wende dich an Berkay.

Wenn du Fragen zum Projektcode hast, wende dich an Berkay