From 4e537d6d3e97946f5b418cdcd18191b58660d6f8 Mon Sep 17 00:00:00 2001 From: Christian Zufferey Date: Sun, 26 Aug 2018 18:12:59 +0200 Subject: [PATCH] =?UTF-8?q?-=20mieux=20rang=C3=A9=20les=20dossiers=20en=20?= =?UTF-8?q?particulier=20pour=20le=20minid1=20OLED=20-=20termin=C3=A9=20en?= =?UTF-8?q?fin=20le=20script=20disp=5Foled.lua?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bootstrap/init_minizf1.lua | 7 +++ .../initz - copie 2.lua | 0 .../initz - copie.lua | 0 initz.lua => Bootstrap/initz.lua | 0 Minid1 OLED/disp_oled.lua | 62 +++++++++++++++++++ .../hauteur_eau/station_display/cat.lua | 17 +++++ .../hauteur_eau/station_display/dir.lua | 2 +- .../station_display/telnet_srv.lua | 5 +- .../station_display/wifi_ap_start.lua | 13 ++++ .../station_display/wifi_ap_stop.lua | 10 +++ .../station_display/wifi_cli_conf.lua | 4 ++ .../station_display/wifi_cli_start.lua | 14 +++++ .../station_display/wifi_cli_stop.lua | 10 +++ .../station_display/wifi_cnf_start.lua | 6 ++ .../station_display/wifi_cnf_stop.lua | 6 ++ .../station_display/wifi_get_ip.lua | 12 ++++ .../hauteur_eau/station_display/wifi_info.lua | 30 +++++++++ .../hauteur_eau/station_display/wifi_off.lua | 9 +++ .../station_display/wifi_start.lua | 5 ++ .../hauteur_eau/station_mesure/cat.lua | 17 +++++ .../hauteur_eau/station_mesure/dir.lua | 15 +++++ .../hauteur_eau/station_mesure/disp_oled.lua | 39 ++++++++++++ .../hauteur_eau/station_mesure/init.lua | 18 ++++++ .../hauteur_eau/station_mesure/start_demo.lua | 12 ++++ .../hauteur_eau/station_mesure/telnet_srv.lua | 44 +++++++++++++ .../station_mesure/wifi_ap_start.lua | 13 ++++ .../station_mesure/wifi_ap_stop.lua | 10 +++ .../station_mesure/wifi_cli_conf.lua | 4 ++ .../station_mesure/wifi_cli_start.lua | 14 +++++ .../station_mesure/wifi_cli_stop.lua | 10 +++ .../station_mesure/wifi_cnf_start.lua | 6 ++ .../station_mesure/wifi_cnf_stop.lua | 6 ++ .../station_mesure/wifi_get_ip.lua | 12 ++++ .../hauteur_eau/station_mesure/wifi_info.lua | 30 +++++++++ .../hauteur_eau/station_mesure/wifi_off.lua | 9 +++ .../hauteur_eau/station_mesure/wifi_start.lua | 5 ++ OS_utils/cat.lua | 17 +++++ OS_utils/dir.lua | 15 +++++ OS_utils/telnet_srv.lua | 44 +++++++++++++ cat.lua | 20 ------ init_minizf.lua | 2 - start_demo1.lua | 4 ++ 42 files changed, 552 insertions(+), 26 deletions(-) create mode 100644 Bootstrap/init_minizf1.lua rename initz - copie 2.lua => Bootstrap/initz - copie 2.lua (100%) rename initz - copie.lua => Bootstrap/initz - copie.lua (100%) rename initz.lua => Bootstrap/initz.lua (100%) create mode 100644 Minid1 OLED/disp_oled.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/cat.lua rename dir.lua => Minid1 OLED/hauteur_eau/station_display/dir.lua (90%) rename telnet_srv.lua => Minid1 OLED/hauteur_eau/station_display/telnet_srv.lua (91%) create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_ap_start.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_ap_stop.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_cli_conf.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_cli_start.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_cli_stop.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_cnf_start.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_cnf_stop.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_get_ip.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_info.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_off.lua create mode 100644 Minid1 OLED/hauteur_eau/station_display/wifi_start.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/cat.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/dir.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/disp_oled.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/init.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/start_demo.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/telnet_srv.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_ap_start.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_ap_stop.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_conf.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_start.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_stop.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_cnf_start.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_cnf_stop.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_get_ip.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_info.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_off.lua create mode 100644 Minid1 OLED/hauteur_eau/station_mesure/wifi_start.lua create mode 100644 OS_utils/cat.lua create mode 100644 OS_utils/dir.lua create mode 100644 OS_utils/telnet_srv.lua delete mode 100644 cat.lua delete mode 100644 init_minizf.lua create mode 100644 start_demo1.lua diff --git a/Bootstrap/init_minizf1.lua b/Bootstrap/init_minizf1.lua new file mode 100644 index 0000000..a279af3 --- /dev/null +++ b/Bootstrap/init_minizf1.lua @@ -0,0 +1,7 @@ +-- super mini bootstrap +print("\n init_minizf1.lua zf180824.2019 \n") + +tmr.alarm(0, 5000, tmr.ALARM_SINGLE, function() +dofile("wifi_ap_start.lua") +dofile("telnet_srv.lua") +end) diff --git a/initz - copie 2.lua b/Bootstrap/initz - copie 2.lua similarity index 100% rename from initz - copie 2.lua rename to Bootstrap/initz - copie 2.lua diff --git a/initz - copie.lua b/Bootstrap/initz - copie.lua similarity index 100% rename from initz - copie.lua rename to Bootstrap/initz - copie.lua diff --git a/initz.lua b/Bootstrap/initz.lua similarity index 100% rename from initz.lua rename to Bootstrap/initz.lua diff --git a/Minid1 OLED/disp_oled.lua b/Minid1 OLED/disp_oled.lua new file mode 100644 index 0000000..6827b10 --- /dev/null +++ b/Minid1 OLED/disp_oled.lua @@ -0,0 +1,62 @@ +-- Affiche plusieurs lignes sur le mini display OLED du MiniD1 +-- Source: https://wiki.wemos.cc/products:d1_mini_shields:oled_shield +-- font_10x20,font_6x10,font_7x13,font_8x13,font_9x15,font_chikita +print("\n disp_oled.lua zf180824.2351 \n") + +-- config pour le mini display OLED du Wemos Mini_D1 +pin_scl = 1 +pin_sda = 2 +disp_sla = 0x3c + + +function init_OLED(sda, scl) --Set up the u8glib lib + i2c.setup(0, sda, scl, i2c.SLOW) + disp = u8g.ssd1306_64x48_i2c(disp_sla) +-- https://github.com/olikraus/u8glib/wiki/fontsize + disp:setFont(u8g.font_6x10) + disp:setFontRefHeightExtendedText() + disp:setDefaultForegroundColor() + disp:setFontPosTop() +end + +function draw() +-- font_10x20,font_6x10,font_7x13,font_8x13,font_9x15,font_chikita + disp:setFont(u8g.font_6x10) + disp:drawStr(0,0,oled_line1) + disp:drawStr(0,10,oled_line2) + disp:drawStr(0,20,oled_line3) + disp:drawStr(0,30,oled_line4) --..string.char(233)) -- affiche un é ! + disp:drawStr(0,40,oled_line5) + +-- disp:setFont(u8g.font_9x15) +-- disp:drawStr(0,0,"1'200W") + + + +-- disp:drawStr(0,11,"et zuzu !") +end + +init_OLED(pin_sda, pin_scl) --Run setting up + +disp:firstPage() +repeat + draw() +until disp:nextPage() == false + + + + + + + + + +--print( string.gsub("hello+zuzu+%26+une+belle+%E9cole%5Cun+b%E2teau","+"," ") + +--[[ source OLED: +https://www.google.ch/search?q=nodemcu+lua+oled+display&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjG8ba8ra3cAhVDCpoKHedlDS4Q_AUICigB&biw=1536&bih=828 +https://www.hackster.io/kayakpete/esp8266-oled-display-52ae50 +http://blog.rl.cx/2017/01/08/bien-d%C3%A9buter-avec-nodemcu/ +https://github.com/FredThx/nodemcu_iot/blob/master/i2c_display.lua +https://www.instructables.com/id/NODEMCU-LUA-ESP8266-With-I2C-LCD-128-X-64-OLED-Dis/ +]] diff --git a/Minid1 OLED/hauteur_eau/station_display/cat.lua b/Minid1 OLED/hauteur_eau/station_display/cat.lua new file mode 100644 index 0000000..7c309b9 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/cat.lua @@ -0,0 +1,17 @@ +-- fonction cat() pour afficher le contenu d'un fichier dans la flash +print("\n cat.lua zf180826.1109 \n") + +function cat(zfile) + print("\n"..zfile.."\n-------------------------------") + + zfilei = file.open(zfile, "r") + i=1 + zline=file.readline() + repeat + print(i..": "..string.sub(zline,1,string.len(zline)-1)) + i=i+1 zline=file.readline() + until zline== nil + file.close(zfilei) + + print("-------------------------------") +end diff --git a/dir.lua b/Minid1 OLED/hauteur_eau/station_display/dir.lua similarity index 90% rename from dir.lua rename to Minid1 OLED/hauteur_eau/station_display/dir.lua index 9c1494e..8bf9414 100644 --- a/dir.lua +++ b/Minid1 OLED/hauteur_eau/station_display/dir.lua @@ -1,5 +1,5 @@ -- fonction dir() pour afficher les fichiers dans la flash --- zf180717.1542 +print("\n dir.lua zf180826.1019 \n") function dir() print("\n-------------------------------") diff --git a/telnet_srv.lua b/Minid1 OLED/hauteur_eau/station_display/telnet_srv.lua similarity index 91% rename from telnet_srv.lua rename to Minid1 OLED/hauteur_eau/station_display/telnet_srv.lua index 7f194a2..0e39784 100644 --- a/telnet_srv.lua +++ b/Minid1 OLED/hauteur_eau/station_display/telnet_srv.lua @@ -1,5 +1,5 @@ --- a simple telnet server -print("\ntelnet_srv.lua zf180724.2241 \n") +-- Serveur telnet pour connexion en remote WIFI +print("\n telnet_srv.lua zf180826.1020 \n") -- restart server if needed if telnet_srv ~= nil then @@ -41,5 +41,4 @@ telnet_srv:listen(23, function(socket) end) print("Telnet server running...\nUsage: telnet -r ip\n") ---dofile("get_ip.lua") diff --git a/Minid1 OLED/hauteur_eau/station_display/wifi_ap_start.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_ap_start.lua new file mode 100644 index 0000000..ce3c29b --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/wifi_ap_start.lua @@ -0,0 +1,13 @@ +-- Démarre le WIFI en mode AP +print("\n wifi_ap_start.lua zf180824.2000 \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) +end +wifi.ap.config({ ssid = "NodeMCU "..wifi.ap.getmac(), pwd = "12345678" }) +dofile("wifi_info.lua") diff --git a/Minid1 OLED/hauteur_eau/station_display/wifi_ap_stop.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_ap_stop.lua new file mode 100644 index 0000000..2738627 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/wifi_ap_stop.lua @@ -0,0 +1,10 @@ +-- Démarre le WIFI en mode AP +print("\n wifi_ap_stop.lua zf180824.2000 \n") + +local zmodewifi=wifi.getmode() +if zmodewifi == wifi.SOFTAP then + wifi.setmode(wifi.NULLMODE) +elseif zmodewifi == wifi.STATIONAP then + wifi.setmode(wifi.STATION) +end +print("WIFI AP arrêté") diff --git a/Minid1 OLED/hauteur_eau/station_display/wifi_cli_conf.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_cli_conf.lua new file mode 100644 index 0000000..d3cd11e --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/wifi_cli_conf.lua @@ -0,0 +1,4 @@ +-- Petit script pour configurer le client WIFI du NodeMCU +print("\n wifi_cli_conf.lua zf180824.2000 \n") + +wifi.sta.config{ssid="Hugo", pwd="tototutu", save=true} diff --git a/Minid1 OLED/hauteur_eau/station_display/wifi_cli_start.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_cli_start.lua new file mode 100644 index 0000000..aac8bea --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/wifi_cli_start.lua @@ -0,0 +1,14 @@ +-- Petit script pour connecter le NodeMCU sur un AP Wifi avec l'accompte sauvé en EEPROM +print("\n wifi_cli_start.lua zf180824.2000 \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() +dofile("wifi_get_ip.lua") diff --git a/Minid1 OLED/hauteur_eau/station_display/wifi_cli_stop.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_cli_stop.lua new file mode 100644 index 0000000..9429aa5 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/wifi_cli_stop.lua @@ -0,0 +1,10 @@ +-- Démarre le WIFI en mode AP +print("\n wifi_cli_stop.lua zf180824.2000 \n") + +local zmodewifi=wifi.getmode() +if zmodewifi == wifi.STATION then + wifi.setmode(wifi.NULLMODE) +elseif zmodewifi == wifi.STATIONAP then + wifi.setmode(wifi.SOFTAP) +end +print("WIFI CLI arrêté") diff --git a/Minid1 OLED/hauteur_eau/station_display/wifi_cnf_start.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_cnf_start.lua new file mode 100644 index 0000000..c4294f8 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/wifi_cnf_start.lua @@ -0,0 +1,6 @@ +-- Petit script pour démarrer le mode configuration WIFI du NodeMCU +print("\n wifi_cnf_start.lua zf180824.2000 \n") + +print("\nwifi config http://192.168.4.1\n") +dofile("wifi_get_ip.lua") +enduser_setup.start() diff --git a/Minid1 OLED/hauteur_eau/station_display/wifi_cnf_stop.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_cnf_stop.lua new file mode 100644 index 0000000..998c5e0 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/wifi_cnf_stop.lua @@ -0,0 +1,6 @@ +-- Petit script pour arrêter le mode configuration WIFI du NodeMCU +print("\n wifi_cnf_stop.lua zf180824.2000 \n") + +enduser_setup.stop() +wifi.sta.autoconnect(1) +wifi.sta.connect() diff --git a/Minid1 OLED/hauteur_eau/station_display/wifi_get_ip.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_get_ip.lua new file mode 100644 index 0000000..83b6369 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/wifi_get_ip.lua @@ -0,0 +1,12 @@ +-- Petit script pour obtenir l'adresse IP du NodeMCU connecté sur un AP Wifi +print("\n wifi_get_ip.lua zf180824.2000 \n") + +wifitimer1=tmr.create() +tmr.alarm(wifitimer1, 1000, tmr.ALARM_AUTO , function() + if wifi.sta.getip() == nil then + print("Connecting to AP...") + else + tmr.stop(wifitimer1) + dofile("wifi_info.lua") + end +end) diff --git a/Minid1 OLED/hauteur_eau/station_display/wifi_info.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_info.lua new file mode 100644 index 0000000..d81fc1b --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/wifi_info.lua @@ -0,0 +1,30 @@ +-- Petit script pour afficher les infos actuel du WIFI +print("\n wifi_info.lua zf180824.2000 \n") + +local zmodewifi=wifi.getmode() + +--wifi.NULLMODE, wifi.STATION, wifi.SOFTAP, wifi.STATIONAP + +if zmodewifi == wifi.NULLMODE then + print("WIFI OFF") +elseif zmodewifi == wifi.STATION then + print("WIFI mode CLI") + print("Connected IP:\n",wifi.sta.getip()) + do + local sta_config=wifi.sta.getconfig(true) + print(string.format("Current client config:\n\tssid:\"%s\"\tpassword:\"%s\"\n\tbssid:\"%s\"\tbssid_set:%s", sta_config.ssid, sta_config.pwd, sta_config.bssid, (sta_config.bssid_set and "true" or "false"))) + end +elseif zmodewifi == wifi.SOFTAP then + print("WIFI mode AP") + print("AP MAC:\n\t"..wifi.ap.getmac()) + print("AP IP:\n\t"..wifi.ap.getip()) +elseif zmodewifi == wifi.STATIONAP then + print("WIFI mode CLI+AP") + print("Connected IP:\n",wifi.sta.getip()) + do + local sta_config=wifi.sta.getconfig(true) + print(string.format("Current client config:\n\tssid:\"%s\"\tpassword:\"%s\"\n\tbssid:\"%s\"\tbssid_set:%s", sta_config.ssid, sta_config.pwd, sta_config.bssid, (sta_config.bssid_set and "true" or "false"))) + end + print("AP MAC: "..wifi.ap.getmac()) + print("AP IP: "..wifi.ap.getip()) +end diff --git a/Minid1 OLED/hauteur_eau/station_display/wifi_off.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_off.lua new file mode 100644 index 0000000..c1c7235 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/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/Minid1 OLED/hauteur_eau/station_display/wifi_start.lua b/Minid1 OLED/hauteur_eau/station_display/wifi_start.lua new file mode 100644 index 0000000..7291785 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_display/wifi_start.lua @@ -0,0 +1,5 @@ +-- Exemple de petit script pour démarrer le WIFI +print("\n wifi_start.lua zf180824.2000 \n") + +dofile("wifi_cli_start.lua") +dofile("wifi_ap_start.lua") diff --git a/Minid1 OLED/hauteur_eau/station_mesure/cat.lua b/Minid1 OLED/hauteur_eau/station_mesure/cat.lua new file mode 100644 index 0000000..7c309b9 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/cat.lua @@ -0,0 +1,17 @@ +-- fonction cat() pour afficher le contenu d'un fichier dans la flash +print("\n cat.lua zf180826.1109 \n") + +function cat(zfile) + print("\n"..zfile.."\n-------------------------------") + + zfilei = file.open(zfile, "r") + i=1 + zline=file.readline() + repeat + print(i..": "..string.sub(zline,1,string.len(zline)-1)) + i=i+1 zline=file.readline() + until zline== nil + file.close(zfilei) + + print("-------------------------------") +end diff --git a/Minid1 OLED/hauteur_eau/station_mesure/dir.lua b/Minid1 OLED/hauteur_eau/station_mesure/dir.lua new file mode 100644 index 0000000..8bf9414 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/dir.lua @@ -0,0 +1,15 @@ +-- fonction dir() pour afficher les fichiers dans la flash +print("\n dir.lua zf180826.1019 \n") + +function dir() + print("\n-------------------------------") + l=file.list() i=0 + for k,v in pairs(l) do + i=i+v + print(k..string.rep(" ",19-string.len(k)).." : "..v.." bytes") + end + print("-------------------------------") + print('\nUsed: '..i..' bytes\nusage: dofile("file.lua")\n') +end + +dir() diff --git a/Minid1 OLED/hauteur_eau/station_mesure/disp_oled.lua b/Minid1 OLED/hauteur_eau/station_mesure/disp_oled.lua new file mode 100644 index 0000000..6483304 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/disp_oled.lua @@ -0,0 +1,39 @@ +-- Affiche plusieurs lignes sur le mini display OLED du MiniD1 +-- Source: https://wiki.wemos.cc/products:d1_mini_shields:oled_shield +-- font_10x20,font_6x10,font_7x13,font_8x13,font_9x15,font_chikita +print("\n disp_oled.lua zf180826.1807 \n") + +-- config pour le mini display OLED du Wemos Mini_D1 +pin_scl = 1 +pin_sda = 2 +disp_sla = 0x3c + +function init_OLED(sda, scl) + i2c.setup(0, sda, scl, i2c.SLOW) + disp = u8g.ssd1306_64x48_i2c(disp_sla) + disp:setFontRefHeightExtendedText() + disp:setDefaultForegroundColor() +end + +-- font_10x20,font_6x10,font_7x13,font_8x13,font_9x15,font_chikita +--..string.char(233)..":") -- pour afficher un é ! +function draw() + disp:setFont(u8g.font_10x20) + disp:setFontPosTop() + disp:drawStr(0,00,oled_line1) + disp:setFont(u8g.font_chikita) + disp:setFontPosTop() + disp:drawStr(0,17,oled_line2) + disp:drawStr(0,24,oled_line3) + disp:drawStr(0,31,oled_line4) + disp:drawStr(0,38,oled_line5) +end + +function disp_oled() + disp:firstPage() + repeat + draw() + until disp:nextPage() == false +end + +init_OLED(pin_sda, pin_scl) diff --git a/Minid1 OLED/hauteur_eau/station_mesure/init.lua b/Minid1 OLED/hauteur_eau/station_mesure/init.lua new file mode 100644 index 0000000..0ef4437 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/init.lua @@ -0,0 +1,18 @@ +-- super mini bootstrap +print("\n init_minizf1.lua zf180826.1810 \n") + +tmr.alarm(0, 5000, tmr.ALARM_SINGLE, function() + +dofile("disp_oled.lua") +oled_line1="RESET" +oled_line2="" +oled_line3="" +oled_line4="" +oled_line5="" +disp_oled() + +--dofile("wifi_ap_start.lua") +--dofile("telnet_srv.lua") +--dofile("start_demo.lua") + +end) diff --git a/Minid1 OLED/hauteur_eau/station_mesure/start_demo.lua b/Minid1 OLED/hauteur_eau/station_mesure/start_demo.lua new file mode 100644 index 0000000..c320ba5 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/start_demo.lua @@ -0,0 +1,12 @@ +-- Permet de démarrer une petite démo simplement via telnet +print("\n start_demo1.lua zf180826.1753 \n") + +dofile("disp_oled.lua") + +oled_line1="abcdefghijklmnop" +oled_line2="abcdefghijklmnop" +oled_line3="abcdefghijklmnop" +oled_line4="abcdefghijklmnop" +oled_line5="abcdefghijklmnop" + +disp_oled() diff --git a/Minid1 OLED/hauteur_eau/station_mesure/telnet_srv.lua b/Minid1 OLED/hauteur_eau/station_mesure/telnet_srv.lua new file mode 100644 index 0000000..0e39784 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/telnet_srv.lua @@ -0,0 +1,44 @@ +-- Serveur telnet pour connexion en remote WIFI +print("\n telnet_srv.lua zf180826.1020 \n") + +-- restart server if needed +if telnet_srv ~= nil then + telnet_srv:close() +end +telnet_srv = net.createServer(net.TCP, 180) + +telnet_srv:listen(23, function(socket) + local fifo = {} + local fifo_drained = true + + local function sender(c) + if #fifo > 0 then + c:send(table.remove(fifo, 1)) + else + fifo_drained = true + end + end + + local function s_output(str) + table.insert(fifo, str) + if socket ~= nil and fifo_drained then + fifo_drained = false + sender(socket) + end + end + + node.output(s_output, 0) -- re-direct output to function s_ouput. + + socket:on("receive", function(c, l) + node.input(l) -- works like pcall(loadstring(l)) but support multiple separate line + end) + socket:on("disconnection", function(c) + node.output(nil) -- un-regist the redirect output function, output goes to serial + end) + socket:on("sent", sender) + + print("Welcome to NodeMCU world.") +end) + +print("Telnet server running...\nUsage: telnet -r ip\n") + diff --git a/Minid1 OLED/hauteur_eau/station_mesure/wifi_ap_start.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_ap_start.lua new file mode 100644 index 0000000..ce3c29b --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/wifi_ap_start.lua @@ -0,0 +1,13 @@ +-- Démarre le WIFI en mode AP +print("\n wifi_ap_start.lua zf180824.2000 \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) +end +wifi.ap.config({ ssid = "NodeMCU "..wifi.ap.getmac(), pwd = "12345678" }) +dofile("wifi_info.lua") diff --git a/Minid1 OLED/hauteur_eau/station_mesure/wifi_ap_stop.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_ap_stop.lua new file mode 100644 index 0000000..2738627 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/wifi_ap_stop.lua @@ -0,0 +1,10 @@ +-- Démarre le WIFI en mode AP +print("\n wifi_ap_stop.lua zf180824.2000 \n") + +local zmodewifi=wifi.getmode() +if zmodewifi == wifi.SOFTAP then + wifi.setmode(wifi.NULLMODE) +elseif zmodewifi == wifi.STATIONAP then + wifi.setmode(wifi.STATION) +end +print("WIFI AP arrêté") diff --git a/Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_conf.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_conf.lua new file mode 100644 index 0000000..d3cd11e --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_conf.lua @@ -0,0 +1,4 @@ +-- Petit script pour configurer le client WIFI du NodeMCU +print("\n wifi_cli_conf.lua zf180824.2000 \n") + +wifi.sta.config{ssid="Hugo", pwd="tototutu", save=true} diff --git a/Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_start.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_start.lua new file mode 100644 index 0000000..aac8bea --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_start.lua @@ -0,0 +1,14 @@ +-- Petit script pour connecter le NodeMCU sur un AP Wifi avec l'accompte sauvé en EEPROM +print("\n wifi_cli_start.lua zf180824.2000 \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() +dofile("wifi_get_ip.lua") diff --git a/Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_stop.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_stop.lua new file mode 100644 index 0000000..9429aa5 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/wifi_cli_stop.lua @@ -0,0 +1,10 @@ +-- Démarre le WIFI en mode AP +print("\n wifi_cli_stop.lua zf180824.2000 \n") + +local zmodewifi=wifi.getmode() +if zmodewifi == wifi.STATION then + wifi.setmode(wifi.NULLMODE) +elseif zmodewifi == wifi.STATIONAP then + wifi.setmode(wifi.SOFTAP) +end +print("WIFI CLI arrêté") diff --git a/Minid1 OLED/hauteur_eau/station_mesure/wifi_cnf_start.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_cnf_start.lua new file mode 100644 index 0000000..c4294f8 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/wifi_cnf_start.lua @@ -0,0 +1,6 @@ +-- Petit script pour démarrer le mode configuration WIFI du NodeMCU +print("\n wifi_cnf_start.lua zf180824.2000 \n") + +print("\nwifi config http://192.168.4.1\n") +dofile("wifi_get_ip.lua") +enduser_setup.start() diff --git a/Minid1 OLED/hauteur_eau/station_mesure/wifi_cnf_stop.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_cnf_stop.lua new file mode 100644 index 0000000..998c5e0 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/wifi_cnf_stop.lua @@ -0,0 +1,6 @@ +-- Petit script pour arrêter le mode configuration WIFI du NodeMCU +print("\n wifi_cnf_stop.lua zf180824.2000 \n") + +enduser_setup.stop() +wifi.sta.autoconnect(1) +wifi.sta.connect() diff --git a/Minid1 OLED/hauteur_eau/station_mesure/wifi_get_ip.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_get_ip.lua new file mode 100644 index 0000000..83b6369 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/wifi_get_ip.lua @@ -0,0 +1,12 @@ +-- Petit script pour obtenir l'adresse IP du NodeMCU connecté sur un AP Wifi +print("\n wifi_get_ip.lua zf180824.2000 \n") + +wifitimer1=tmr.create() +tmr.alarm(wifitimer1, 1000, tmr.ALARM_AUTO , function() + if wifi.sta.getip() == nil then + print("Connecting to AP...") + else + tmr.stop(wifitimer1) + dofile("wifi_info.lua") + end +end) diff --git a/Minid1 OLED/hauteur_eau/station_mesure/wifi_info.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_info.lua new file mode 100644 index 0000000..d81fc1b --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/wifi_info.lua @@ -0,0 +1,30 @@ +-- Petit script pour afficher les infos actuel du WIFI +print("\n wifi_info.lua zf180824.2000 \n") + +local zmodewifi=wifi.getmode() + +--wifi.NULLMODE, wifi.STATION, wifi.SOFTAP, wifi.STATIONAP + +if zmodewifi == wifi.NULLMODE then + print("WIFI OFF") +elseif zmodewifi == wifi.STATION then + print("WIFI mode CLI") + print("Connected IP:\n",wifi.sta.getip()) + do + local sta_config=wifi.sta.getconfig(true) + print(string.format("Current client config:\n\tssid:\"%s\"\tpassword:\"%s\"\n\tbssid:\"%s\"\tbssid_set:%s", sta_config.ssid, sta_config.pwd, sta_config.bssid, (sta_config.bssid_set and "true" or "false"))) + end +elseif zmodewifi == wifi.SOFTAP then + print("WIFI mode AP") + print("AP MAC:\n\t"..wifi.ap.getmac()) + print("AP IP:\n\t"..wifi.ap.getip()) +elseif zmodewifi == wifi.STATIONAP then + print("WIFI mode CLI+AP") + print("Connected IP:\n",wifi.sta.getip()) + do + local sta_config=wifi.sta.getconfig(true) + print(string.format("Current client config:\n\tssid:\"%s\"\tpassword:\"%s\"\n\tbssid:\"%s\"\tbssid_set:%s", sta_config.ssid, sta_config.pwd, sta_config.bssid, (sta_config.bssid_set and "true" or "false"))) + end + print("AP MAC: "..wifi.ap.getmac()) + print("AP IP: "..wifi.ap.getip()) +end diff --git a/Minid1 OLED/hauteur_eau/station_mesure/wifi_off.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_off.lua new file mode 100644 index 0000000..c1c7235 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/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/Minid1 OLED/hauteur_eau/station_mesure/wifi_start.lua b/Minid1 OLED/hauteur_eau/station_mesure/wifi_start.lua new file mode 100644 index 0000000..7291785 --- /dev/null +++ b/Minid1 OLED/hauteur_eau/station_mesure/wifi_start.lua @@ -0,0 +1,5 @@ +-- Exemple de petit script pour démarrer le WIFI +print("\n wifi_start.lua zf180824.2000 \n") + +dofile("wifi_cli_start.lua") +dofile("wifi_ap_start.lua") diff --git a/OS_utils/cat.lua b/OS_utils/cat.lua new file mode 100644 index 0000000..7c309b9 --- /dev/null +++ b/OS_utils/cat.lua @@ -0,0 +1,17 @@ +-- fonction cat() pour afficher le contenu d'un fichier dans la flash +print("\n cat.lua zf180826.1109 \n") + +function cat(zfile) + print("\n"..zfile.."\n-------------------------------") + + zfilei = file.open(zfile, "r") + i=1 + zline=file.readline() + repeat + print(i..": "..string.sub(zline,1,string.len(zline)-1)) + i=i+1 zline=file.readline() + until zline== nil + file.close(zfilei) + + print("-------------------------------") +end diff --git a/OS_utils/dir.lua b/OS_utils/dir.lua new file mode 100644 index 0000000..8bf9414 --- /dev/null +++ b/OS_utils/dir.lua @@ -0,0 +1,15 @@ +-- fonction dir() pour afficher les fichiers dans la flash +print("\n dir.lua zf180826.1019 \n") + +function dir() + print("\n-------------------------------") + l=file.list() i=0 + for k,v in pairs(l) do + i=i+v + print(k..string.rep(" ",19-string.len(k)).." : "..v.." bytes") + end + print("-------------------------------") + print('\nUsed: '..i..' bytes\nusage: dofile("file.lua")\n') +end + +dir() diff --git a/OS_utils/telnet_srv.lua b/OS_utils/telnet_srv.lua new file mode 100644 index 0000000..0e39784 --- /dev/null +++ b/OS_utils/telnet_srv.lua @@ -0,0 +1,44 @@ +-- Serveur telnet pour connexion en remote WIFI +print("\n telnet_srv.lua zf180826.1020 \n") + +-- restart server if needed +if telnet_srv ~= nil then + telnet_srv:close() +end +telnet_srv = net.createServer(net.TCP, 180) + +telnet_srv:listen(23, function(socket) + local fifo = {} + local fifo_drained = true + + local function sender(c) + if #fifo > 0 then + c:send(table.remove(fifo, 1)) + else + fifo_drained = true + end + end + + local function s_output(str) + table.insert(fifo, str) + if socket ~= nil and fifo_drained then + fifo_drained = false + sender(socket) + end + end + + node.output(s_output, 0) -- re-direct output to function s_ouput. + + socket:on("receive", function(c, l) + node.input(l) -- works like pcall(loadstring(l)) but support multiple separate line + end) + socket:on("disconnection", function(c) + node.output(nil) -- un-regist the redirect output function, output goes to serial + end) + socket:on("sent", sender) + + print("Welcome to NodeMCU world.") +end) + +print("Telnet server running...\nUsage: telnet -r ip\n") + diff --git a/cat.lua b/cat.lua deleted file mode 100644 index a0091a0..0000000 --- a/cat.lua +++ /dev/null @@ -1,20 +0,0 @@ --- fonction cat() pour afficher le contenu d'un fichier dans la flash -print("\n cat.lua zf180730.1259") - -function cat(zfile) - print("\n-------------------------------") - - - zfilei = io.open(zfile, "r") - io.input(zfilei) - - i=1 - zline=io.read() - repeat - print(i..": "..zline) - i=i+1 zline=io.read() - until zline== nil - io.close(zfilei) - - print("-------------------------------") -end diff --git a/init_minizf.lua b/init_minizf.lua deleted file mode 100644 index 407a43d..0000000 --- a/init_minizf.lua +++ /dev/null @@ -1,2 +0,0 @@ -print("\nzinit zf180713.1449\n") - diff --git a/start_demo1.lua b/start_demo1.lua new file mode 100644 index 0000000..b009c49 --- /dev/null +++ b/start_demo1.lua @@ -0,0 +1,4 @@ +-- Permet de démarrer une petite démo simplement via telnet +print("\n start_demo1.lua zf180824.2027 \n") + +dofile("oled_disp_multi_lines.lua")