Olvasási idő: 6 perc

Jöhet a LUA program

Én három fájlt töltök fel a cuccra. Így fájlokra bontva a program részleteket könnyebb a karbantartása a programoknak és egyszerűbb a kezelésük is. Aminek mindenféleképpen meg kell lennie az az init.lua, ez a belépési pont majd innen kiindulva bármilyen más fájlt lehet futtatni egy egyszerű paranccsal.

Program feltöltése

ESPlorer használatával kapcsolódok a mikrokontrollerhez. Csatlakoztatom a számítógéphez az eszközt, beállítom a portot, és sebességet. Reszet az ESP-n és a képen látható kimenet jelenik meg. Bal oldalon az éppen szerkesztett fájlok, jobb oldalon pedig a soros port kimenete. Megmondja pár sorban mi van a z eszközön, és milyen modulok vannak beforgatva, plusz a forgatás dátumát.

Az alatta levő init… és PWM Function test már a saját LUA programok kimenete. Három fájlt másoltam az eszközre: init.lua, server.lua, PWM.lua.

És az első program ESPlorer használatával.

init.lua – az első ami elindul

Az init.lua nem tesz mást mint csatlakozik a ruterhez. És beállítja magának a fix IP címet 192.168.0.210. Mindegyik WiFi-s eszközöm FIX IP-t kap, és elég magas tartományba osztom ki, hogy ezzel is megkülönböztessem az átlagos eszközöktől mint, mobil, tablet, TV. És így egy áramszünet után sem keveredek bele, ha IP címre csatlakozok, hogy mi az aktuális. Mindegyiknek  mindig ugyanaz. Az utolsó 2 sorban meghívja a következő fájlokat amiket még le kell futtatni.

wifi.setmode(wifi.STATION)
wifi.sta.config("wifi-név","jelszó")
 cfg =
 {
 ip="192.168.0.210",
 netmask="255.255.255.0",
 gateway="192.168.0.1"
 }
 wifi.sta.setip(cfg)
 wifi.sta.connect()

print("init...")

dofile("server.lua")
dofile("PWM.lua")

server.lua webszerver beállítása

Egy egyszerű HTML kimenetet ad, ha rá van jelentkezve a WiFi IP címére, visszaadja a saját paramétereit, plusz a futási időt is, nap óra perc lebontásban. Amit egy külön függvény meghívásával ér el.


function elapsedTime()
newData = ""
startSeconds = tmr.time()
startMinutes = string.format ("%i",(startSeconds % 3600) / 60)
startHours = string.format ("%i",(startSeconds % 86400) / 3600)
startDays = string.format ("%i", (startSeconds % (86400 * 30)) / 86400)
newData = startDays.."d "..startHours.."h "..startMinutes.."m"
return newData
end

ip, nm, gw=wifi.sta.getip()
srv=net.createServer(net.TCP)
  srv:listen(80,function(conn)
  conn:on("receive", function(client,request)
  local buf = "<html><head><meta charset='UTF-8'>"
    buf = buf.."<style>"
    buf = buf.."</style></head><body>"
    buf = buf.."<h1> ESP8266 Web Server</h1>\n"
    buf = buf.."IP Address: "..ip.."<br>\n"
    buf = buf.."Netmask: "..nm.."<br>\n"
    buf = buf.."Getaway: "..gw.."<br>\n"
    buf = buf.."Chanel: "..wifi.getchannel().."<br>\n"
    buf = buf.."<br>\n"
    buf = buf.."Elapsed time: "..elapsedTime()
  client:send(buf)
  client:close()
  collectgarbage()
end)
end)

PWM.lua vezérli a LED világítását

Végre valami izgalmas. A WiFi lapka ledjét és a panelra tesztelés céljából csatlakoztatott LED-et vezérli. Az alap kék ledet villogtatja, felváltva. Míg a csatlakoztatott ledet felvilágítja és elhalványítja. A PWM magyar jelentése impulzusszélesség-moduláció. Nagy frekvenciával változtatja a LED fényerejét. Elég látványos kis teszt.


print("PWM Function test")
pwmPin = 5 -- output GPIO14
pwm.setup(pwmPin,1000,1023)
pwm.start(pwmPin)

panelLed = 4 -- output GPIO13
pwm.setup(panelLed,1000,1000)
pwm.start(panelLed)


local r=512
local flag=1
tmr.alarm(2,3,1,function()
    pwm.setduty(pwmPin,r)
    if flag==1 then 
         r=r-1
         if r<0 then flag=0 r=0 end else r= r+1 if r>1023 then flag=1 r=1023 end
    end
end)

local flashTime=1
tmr.alarm(0,250,1,function()
    if flashTime==1 then 
         flashTime=0
         pwm.setduty(panelLed,1000)
    else
         flashTime=1
         pwm.setduty(panelLed,1020)
    end
end)

És jöhet a teszt

A ledek működését lehet látni de a webszervert ki is kell próbálni. Először is egy ping paranccsal ki lehet deríteni, hogy tényleg csatlakozott-e a ruterhez az eszköz.

ping 192.168.0.210

Majd jöhet egy böngésző ahová szintén beírva az IP cím a lenti kép fogad. Megvannak a paraméterek, IP cím, átjáró, melyik csatornán van a ruter. És mennyi ideje fut a cucc.

Az utolsó teszt, a végeredmény a böngészőben.

Végszó avagy mindenkinek ESP8266

A felhasználása szinte határtalan. mindenkinek csak ajánlani tudom ezt a remek kis technikát. Nemcsak játszani, programozgatni jó, de komoly feladatokat is rá lehet bízni.

 

ESP8266 kategória további bejegyzései:

  • ESP8266 BMP280 teszt
    Olvasási idő: 2 perc BMP280 egy alap szenzor egy időjárás állomás elkészítéséhez. Megkapjuk tőle a légnyomást és hőmérsékletet. Ami jellemzi még kis méret, alacsony…
  • Konyha LED szalag vezérlés — ESPEasy, loLin
    Olvasási idő: 6 perc Gyors tesztelés A mozgás érzékelő a mennyezetbe lett szerelve egy olyan pontra ahol megfelelően kapcsol minden irányból. A beállítása 2…
  • Végre December, Domoticz karácsonyi világítás vezérlés
    Olvasási idő: 5 perc Akkor jöjjön a lényeg amiért ez a cikket elkezdtem írni. Ennek előfeltétele a Domoticz ismerete. Itt egy régebbi bejegyzés, a…
  • ESP8266 egyszerűen, ESPEasy használata
    Olvasási idő: 5 perc Alkatrészek vezetékezése A lenti vázlat a Fritzing-el készült. 2 ellenállás egy a LED-hez egy pedig a szenzorokhoz. Én továbbra is…
  • ESP8266 Első lépések, LED + WebServer
    Olvasási idő: 6 perc Jöhet a LUA program Én három fájlt töltök fel a cuccra. Így fájlokra bontva a program részleteket könnyebb a karbantartása…