====== boot-réseau pour ESP8266 ======
- Code lua basique
- OTA boot Over The air et met a jour le firmawre
- utilise un serveur http pour se mettre à jour
===== Code Lua facile =====
- L'ESP grace à init.lua va cherche un fichier correspondant à son //chipid// sur l'AP et l'éxecute,
Cela permet de de plus avoir à brancher les puces pour les programmer ;-)
bon ça bouffe un peu de place ...
Pistes :
* http://devicehub.net/dev/tutorials/esp8266_senzor_actuator
Reste a enlever le dernier caractere...
Fichier déposé sur l'AP , mon ESP a 10265575 comme chipID
echo "---boot
print (node.info())
--fin"
> boot-10265575.lua
--init.lua
--lecture d'un boot-lua reseau
function ap_connect ()
wifi.setmode(wifi.STATION)
cfg = { ip="192.168.1.63", netmask="255.255.255.0", gateway="192.168.1.1"}
wifi.sta.setip(cfg)
wifi.sta.config("SSID","PASSWD")
ident = node.chipid()
print(ident)
end
function transboot ()
conn=net.createConnection(net.TCP, 0)
conn:connect(80,"192.168.1.1")
conn:on("connection", function(conn, payload)
print ("get")
conn:send("GET /boot-" .. ident ..".lua" .. " HTTP/1.1\r\nHost: www.local.lan\r\n" .. "Connection: keep-alive\r\nKeep-Alive: timeout=5, max=100 */*\r\n\r\n")
print("connection")
end )
conn:on("receive", function(conn, payload)
print("receive")
deb = string.find(payload, "--boot")
if (deb) then
print ("--boot " .. deb)
prog = string.sub(payload, deb)
print (prog)
file.remove("boot.lua")
file.open("boot.lua","a+")
file.write(prog)
file.close()
conn:close()
dofile("boot.lua");
end
end )
end
function boot_fic ()
if (file.open("boot.lua", "r") ~=nil) then
print(file.read("q"))
file.close()
dofile("boot.lua");
end
end
ap_connect ()
transboot()
boot_fic()
tmr.alarm(1,10000, 1, function()
if wifi.sta.status() ~= 5 then
print ("AP")
ap_connect ()
transboot()
boot_fic()
end
end)
===== On The Air , boot pour une mise à jour WIFI =====
==== pistes ====
* http://www.esp8266.com/viewtopic.php?p=33235
* https://gist.github.com/av1024/8d058d31a6dfb74bbd0d une maj par code python
==== Mise à jour par http ====
la librairie ESP8266HTTPUpdateServer