Files
NodeMCU_Lua/DeepSleep/Pet_tracker_2/0_dsleep.lua
Christian Zufferey d9d92f34ba Voilà mon dsleep commence enfin à fonctionner
J'ai fait un sacré moment car quand le NodeMCU se réveille d'un dsleep il est toujours vu comme venant d'un hard reset et pas moyen alors de détecter que l'on était en dsleep.
Maintenant je sauve un flag dans la rtc-mem et je peux tester ce flag au moment du reset et détecter si je sors du dsleep.
Reste encore à mieux faire la détection wifi pour savoir si on arrête le dsleep ou si on le relance
2020-07-22 11:49:42 +02:00

92 lines
2.4 KiB
Lua

-- 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()