diff --git a/DeepSleep/Pet_tracker_3/0_dsleep2.lua b/DeepSleep/Pet_tracker_3/0_dsleep2.lua index d27865e..28bee66 100644 --- a/DeepSleep/Pet_tracker_3/0_dsleep2.lua +++ b/DeepSleep/Pet_tracker_3/0_dsleep2.lua @@ -1,11 +1,8 @@ --- Teste le deep sleep ! --- s'endore pendant xx secondes après xx secondes - +-- Script de gestion du deep sleep ! -- ATTENTION: il faut connecter la pin 0 à la pin RESET avec une résistance de 1k ! -print("\n dsleep2.lua zf200815.1430 \n") +print("\n 0_dsleep2.lua zf200816.1934 \n") -zLED=4 f= "flash_led_xfois.lua" if file.exists(f) then dofile(f) end function ztime() @@ -13,40 +10,25 @@ function ztime() return (string.format("%04d/%02d/%02d %02d:%02d:%02d", tm["year"], tm["mon"], tm["day"], tm["hour"], tm["min"], tm["sec"])) end +-- on s'endort function dsleep_on() - print("timer dsleep on...") - -- ztmr_SLEEP = tmr.create() - -- ztmr_SLEEP:alarm(2*1000, tmr.ALARM_SINGLE, function () - print("Il est "..ztime().." et je vais dormir...") - tmr.delay(100*1000) - -- node.dsleep(4*1000*1000) - -- print(node.bootreason()) - -- rtcmem.write32(10, 43690) --flag pour détecter le réveil dsleep au moment du boot - -- print("le flag est à "..rtcmem.read32(10)) - wifi.setmode(wifi.NULLMODE,true) - rtctime.dsleep(0.1*1000*1000) - -- end) + print("Il est "..ztime().." et je vais dormir...") + tmr.delay(100*1000) + wifi.setmode(wifi.NULLMODE,true) + -- durée du sommeil ! + rtctime.dsleep(0.1*1000*1000) end - --- on se réveil, vérifie si on peut avoir du réseau autrement on va redormir +-- on se réveil function dsleep_wake_up() print("Coucou, je suis réveillé... et il est "..ztime()) if rtctime.get() < 1597494477 then print("oups je n'ai pas la bonne heure...") rtctime.set(file.getcontents("_ztime_")) print("voilà j'ai retrouvé une ancienne heure "..ztime()) - - end - if wifi.sta.getip() == nil then - print("Pas de réseau donc je scan le wifi...") - f = "0_wifi_scan.lua" if file.exists(f) then dofile(f) end - wifi.setmode(wifi.STATION) - scan_wifi() - else - print("Y'a du réseau donc je m'arrête...") end + wifi.setmode(wifi.STATION) + f = "0_wifi_scan.lua" if file.exists(f) then dofile(f) end end - dsleep_wake_up() diff --git a/DeepSleep/Pet_tracker_3/0_wifi_scan.lua b/DeepSleep/Pet_tracker_3/0_wifi_scan.lua index efdccc7..ddc51de 100644 --- a/DeepSleep/Pet_tracker_3/0_wifi_scan.lua +++ b/DeepSleep/Pet_tracker_3/0_wifi_scan.lua @@ -1,10 +1,8 @@ --- Scripts pour tester l'écoute des AP WIFI - -print("\n wifi_scan.lua zf200816.1417 \n") - -f= "secrets_project.lua" if file.exists(f) then dofile(f) end - +-- Scripts pour scanner les AP WIFI et les enregistrer dans le log -- https://www.epochconverter.com/ + +print("\n 0_wifi_scan.lua zf200816.1955 \n") + ztime2020 = 1577836800 -- Unix time pour 1.1.2020 0:0:0 GMT -- sauvegarde les données dans la flash du NodeMCU @@ -15,57 +13,66 @@ function save_flash(zstr_ap_wifi) file.open(logs_ap_wifi, "a+") file.writeline(zstr) file.close() end --- print AP list in new format -function scan_wifi() - print(ztime()) - function listap(t) - print("start display liste ap wifi...") - for k,v in pairs(t) do - local ssid, rssi, authmode, channel = string.match(v, "([^,]+),([^,]+),([^,]+),([^,]*)") +function listap(t) - if ssid == "3g-s7" then - print("ah je vois que je dois m'arrêter...") - zdsleep_stop =true - end - print("coucou: ."..ssid..".") - - -- print(ssid,rssi) - -- print(k.." : "..v) - -- local zstr = k..", "..v - local zstr = k..', "'..ssid..'", '..rssi - -- local zstr = v - save_flash(zstr) + print("start display liste ap wifi...") + for k,v in pairs(t) do + local ssid, rssi, authmode, channel = string.match(v, "([^,]+),([^,]+),([^,]+),([^,]*)") + if ssid == cli_ssid2 then + print("ah je vois que je dois m'arrêter...") + zdsleep_stop =true + elseif ssid == cli_ssid1 then + print("ah je vois que je dois chercher l'heure...") + zdsleep_get_time = true end - print("end display...") + local zstr = k..', "'..ssid..'", '..rssi + save_flash(zstr) + end + print("...end display") + + if zdsleep_stop then + node.restart() + elseif zdsleep_get_time then + wifi.setmode(wifi.STATION,true) + wifi.sta.config{ssid=cli_ssid1, pwd=cli_pwd1} wifi.sta.connect() + gpio.write(zLED, gpio.HIGH) gpio.mode(zLED, gpio.OUTPUT) i=1 + tmr_wifi_init1=tmr.create() + tmr_wifi_init1:alarm(1*1000, tmr.ALARM_AUTO , function() + gpio.write(zLED, gpio.LOW) tmr.delay(10000) gpio.write(zLED, gpio.HIGH) + if wifi.sta.getip() == nil then + print(i,"Connecting to AP...") + i=i+1 + if i > 10 then + print("pas de wifi :-(") + print("pas grave, on continue le dsleep") + -- sauve l'heure sur la flash pour si jamais il y a un boot power on sans Internet + file.putcontents("_ztime_", rtctime.get()) + dsleep_on() + end + else + tmr_wifi_init1:unregister() + rtctime.set(0) sntp.sync(nil, nil, nil, 1) + ztmr_set_time = tmr.create() + ztmr_set_time:alarm(1*1000, tmr.ALARM_AUTO , function() + zrtc_time = rtctime.get() + print("je cherche l'heure: "..zrtc_time) + if zrtc_time > ztime2020 then + ztmr_set_time:unregister() + print("j'ai trouvé l'heure: "..zrtc_time) + file.putcontents("_ztime_", zrtc_time) + -- print(file.getcontents("_ztime_")) + dsleep_on() + end + end) + end + end) + else -- sauve l'heure sur la flash pour si jamais il y a un boot power on sans Internet file.putcontents("_ztime_", rtctime.get()) - - if zdsleep_stop then - node.restart() - else - dsleep_on() - end - end - print("wifi scan...") - wifi.sta.getap(1, listap) -end - ---[[ -scan_wifi() -]] - - - ---[[ --- Print AP list that is easier to read -function listap(t) -- (SSID : Authmode, RSSI, BSSID, Channel) - print("\n\t\t\tSSID\t\t\t\t\tBSSID\t\t\t RSSI\t\tAUTHMODE\t\tCHANNEL") - for bssid,v in pairs(t) do - local ssid, rssi, authmode, channel = string.match(v, "([^,]+),([^,]+),([^,]+),([^,]*)") - print(string.format("%32s",ssid).."\t"..bssid.."\t "..rssi.."\t\t"..authmode.."\t\t\t"..channel) + dsleep_on() end end + +print("wifi scan...") wifi.sta.getap(1, listap) - -]]