Commencé une nouvelle version de pet tracker qui n'utilise pas le module rtc-mem
J'utilisais la possibilité de sauvegarder le flag de dsleep dans la rtc-mem afin de pouvoir différencier lors du boot si c'est un reset ou une sortie de sommeil profond. Maintenant je vais partir du principe que quand il y a un *hardware RESET* c'est forcément une sortie de dsleep. Si on veut avoir la *seconde chance* lors de la procédure de boot, il faudra utiliser le *power on RESET*
This commit is contained in:
91
DeepSleep/Pet_tracker_3/oldies/0_dsleep.lua
Normal file
91
DeepSleep/Pet_tracker_3/oldies/0_dsleep.lua
Normal file
@@ -0,0 +1,91 @@
|
||||
-- Teste le deep sleep !
|
||||
-- s'endore pendant xx secondes après xx secondes
|
||||
|
||||
-- ATTENTION: il faut connecter la pin 0 à la pin RESET avec une résistance de 1k !
|
||||
|
||||
print("\n dsleep.lua zf200722.1133 \n")
|
||||
|
||||
zLED=4
|
||||
f= "flash_led_xfois.lua" if file.exists(f) then dofile(f) end
|
||||
|
||||
function ztime()
|
||||
tm = rtctime.epoch2cal(rtctime.get()+2*3600)
|
||||
print(string.format("%04d/%02d/%02d %02d:%02d:%02d", tm["year"], tm["mon"], tm["day"], tm["hour"], tm["min"], tm["sec"]))
|
||||
end
|
||||
|
||||
function dsleep_on()
|
||||
print("timer dsleep on...")
|
||||
ztmr_SLEEP = tmr.create()
|
||||
ztmr_SLEEP:alarm(2*1000, tmr.ALARM_SINGLE, function ()
|
||||
print("Je dors...")
|
||||
tmr.delay(100*1000)
|
||||
-- node.dsleep(4*1000*1000)
|
||||
-- print(node.bootreason())
|
||||
rtcmem.write32(10, 43690) --flag pour détecter le réveil dsleep
|
||||
-- print("le flag est à "..rtcmem.read32(10))
|
||||
wifi.setmode(wifi.NULLMODE,true)
|
||||
rtctime.dsleep(4*1000*1000)
|
||||
end)
|
||||
end
|
||||
|
||||
--[[
|
||||
dsleep_on()
|
||||
print(node.bootreason())
|
||||
print("le flag est à "..rtcmem.read32(10))
|
||||
|
||||
f= "wifi_info.lua" if file.exists(f) then dofile(f) end
|
||||
|
||||
function ztime()
|
||||
tm = rtctime.epoch2cal(rtctime.get()+2*3600)
|
||||
print(string.format("%04d/%02d/%02d %02d:%02d:%02d", tm["year"], tm["mon"], tm["day"], tm["hour"], tm["min"], tm["sec"]))
|
||||
end
|
||||
|
||||
print(ztime())
|
||||
|
||||
|
||||
]]
|
||||
|
||||
function dsleep_off()
|
||||
print("timer dsleep off...")
|
||||
ztmr_SLEEP:unregister()
|
||||
end
|
||||
|
||||
function watch_wifi_on()
|
||||
dsleep_on()
|
||||
ztmr_watch_wifi_on = tmr.create()
|
||||
ztmr_watch_wifi_on:alarm(1*1000, tmr.ALARM_AUTO , function()
|
||||
if wifi.sta.getip() == nil then
|
||||
-- print("Unconnected... (on)")
|
||||
else
|
||||
ztmr_watch_wifi_on:stop()
|
||||
print("Connected... (on)")
|
||||
-- f= "wifi_info.lua" if file.exists(f) then dofile(f) end
|
||||
watch_wifi_off()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function watch_wifi_off()
|
||||
dsleep_off()
|
||||
ztmr_watch_wifi_on:unregister()
|
||||
ztmr_watch_wifi_off = tmr.create()
|
||||
ztmr_watch_wifi_off:alarm(1*1000, tmr.ALARM_AUTO , function()
|
||||
if wifi.sta.getip() == nil then
|
||||
ztmr_watch_wifi_off:stop()
|
||||
print("Unconnected... (off)")
|
||||
watch_wifi_on()
|
||||
ztmr_watch_wifi_off:unregister()
|
||||
else
|
||||
-- print("Connected... (off)")
|
||||
xfois = 2
|
||||
blink_LED ()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
print("Coucou, je suis réveillé...")
|
||||
print("Et il est: ")
|
||||
ztime()
|
||||
|
||||
watch_wifi_on()
|
||||
|
||||
Reference in New Issue
Block a user