From ec1e9e05755e1f3de906b601bcc670ef6f7d1bf0 Mon Sep 17 00:00:00 2001 From: Christian Zufferey Date: Sun, 10 Mar 2019 16:09:24 +0100 Subject: [PATCH] =?UTF-8?q?Compl=C3=A8tement=20refactoris=C3=A9=20mes=20mo?= =?UTF-8?q?dules=20de=20bases=20afin=20de=20lib=C3=A9rer=20la=20RAM=20apr?= =?UTF-8?q?=C3=A8s=20utilisation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Meteo/a_test1_connect.lua | 98 +++++++++++++++++++------------ Meteo/boot.lua | 7 ++- Meteo/flash_led_xfois.lua | 50 ++++++++-------- Meteo/goodies/a_tst_variables.lua | 6 ++ Meteo/goodies/wifi_off.lua | 9 +++ Meteo/initz.lua | 7 ++- Meteo/wifi_ap_start.lua | 25 ++++---- Meteo/wifi_cli_conf.lua | 27 +++++---- Meteo/wifi_cli_start.lua | 28 +++++---- Tests/a_tst_variables.lua | 6 ++ 10 files changed, 169 insertions(+), 94 deletions(-) create mode 100644 Meteo/goodies/a_tst_variables.lua create mode 100644 Meteo/goodies/wifi_off.lua create mode 100644 Tests/a_tst_variables.lua diff --git a/Meteo/a_test1_connect.lua b/Meteo/a_test1_connect.lua index 716b1cb..0ff3d39 100644 --- a/Meteo/a_test1_connect.lua +++ b/Meteo/a_test1_connect.lua @@ -1,46 +1,72 @@ -- Juste pour tester la connection avec un socket -print("\n a_test1_connect.lua zf190308.1733 \n") +print("\n a_test1_connect.lua zf190310.1607 \n") -function zgetstats() - counter = 0 +function zgetstream() + zgetstream_tmr=tmr.create() + tmr.alarm(zgetstream_tmr, 1000, tmr.ALARM_AUTO , function() + if wifi.sta.getip() == nil then + print("Connecting to AP...") + else + tmr.unregister(zgetstream_tmr) + zgetstream_tmr = nil - local srv = net.createConnection(net.TCP, 0) - - srv:on("receive", function(sck, payload) - print("[stats] received data, " .. string.len(payload)) - print(payload) - counter = counter + 1 + zcount = 0 zsum = 0 + zhost = "192.168.0.34" zurl = "/json/meteo/meteo.lausanne.190302.1231.json" + + srv = net.createConnection(net.TCP, 0) + + srv:on("connection", function(sck, c) + print("on est connecté...") + sck:send("GET "..zurl.." HTTP/1.1\r\nHost: "..zhost.."\r\nConnection: close\r\nAccept: */*\r\n\r\n") + end) + + srv:on("disconnection", function(a,b) + print("a: ",a,"b: ",b) + print("on est déconnecté...",node.heap()) + end) + + srv:on("reconnection", function(a,b) + print("a: ",a,"b: ",b) + print("on est reconnecté...",node.heap()) + end) + + srv:on("receive", function(sck, payload) + zcount = zcount + 1 zlen = string.len(payload) zsum = zsum + zlen + print("counter: ",zcount,"payload len: ",zlen,"sum: ",zsum) + -- print(payload) + end) + + print("on connecte...",node.heap()) + srv:connect(80, zhost) + end end) - - srv:on("connection", function(sck, c) - print("on est connecté...") - sck:send("GET /json/meteo/meteo.lausanne.190302.1231.json HTTP/1.1\r\nHost: 192.168.0.34\r\nConnection: close\r\nAccept: */*\r\n\r\n") - end) - - - - local function zdisconnection(a,b) - print("a: ",a,"b: ",b) - print("disconnect",node.heap()) - print("pluie_am: ",zpluie_am,"pluie_pm: ",zpluie_pm) - end - - local function zreconnection(a,b) - print("a: ",a,"b: ",b) - print("reconnect",node.heap()) - end - - srv:on("disconnection", zdisconnection) - srv:on("reconnection", zreconnection) - - - print("on connecte...") --- srv:connect(8080, "192.168.0.153") - srv:connect(80, "192.168.0.34") end --[[ -zgetstats() +-- On affiche combien on a de RAM +print(node.heap()) + +-- On charge le module et regarde combien cela a pris de RAM +zh0=node.heap() print("zh0: ",zh0) +f= "a_test1_connect.lua" if file.exists(f) then dofile(f) end +zh1=node.heap() print("zh0-zh1: ",zh0-zh1) + +-- On exécute le module +zh0=node.heap() print("zh0: ",zh0) +zgetstream() + +-- On regarde combien cela a pris de RAM pour exécuter le module +zh1=node.heap() print("zh0-zh1: ",zh0-zh1) + +-- On libère le module et on regarde combien on a libéré de RAM +zh0=node.heap() print("zh0: ",zh0) +srv = nil +zgetstream = nil +zh1=node.heap() print("zh0-zh1: ",zh0-zh1) + +-- On affiche combien on a de RAM +print(node.heap()) + ]] diff --git a/Meteo/boot.lua b/Meteo/boot.lua index 92777ae..52abbd0 100644 --- a/Meteo/boot.lua +++ b/Meteo/boot.lua @@ -1,9 +1,10 @@ -- Scripts à charger après le boot pour démarrer son appli -print("\n boot.lua zf190303.1437 \n") +print("\n boot.lua zf190310.1537 \n") function heartbeat() f= "flash_led_xfois.lua" if file.exists(f) then dofile(f) end + flash_led_xfois() boottimer1=tmr.create() tmr.alarm(boottimer1, 1*1000, tmr.ALARM_AUTO, function() xfois =2 @@ -21,8 +22,8 @@ f= "wifi_cli_start.lua" if file.exists(f) then dofile(f) end --f= "set_time.lua" if file.exists(f) then dofile(f) end --f= "dsleep.lua" if file.exists(f) then dofile(f) end - - +f=nil +heartbeat=nil --heartbeat() diff --git a/Meteo/flash_led_xfois.lua b/Meteo/flash_led_xfois.lua index c50e5ab..ffea9b0 100644 --- a/Meteo/flash_led_xfois.lua +++ b/Meteo/flash_led_xfois.lua @@ -1,33 +1,37 @@ -- programme pour faire clignoter x fois une LED avec un rapport on/off -print("\n flash_led_xfois.lua zf181208.1521 \n") ---zLED=0 --NodeMCU -zLED=4 --EPS-M3 -zTm_On_LED = 50 --> en ms -zTm_Off_LED = 100 --> en ms -nbfois = 0 -gpio.write(zLED, gpio.HIGH) -gpio.mode(zLED, gpio.OUTPUT) -ztmr_Flash_LED = tmr.create() - -function blink_LED () - if nbfois >= xfois then --- print(nbfois) - nbfois = 0 - else - if gpio.read(zLED)==gpio.HIGH then - gpio.write(zLED, gpio.LOW) - tmr.alarm(ztmr_Flash_LED, zTm_Off_LED, tmr.ALARM_SINGLE, blink_LED) +function flash_led_xfois() + print("\n flash_led_xfois.lua zf190310.1533 \n") + + --zLED=0 --NodeMCU + zLED=4 --EPS-M3 + zTm_On_LED = 50 --> en ms + zTm_Off_LED = 100 --> en ms + nbfois = 0 + gpio.write(zLED, gpio.HIGH) + gpio.mode(zLED, gpio.OUTPUT) + ztmr_Flash_LED = tmr.create() + + function blink_LED () + if nbfois >= xfois then + -- print(nbfois) + nbfois = 0 else - gpio.write(zLED, gpio.HIGH) - nbfois = nbfois+1 - tmr.alarm(ztmr_Flash_LED, zTm_On_LED, tmr.ALARM_SINGLE, blink_LED) + if gpio.read(zLED)==gpio.HIGH then + gpio.write(zLED, gpio.LOW) + tmr.alarm(ztmr_Flash_LED, zTm_Off_LED, tmr.ALARM_SINGLE, blink_LED) + else + gpio.write(zLED, gpio.HIGH) + nbfois = nbfois+1 + tmr.alarm(ztmr_Flash_LED, zTm_On_LED, tmr.ALARM_SINGLE, blink_LED) + end end end + +-- xfois =2 +-- blink_LED () end -xfois =2 -blink_LED () diff --git a/Meteo/goodies/a_tst_variables.lua b/Meteo/goodies/a_tst_variables.lua new file mode 100644 index 0000000..bbae700 --- /dev/null +++ b/Meteo/goodies/a_tst_variables.lua @@ -0,0 +1,6 @@ +-- Scripts pour afficher toutes les variables et fonctions en cours dans le système + +print("\n a_tst_variable.lua zf190310.1525 \n") + +for n in pairs (_G) do print(n) end + diff --git a/Meteo/goodies/wifi_off.lua b/Meteo/goodies/wifi_off.lua new file mode 100644 index 0000000..c1c7235 --- /dev/null +++ b/Meteo/goodies/wifi_off.lua @@ -0,0 +1,9 @@ +-- Déconnecte le WIFI +print("\n wifi_off.lua zf180822.0959 \n") + +wifi.setmode(wifi.NULLMODE) + +--[[ +print(wifi.NULLMODE, wifi.STATION, wifi.SOFTAP, wifi.STATIONAP) +print(wifi.getmode()) +]] diff --git a/Meteo/initz.lua b/Meteo/initz.lua index 49a45bb..771f253 100644 --- a/Meteo/initz.lua +++ b/Meteo/initz.lua @@ -3,7 +3,7 @@ -- le script repair.lua pendant xx secondes avant de continuer --Source: https://nodemcu.readthedocs.io/en/master/en/modules/node/#nodebootreason -print("\n init.lua zf190217.1231 \n") +print("\n init.lua zf190310.1549 \n") zswitch=3 --switch flash gpio.mode(zswitch, gpio.INT, gpio.PULLUP) @@ -32,6 +32,11 @@ if reset_reason == 0 then second_chance() elseif reset_reason == 4 then print("node.restart") + gpio.trig(zswitch) + hvbouton=nil + second_chance=nil + zswitch=nil + reset_reason=nil f= "boot.lua" if file.exists(f) then dofile(f) end elseif reset_reason == 5 then print("dsleep wake up") diff --git a/Meteo/wifi_ap_start.lua b/Meteo/wifi_ap_start.lua index 9650d74..f7ade0d 100644 --- a/Meteo/wifi_ap_start.lua +++ b/Meteo/wifi_ap_start.lua @@ -1,14 +1,19 @@ -- Démarre le WIFI en mode AP -print("\n wifi_ap_start.lua zf190304.2233 \n") +function wifi_ap_start() + print("\n wifi_ap_start.lua zf190310.1511 \n") -local zmodewifi=wifi.getmode() -if zmodewifi == wifi.NULLMODE then - print("WIFI mode AP only") - wifi.setmode(wifi.SOFTAP) -elseif zmodewifi == wifi.STATION then - print("WIFI mode AP+CLI") - wifi.setmode(wifi.STATIONAP) + local zmodewifi=wifi.getmode() + if zmodewifi == wifi.NULLMODE then + print("WIFI mode AP only") + wifi.setmode(wifi.SOFTAP) + elseif zmodewifi == wifi.STATION then + print("WIFI mode AP+CLI") + wifi.setmode(wifi.STATIONAP) + end + wifi.ap.config({ ssid = "NodeMCU "..wifi.ap.getmac(), pwd = "12345678" }) + --f= "wifi_info.lua" if file.exists(f) then dofile(f) end end -wifi.ap.config({ ssid = "NodeMCU "..wifi.ap.getmac(), pwd = "12345678" }) ---f= "wifi_info.lua" if file.exists(f) then dofile(f) end + +wifi_ap_start() +wifi_ap_start=nil diff --git a/Meteo/wifi_cli_conf.lua b/Meteo/wifi_cli_conf.lua index 5f1983f..99b5767 100644 --- a/Meteo/wifi_cli_conf.lua +++ b/Meteo/wifi_cli_conf.lua @@ -1,13 +1,20 @@ -- Petit script pour configurer le client WIFI du NodeMCU -print("\n wifi_cli_conf.lua zf190217.1245 \n") +function wifi_cli_conf() + print("\n wifi_cli_conf.lua zf190310.1527 \n") + + --credentials par défaut + --cli_ssid="3g-s7" + cli_ssid="3G-zf" + cli_pwd="12234567" + + --ses propre credentials + f= "credentials.lua" if file.exists(f) then dofile(f) end + + wifi.sta.config{ssid=cli_ssid, pwd=cli_pwd, save=true} +end ---credentials par défaut ---cli_ssid="3g-s7" -cli_ssid="3G-zf" -cli_pwd="12234567" - ---ses propre credentials -f= "credentials.lua" if file.exists(f) then dofile(f) end - -wifi.sta.config{ssid=cli_ssid, pwd=cli_pwd, save=true} +wifi_cli_conf() +wifi_cli_conf=nil +cli_ssid=nil +cli_pwd=nil diff --git a/Meteo/wifi_cli_start.lua b/Meteo/wifi_cli_start.lua index f1091ac..045957e 100644 --- a/Meteo/wifi_cli_start.lua +++ b/Meteo/wifi_cli_start.lua @@ -1,14 +1,20 @@ -- Petit script pour connecter le NodeMCU sur un AP Wifi avec l'accompte sauvé en EEPROM -print("\n wifi_cli_start.lua zf181119.2359 \n") -local zmodewifi=wifi.getmode() -if zmodewifi == wifi.NULLMODE then - print("WIFI mode CLI only") - wifi.setmode(wifi.STATION) -elseif zmodewifi == wifi.SOFTAP then - print("WIFI mode AP+CLI") - wifi.setmode(wifi.STATIONAP) +function wifi_cli_start() + print("\n wifi_cli_start.lua zf190310.1519 \n") + + local zmodewifi=wifi.getmode() + if zmodewifi == wifi.NULLMODE then + print("WIFI mode CLI only") + wifi.setmode(wifi.STATION) + elseif zmodewifi == wifi.SOFTAP then + print("WIFI mode AP+CLI") + wifi.setmode(wifi.STATIONAP) + end + wifi.sta.autoconnect(1) + wifi.sta.connect() + --f= "wifi_get_ip.lua" if file.exists(f) then dofile(f) end end -wifi.sta.autoconnect(1) -wifi.sta.connect() -f= "wifi_get_ip.lua" if file.exists(f) then dofile(f) end + +wifi_cli_start() +wifi_cli_start=nil diff --git a/Tests/a_tst_variables.lua b/Tests/a_tst_variables.lua new file mode 100644 index 0000000..bbae700 --- /dev/null +++ b/Tests/a_tst_variables.lua @@ -0,0 +1,6 @@ +-- Scripts pour afficher toutes les variables et fonctions en cours dans le système + +print("\n a_tst_variable.lua zf190310.1525 \n") + +for n in pairs (_G) do print(n) end +