From cecd75545a65915274b13d08e38a8146f439b96f Mon Sep 17 00:00:00 2001 From: Christian Zufferey Date: Mon, 28 Oct 2019 14:10:27 +0100 Subject: [PATCH] =?UTF-8?q?Commenc=C3=A9=20le=20projet=20wifi=20sniffer=20?= =?UTF-8?q?pour=20le=20MsL=20;-)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transfo_courant_clip/_zremote_cmd.txt | 26 +- Mesures/energy/transfo_courant_clip/cat.lua | 5 +- Mesures/energy/transfo_courant_clip/head.lua | 19 + WIFI_sniffer/{ => fisrt_project}/b.lua | 0 WIFI_sniffer/{ => fisrt_project}/boot.lua | 0 .../{ => fisrt_project}/flash_led_xfois.lua | 0 .../goodies/a_test_fill.lua | 0 .../{ => fisrt_project}/goodies/a_train1.lua | 0 .../goodies/blink_led1.lua | 0 .../goodies/blink_led2.lua | 0 .../{ => fisrt_project}/goodies/cat.lua | 0 .../{ => fisrt_project}/goodies/dir.lua | 0 .../goodies/flash_led_xfois.lua | 0 .../goodies/initz - copie.lua | 0 .../{ => fisrt_project}/goodies/restart.lua | 0 .../{ => fisrt_project}/goodies/rm_files.lua | 0 .../goodies/wifi_ap_start.lua | 0 .../goodies/wifi_ap_stop.lua | 0 .../goodies/wifi_cli_stop.lua | 0 .../goodies/wifi_get_ip.lua | 0 .../{ => fisrt_project}/goodies/wifi_off.lua | 0 WIFI_sniffer/{ => fisrt_project}/initz.lua | 0 WIFI_sniffer/{ => fisrt_project}/oldies/a.lua | 0 .../oldies/a_test_power_wifi.lua | 0 .../{ => fisrt_project}/oldies/a_tst_sort.lua | 0 .../{ => fisrt_project}/oldies/dsleep.lua | 0 .../oldies/tst_sniffer_wifi1.csv | 0 .../oldies/wifi_ap_stop.lua | 0 WIFI_sniffer/{ => fisrt_project}/repair.lua | 0 WIFI_sniffer/{ => fisrt_project}/set_time.lua | 0 .../{ => fisrt_project}/telnet_srv2.lua | 0 WIFI_sniffer/{ => fisrt_project}/web_ide2.lua | 0 WIFI_sniffer/{ => fisrt_project}/web_srv2.lua | 0 .../{ => fisrt_project}/wifi_ap_start.lua | 0 .../{ => fisrt_project}/wifi_cli_conf.lua | 0 .../{ => fisrt_project}/wifi_cli_start.lua | 0 .../{ => fisrt_project}/wifi_info.lua | 0 WIFI_sniffer/{ => fisrt_project}/z_index.html | 0 WIFI_sniffer/{ => fisrt_project}/z_page1.html | 0 WIFI_sniffer/{ => fisrt_project}/z_page2.html | 0 WIFI_sniffer/{ => fisrt_project}/z_page3.html | 0 WIFI_sniffer/goodies/credentials.lua | 9 - WIFI_sniffer/msl_project/README.md | 93 ++++ WIFI_sniffer/msl_project/_secrets_energy.lua_ | 19 + WIFI_sniffer/msl_project/_zremote_cmd.txt | 55 +++ WIFI_sniffer/msl_project/boot.lua | 15 + WIFI_sniffer/msl_project/boot2.lua | 22 + WIFI_sniffer/msl_project/cat.lua | 18 + WIFI_sniffer/msl_project/dir.lua | 15 + WIFI_sniffer/msl_project/flash_led_xfois.lua | 39 ++ WIFI_sniffer/msl_project/head.lua | 19 + WIFI_sniffer/msl_project/initz.lua | 63 +++ WIFI_sniffer/msl_project/luatool.py | 398 ++++++++++++++++++ WIFI_sniffer/msl_project/telnet_srv2.lua | 93 ++++ WIFI_sniffer/msl_project/test_toto.sh | 23 + WIFI_sniffer/msl_project/toto.lua | 3 + WIFI_sniffer/msl_project/upload.sh | 38 ++ WIFI_sniffer/msl_project/wifi_ap_stop.lua | 10 + WIFI_sniffer/msl_project/wifi_cli_conf.lua | 11 + WIFI_sniffer/msl_project/wifi_cli_start.lua | 20 + WIFI_sniffer/msl_project/wifi_info.lua | 33 ++ 61 files changed, 1027 insertions(+), 19 deletions(-) create mode 100644 Mesures/energy/transfo_courant_clip/head.lua rename WIFI_sniffer/{ => fisrt_project}/b.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/boot.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/flash_led_xfois.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/a_test_fill.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/a_train1.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/blink_led1.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/blink_led2.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/cat.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/dir.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/flash_led_xfois.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/initz - copie.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/restart.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/rm_files.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/wifi_ap_start.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/wifi_ap_stop.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/wifi_cli_stop.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/wifi_get_ip.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/goodies/wifi_off.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/initz.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/oldies/a.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/oldies/a_test_power_wifi.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/oldies/a_tst_sort.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/oldies/dsleep.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/oldies/tst_sniffer_wifi1.csv (100%) rename WIFI_sniffer/{ => fisrt_project}/oldies/wifi_ap_stop.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/repair.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/set_time.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/telnet_srv2.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/web_ide2.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/web_srv2.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/wifi_ap_start.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/wifi_cli_conf.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/wifi_cli_start.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/wifi_info.lua (100%) rename WIFI_sniffer/{ => fisrt_project}/z_index.html (100%) rename WIFI_sniffer/{ => fisrt_project}/z_page1.html (100%) rename WIFI_sniffer/{ => fisrt_project}/z_page2.html (100%) rename WIFI_sniffer/{ => fisrt_project}/z_page3.html (100%) delete mode 100644 WIFI_sniffer/goodies/credentials.lua create mode 100644 WIFI_sniffer/msl_project/README.md create mode 100644 WIFI_sniffer/msl_project/_secrets_energy.lua_ create mode 100644 WIFI_sniffer/msl_project/_zremote_cmd.txt create mode 100644 WIFI_sniffer/msl_project/boot.lua create mode 100644 WIFI_sniffer/msl_project/boot2.lua create mode 100644 WIFI_sniffer/msl_project/cat.lua create mode 100644 WIFI_sniffer/msl_project/dir.lua create mode 100644 WIFI_sniffer/msl_project/flash_led_xfois.lua create mode 100644 WIFI_sniffer/msl_project/head.lua create mode 100644 WIFI_sniffer/msl_project/initz.lua create mode 100755 WIFI_sniffer/msl_project/luatool.py create mode 100644 WIFI_sniffer/msl_project/telnet_srv2.lua create mode 100755 WIFI_sniffer/msl_project/test_toto.sh create mode 100644 WIFI_sniffer/msl_project/toto.lua create mode 100644 WIFI_sniffer/msl_project/upload.sh create mode 100644 WIFI_sniffer/msl_project/wifi_ap_stop.lua create mode 100644 WIFI_sniffer/msl_project/wifi_cli_conf.lua create mode 100644 WIFI_sniffer/msl_project/wifi_cli_start.lua create mode 100644 WIFI_sniffer/msl_project/wifi_info.lua diff --git a/Mesures/energy/transfo_courant_clip/_zremote_cmd.txt b/Mesures/energy/transfo_courant_clip/_zremote_cmd.txt index 7d69e08..1a2caf0 100644 --- a/Mesures/energy/transfo_courant_clip/_zremote_cmd.txt +++ b/Mesures/energy/transfo_courant_clip/_zremote_cmd.txt @@ -1,40 +1,50 @@ # Quelques commandes remote (luatool) à envoyer avec le plugin Atom-IDE-terminal de l'éditeur Atom -# zf191024.1023 +# zf191026.0913 + +# si luatool ne marche pas sur le MAC, il faut lire ceci: +# https://docs.google.com/document/d/1q64uK3IMOgEDdKaIAttbYuFt4GuLQ06k3FLeyfCsWLg/edit#heading=h.bmefcu67uwj0 # raccourcis clavier # CTRL+ALT+ENTER envoie au terminal la ligne de l'éditeur -# ALT+CMD+F togle entre le terminal et l'éditeur +# SHIT+CTRL+` ouvre le terminal (attention, ne pas oublier de copier le *path* dans le *tree* et le changer) +# ALT+CMD+F bascule entre le terminal et l'éditeur # définitions à faire AVANT ! export luatool_tty="/dev/cu.wchusbserial1410" export zIP="192.168.0.135" -# ouvrir et fermer une session telnet sur le NodeMCU avec l'adresse zIP) +# ouvrir et fermer (ALT+n+.) une session telnet sur le NodeMCU avec l'adresse zIP) telnet -rN $zIP ~. node.restart() +=node.heap() # commandes lua pour ce projet verbose=true verbose=false -if verbose then print("toto") end - - - #commandes luatool pour ce projet ./luatool.py --ip $zIP -f 0_get_data.lua ./luatool.py --ip $zIP -f 0_send_data.lua +./luatool.py --ip $zIP -f cat.lua + + +~. +./luatool.py --ip $zIP -f head.lua +telnet -rN $zIP +dofile("head.lua") +zhead("telnet_srv2.lua") + ./luatool.py --ip $zIP --zrestart # faire un cat d'un fichier sur le NodeMCU dofile("cat.lua") -cat("telnet_srv2.lua") +cat("boot2.lua") # commandes luatool diff --git a/Mesures/energy/transfo_courant_clip/cat.lua b/Mesures/energy/transfo_courant_clip/cat.lua index 7c309b9..856a52d 100644 --- a/Mesures/energy/transfo_courant_clip/cat.lua +++ b/Mesures/energy/transfo_courant_clip/cat.lua @@ -1,5 +1,5 @@ -- fonction cat() pour afficher le contenu d'un fichier dans la flash -print("\n cat.lua zf180826.1109 \n") +print("\n cat.lua zf192026.0858 \n") function cat(zfile) print("\n"..zfile.."\n-------------------------------") @@ -8,7 +8,8 @@ function cat(zfile) i=1 zline=file.readline() repeat - print(i..": "..string.sub(zline,1,string.len(zline)-1)) +-- print(i..": "..string.sub(zline,1,string.len(zline)-1)) + print(string.sub(zline,1,string.len(zline)-1)) i=i+1 zline=file.readline() until zline== nil file.close(zfilei) diff --git a/Mesures/energy/transfo_courant_clip/head.lua b/Mesures/energy/transfo_courant_clip/head.lua new file mode 100644 index 0000000..2f28a52 --- /dev/null +++ b/Mesures/energy/transfo_courant_clip/head.lua @@ -0,0 +1,19 @@ +-- fonction cat() pour afficher les 10 premières lignes d'un fichier dans la flash +print("\n head.lua zf192026.0942 \n") + +function zhead(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)) + print(string.sub(zline,1,string.len(zline)-1)) + i=i+1 zline=file.readline() + if i>10 then break end + until zline==nil + file.close(zfilei) + + print("-------------------------------") +end diff --git a/WIFI_sniffer/b.lua b/WIFI_sniffer/fisrt_project/b.lua similarity index 100% rename from WIFI_sniffer/b.lua rename to WIFI_sniffer/fisrt_project/b.lua diff --git a/WIFI_sniffer/boot.lua b/WIFI_sniffer/fisrt_project/boot.lua similarity index 100% rename from WIFI_sniffer/boot.lua rename to WIFI_sniffer/fisrt_project/boot.lua diff --git a/WIFI_sniffer/flash_led_xfois.lua b/WIFI_sniffer/fisrt_project/flash_led_xfois.lua similarity index 100% rename from WIFI_sniffer/flash_led_xfois.lua rename to WIFI_sniffer/fisrt_project/flash_led_xfois.lua diff --git a/WIFI_sniffer/goodies/a_test_fill.lua b/WIFI_sniffer/fisrt_project/goodies/a_test_fill.lua similarity index 100% rename from WIFI_sniffer/goodies/a_test_fill.lua rename to WIFI_sniffer/fisrt_project/goodies/a_test_fill.lua diff --git a/WIFI_sniffer/goodies/a_train1.lua b/WIFI_sniffer/fisrt_project/goodies/a_train1.lua similarity index 100% rename from WIFI_sniffer/goodies/a_train1.lua rename to WIFI_sniffer/fisrt_project/goodies/a_train1.lua diff --git a/WIFI_sniffer/goodies/blink_led1.lua b/WIFI_sniffer/fisrt_project/goodies/blink_led1.lua similarity index 100% rename from WIFI_sniffer/goodies/blink_led1.lua rename to WIFI_sniffer/fisrt_project/goodies/blink_led1.lua diff --git a/WIFI_sniffer/goodies/blink_led2.lua b/WIFI_sniffer/fisrt_project/goodies/blink_led2.lua similarity index 100% rename from WIFI_sniffer/goodies/blink_led2.lua rename to WIFI_sniffer/fisrt_project/goodies/blink_led2.lua diff --git a/WIFI_sniffer/goodies/cat.lua b/WIFI_sniffer/fisrt_project/goodies/cat.lua similarity index 100% rename from WIFI_sniffer/goodies/cat.lua rename to WIFI_sniffer/fisrt_project/goodies/cat.lua diff --git a/WIFI_sniffer/goodies/dir.lua b/WIFI_sniffer/fisrt_project/goodies/dir.lua similarity index 100% rename from WIFI_sniffer/goodies/dir.lua rename to WIFI_sniffer/fisrt_project/goodies/dir.lua diff --git a/WIFI_sniffer/goodies/flash_led_xfois.lua b/WIFI_sniffer/fisrt_project/goodies/flash_led_xfois.lua similarity index 100% rename from WIFI_sniffer/goodies/flash_led_xfois.lua rename to WIFI_sniffer/fisrt_project/goodies/flash_led_xfois.lua diff --git a/WIFI_sniffer/goodies/initz - copie.lua b/WIFI_sniffer/fisrt_project/goodies/initz - copie.lua similarity index 100% rename from WIFI_sniffer/goodies/initz - copie.lua rename to WIFI_sniffer/fisrt_project/goodies/initz - copie.lua diff --git a/WIFI_sniffer/goodies/restart.lua b/WIFI_sniffer/fisrt_project/goodies/restart.lua similarity index 100% rename from WIFI_sniffer/goodies/restart.lua rename to WIFI_sniffer/fisrt_project/goodies/restart.lua diff --git a/WIFI_sniffer/goodies/rm_files.lua b/WIFI_sniffer/fisrt_project/goodies/rm_files.lua similarity index 100% rename from WIFI_sniffer/goodies/rm_files.lua rename to WIFI_sniffer/fisrt_project/goodies/rm_files.lua diff --git a/WIFI_sniffer/goodies/wifi_ap_start.lua b/WIFI_sniffer/fisrt_project/goodies/wifi_ap_start.lua similarity index 100% rename from WIFI_sniffer/goodies/wifi_ap_start.lua rename to WIFI_sniffer/fisrt_project/goodies/wifi_ap_start.lua diff --git a/WIFI_sniffer/goodies/wifi_ap_stop.lua b/WIFI_sniffer/fisrt_project/goodies/wifi_ap_stop.lua similarity index 100% rename from WIFI_sniffer/goodies/wifi_ap_stop.lua rename to WIFI_sniffer/fisrt_project/goodies/wifi_ap_stop.lua diff --git a/WIFI_sniffer/goodies/wifi_cli_stop.lua b/WIFI_sniffer/fisrt_project/goodies/wifi_cli_stop.lua similarity index 100% rename from WIFI_sniffer/goodies/wifi_cli_stop.lua rename to WIFI_sniffer/fisrt_project/goodies/wifi_cli_stop.lua diff --git a/WIFI_sniffer/goodies/wifi_get_ip.lua b/WIFI_sniffer/fisrt_project/goodies/wifi_get_ip.lua similarity index 100% rename from WIFI_sniffer/goodies/wifi_get_ip.lua rename to WIFI_sniffer/fisrt_project/goodies/wifi_get_ip.lua diff --git a/WIFI_sniffer/goodies/wifi_off.lua b/WIFI_sniffer/fisrt_project/goodies/wifi_off.lua similarity index 100% rename from WIFI_sniffer/goodies/wifi_off.lua rename to WIFI_sniffer/fisrt_project/goodies/wifi_off.lua diff --git a/WIFI_sniffer/initz.lua b/WIFI_sniffer/fisrt_project/initz.lua similarity index 100% rename from WIFI_sniffer/initz.lua rename to WIFI_sniffer/fisrt_project/initz.lua diff --git a/WIFI_sniffer/oldies/a.lua b/WIFI_sniffer/fisrt_project/oldies/a.lua similarity index 100% rename from WIFI_sniffer/oldies/a.lua rename to WIFI_sniffer/fisrt_project/oldies/a.lua diff --git a/WIFI_sniffer/oldies/a_test_power_wifi.lua b/WIFI_sniffer/fisrt_project/oldies/a_test_power_wifi.lua similarity index 100% rename from WIFI_sniffer/oldies/a_test_power_wifi.lua rename to WIFI_sniffer/fisrt_project/oldies/a_test_power_wifi.lua diff --git a/WIFI_sniffer/oldies/a_tst_sort.lua b/WIFI_sniffer/fisrt_project/oldies/a_tst_sort.lua similarity index 100% rename from WIFI_sniffer/oldies/a_tst_sort.lua rename to WIFI_sniffer/fisrt_project/oldies/a_tst_sort.lua diff --git a/WIFI_sniffer/oldies/dsleep.lua b/WIFI_sniffer/fisrt_project/oldies/dsleep.lua similarity index 100% rename from WIFI_sniffer/oldies/dsleep.lua rename to WIFI_sniffer/fisrt_project/oldies/dsleep.lua diff --git a/WIFI_sniffer/oldies/tst_sniffer_wifi1.csv b/WIFI_sniffer/fisrt_project/oldies/tst_sniffer_wifi1.csv similarity index 100% rename from WIFI_sniffer/oldies/tst_sniffer_wifi1.csv rename to WIFI_sniffer/fisrt_project/oldies/tst_sniffer_wifi1.csv diff --git a/WIFI_sniffer/oldies/wifi_ap_stop.lua b/WIFI_sniffer/fisrt_project/oldies/wifi_ap_stop.lua similarity index 100% rename from WIFI_sniffer/oldies/wifi_ap_stop.lua rename to WIFI_sniffer/fisrt_project/oldies/wifi_ap_stop.lua diff --git a/WIFI_sniffer/repair.lua b/WIFI_sniffer/fisrt_project/repair.lua similarity index 100% rename from WIFI_sniffer/repair.lua rename to WIFI_sniffer/fisrt_project/repair.lua diff --git a/WIFI_sniffer/set_time.lua b/WIFI_sniffer/fisrt_project/set_time.lua similarity index 100% rename from WIFI_sniffer/set_time.lua rename to WIFI_sniffer/fisrt_project/set_time.lua diff --git a/WIFI_sniffer/telnet_srv2.lua b/WIFI_sniffer/fisrt_project/telnet_srv2.lua similarity index 100% rename from WIFI_sniffer/telnet_srv2.lua rename to WIFI_sniffer/fisrt_project/telnet_srv2.lua diff --git a/WIFI_sniffer/web_ide2.lua b/WIFI_sniffer/fisrt_project/web_ide2.lua similarity index 100% rename from WIFI_sniffer/web_ide2.lua rename to WIFI_sniffer/fisrt_project/web_ide2.lua diff --git a/WIFI_sniffer/web_srv2.lua b/WIFI_sniffer/fisrt_project/web_srv2.lua similarity index 100% rename from WIFI_sniffer/web_srv2.lua rename to WIFI_sniffer/fisrt_project/web_srv2.lua diff --git a/WIFI_sniffer/wifi_ap_start.lua b/WIFI_sniffer/fisrt_project/wifi_ap_start.lua similarity index 100% rename from WIFI_sniffer/wifi_ap_start.lua rename to WIFI_sniffer/fisrt_project/wifi_ap_start.lua diff --git a/WIFI_sniffer/wifi_cli_conf.lua b/WIFI_sniffer/fisrt_project/wifi_cli_conf.lua similarity index 100% rename from WIFI_sniffer/wifi_cli_conf.lua rename to WIFI_sniffer/fisrt_project/wifi_cli_conf.lua diff --git a/WIFI_sniffer/wifi_cli_start.lua b/WIFI_sniffer/fisrt_project/wifi_cli_start.lua similarity index 100% rename from WIFI_sniffer/wifi_cli_start.lua rename to WIFI_sniffer/fisrt_project/wifi_cli_start.lua diff --git a/WIFI_sniffer/wifi_info.lua b/WIFI_sniffer/fisrt_project/wifi_info.lua similarity index 100% rename from WIFI_sniffer/wifi_info.lua rename to WIFI_sniffer/fisrt_project/wifi_info.lua diff --git a/WIFI_sniffer/z_index.html b/WIFI_sniffer/fisrt_project/z_index.html similarity index 100% rename from WIFI_sniffer/z_index.html rename to WIFI_sniffer/fisrt_project/z_index.html diff --git a/WIFI_sniffer/z_page1.html b/WIFI_sniffer/fisrt_project/z_page1.html similarity index 100% rename from WIFI_sniffer/z_page1.html rename to WIFI_sniffer/fisrt_project/z_page1.html diff --git a/WIFI_sniffer/z_page2.html b/WIFI_sniffer/fisrt_project/z_page2.html similarity index 100% rename from WIFI_sniffer/z_page2.html rename to WIFI_sniffer/fisrt_project/z_page2.html diff --git a/WIFI_sniffer/z_page3.html b/WIFI_sniffer/fisrt_project/z_page3.html similarity index 100% rename from WIFI_sniffer/z_page3.html rename to WIFI_sniffer/fisrt_project/z_page3.html diff --git a/WIFI_sniffer/goodies/credentials.lua b/WIFI_sniffer/goodies/credentials.lua deleted file mode 100644 index 0efde32..0000000 --- a/WIFI_sniffer/goodies/credentials.lua +++ /dev/null @@ -1,9 +0,0 @@ --- Petit script pour configurer les choses secrètes que l'on n'aimerait --- pas être exportées sur Internet (github) --- faut donc le mettre ailleurs que dans le dépôt ! - -print("\n credential.lua zf181205.1910 \n") - -cli_ssid="3g-s7" -cli_pwd="12234567" - diff --git a/WIFI_sniffer/msl_project/README.md b/WIFI_sniffer/msl_project/README.md new file mode 100644 index 0000000..86b7337 --- /dev/null +++ b/WIFI_sniffer/msl_project/README.md @@ -0,0 +1,93 @@ +# Remise au goût du jour le petit script luatool.py + +## Sources +https://github.com/4refr0nt/luatool + + +## Description +Le petit script python *luatool.py* permet d'automatiser le téléchargement de +scripts *.lua* sur un NodeMCU branché sur le port USB.
+Mais il permet aussi et surtout de le faire via WIFI. Pour cela il faut que le petit serveur *telnet* tourne sur le NodeMCU ! + + +## Problématiques +La version actuelle datant de juillet 2017 ne fonctionne plus avec les nouveaux firmwares de NodeMCU. Il a y un problème au moment de l'initialisation de la connexion série. + + +## Travail effectué +* J'ai donc repris le code python et juste après l'initialisation du port série je cherche le caractère '>', ainsi je suis certain que le NodeMCU a bien redémarré. + +* J'ai aussi diminué le délai d'attente entre chaque ligne, passé de 0.3 sec à 0.03 sec. Les téléchargements sont donc 10x plus rapides + +* J'ai aussi mis un nouveau telnet serveur qui tient compte des tailles maximales des paquets TCP + +* J'ai aussi bien amélioré le script luatool.py (voir le code source) + + +## Installation +Maintenant c'est très facile de télécharger tout un projet sur un NodeMCU. Il suffit simplement de modifier le petit script bash upload.sh, puis de faire: + +``` +./upload.sh +``` +* A chaque utilisation de luatool.py, le NodeMCU, s'il est branché sur le port série, redémarre ! +* S'il y a des erreurs lors d'un téléchargement, il faut simplement augmenter un peu le délai !
+* Il est préférable de télécharger en premier les *gros* fichiers .lua ! + + +## Test via WIFI en telnet +Après avoir installé tout le *binz* sur le NodeMCU avec le script *upload.sh*, on peut utiliser *luatool.py* via le WIFI.
+On peut le tester avec le petit script: +``` +./test_toto-sh +``` + +* Si cela fonctionne, la LED devrait arrêter de clignoter ;-) + + +## Goodies +### Quelques commandes en WIFI ;-) +**ATTENTION:** ces exemples de commandes sont pour MON adresse IP actuelle de mon NodeMCU ;-) + +Help du luatool.py +``` +./luatool.py -h +``` + +Liste les fichiers qui se trouvent sur le NodeMCU +``` +./luatool.py --ip 192.168.0.157 -l +``` + +Télécharge le fichier *toto.lua* sur le NodeMCU +``` +./luatool.py --ip 192.168.0.157 -f toto.lua +``` + +Télécharge le fichier *toto.lua* sur le NodeMCU, mais le renomme en *tutu.lua* et affiche une *progression bar* de l'évolution du téléchargement +``` +./luatool.py --ip 192.168.0.157 -f toto.lua -t tutu.lua +``` + +Vérifie que tout est bon sur le NodeMCU +``` +./luatool.py --ip 192.168.0.157 -l +``` + +Efface le fichier *toto.lua* sur le NodeMCU +``` +./luatool.py --ip 192.168.0.157 --delete toto.lua +``` + +Efface le fichier *tutu.lua* sur le NodeMCU +``` +./luatool.py --ip 192.168.0.157 --delete tutu.lua +``` + +Vérifie que tout est bon sur le NodeMCU +``` +./luatool.py --ip 192.168.0.157 -l +``` + + +zf191021.1619 diff --git a/WIFI_sniffer/msl_project/_secrets_energy.lua_ b/WIFI_sniffer/msl_project/_secrets_energy.lua_ new file mode 100644 index 0000000..06893c0 --- /dev/null +++ b/WIFI_sniffer/msl_project/_secrets_energy.lua_ @@ -0,0 +1,19 @@ +-- Petit script pour configurer les choses secrètes que l'on n'aimerait +-- pas être exportées sur Internet (github) +-- donc on ne met PAS des secrets dans le code ! +-- faut le mettre ailleurs que dans le dépôt ! +-- il faut le renommer en 'secrets_energy.lua' et sera exécuté +-- par 'boot.lua' au moment du boot + +function secrets() + print("\n secrets_energy.lua zf190916.1458 \n") + + cli_ssid="xxx" + cli_pwd="xxx" + + influxdb_url="http://xxx.yyy.zzz:8086/write?db=xxx&u=admin&p=xxx" + print("influxdb_url: "..influxdb_url) + +end +secrets() +secrets=nil diff --git a/WIFI_sniffer/msl_project/_zremote_cmd.txt b/WIFI_sniffer/msl_project/_zremote_cmd.txt new file mode 100644 index 0000000..36153eb --- /dev/null +++ b/WIFI_sniffer/msl_project/_zremote_cmd.txt @@ -0,0 +1,55 @@ +# Quelques commandes remote (luatool) à envoyer avec le plugin Atom-IDE-terminal de l'éditeur Atom +# zf191026.0913 + +# si luatool ne marche pas sur le MAC, il faut lire ceci: +# https://docs.google.com/document/d/1q64uK3IMOgEDdKaIAttbYuFt4GuLQ06k3FLeyfCsWLg/edit#heading=h.bmefcu67uwj0 + +# raccourcis clavier +# CTRL+ALT+ENTER envoie au terminal la ligne de l'éditeur +# SHIT+CTRL+` ouvre le terminal (attention, ne pas oublier de copier le *path* dans le *tree* et le changer) +# ALT+CMD+F bascule entre le terminal et l'éditeur + +# définitions à faire AVANT ! +export luatool_tty="/dev/cu.wchusbserial1410" +export zIP="192.168.43.230" + + +# ouvrir et fermer (ALT+n+.) une session telnet sur le NodeMCU avec l'adresse zIP) +telnet -rN $zIP +~. +node.restart() +=node.heap() + + +# commandes lua pour ce projet +verbose=true +verbose=false + + +#commandes luatool pour ce projet +./luatool.py --ip $zIP -f 0_get_data.lua +./luatool.py --ip $zIP -f 0_send_data.lua +./luatool.py --ip $zIP -f cat.lua + + +~. +./luatool.py --ip $zIP -f head.lua +telnet -rN $zIP +dofile("head.lua") +zhead("telnet_srv2.lua") + + +./luatool.py --ip $zIP --zrestart + + +# faire un cat d'un fichier sur le NodeMCU +dofile("cat.lua") +cat("boot2.lua") + + +# commandes luatool +./luatool.py -h +./luatool.py --ip $zIP -i +./luatool.py --ip $zIP -l +./luatool.py --ip $zIP -f toto.lua -d +./luatool.py --ip $zIP --delete toto.lua diff --git a/WIFI_sniffer/msl_project/boot.lua b/WIFI_sniffer/msl_project/boot.lua new file mode 100644 index 0000000..8714d28 --- /dev/null +++ b/WIFI_sniffer/msl_project/boot.lua @@ -0,0 +1,15 @@ +-- Scripts à charger après le boot pour démarrer le core system + +print("\n boot.lua zf191020.1928 \n") + +-- charge ses propres secrets +f= "secrets_energy.lua" if file.exists(f) then dofile(f) end + +--f= "led_rgb.lua" if file.exists(f) then dofile(f) end +--f= "wifi_ap_start.lua" if file.exists(f) then dofile(f) end +f= "wifi_ap_stop.lua" if file.exists(f) then dofile(f) end +f= "wifi_cli_conf.lua" if file.exists(f) then dofile(f) end +f= "wifi_cli_start.lua" if file.exists(f) then dofile(f) end +f= "telnet_srv2.lua" if file.exists(f) then dofile(f) end +--f= "web_ide2.lua" if file.exists(f) then dofile(f) end +--ff= "web_srv2.lua" if file.exists(f) then dofile(f) end diff --git a/WIFI_sniffer/msl_project/boot2.lua b/WIFI_sniffer/msl_project/boot2.lua new file mode 100644 index 0000000..f819826 --- /dev/null +++ b/WIFI_sniffer/msl_project/boot2.lua @@ -0,0 +1,22 @@ +-- Scripts à charger après le boot pour démarrer son appli + +print("\n boot2.lua zf191020.1840 \n") + +second_chance=nil +function heartbeat() + f= "flash_led_xfois.lua" if file.exists(f) then dofile(f) end + flash_led_xfois() + boottimer1=tmr.create() + boottimer1:alarm(1*1000, tmr.ALARM_AUTO, function() + xfois =2 + blink_LED () + end) +end + +--f= "0_get_data.lua" if file.exists(f) then dofile(f) end +--f= "0_send_data.lua" if file.exists(f) then dofile(f) end +--f= "0_cron.lua" if file.exists(f) then dofile(f) end + +f=nil +--heartbeat=nil +heartbeat() diff --git a/WIFI_sniffer/msl_project/cat.lua b/WIFI_sniffer/msl_project/cat.lua new file mode 100644 index 0000000..856a52d --- /dev/null +++ b/WIFI_sniffer/msl_project/cat.lua @@ -0,0 +1,18 @@ +-- fonction cat() pour afficher le contenu d'un fichier dans la flash +print("\n cat.lua zf192026.0858 \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)) + print(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/WIFI_sniffer/msl_project/dir.lua b/WIFI_sniffer/msl_project/dir.lua new file mode 100644 index 0000000..8bf9414 --- /dev/null +++ b/WIFI_sniffer/msl_project/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/WIFI_sniffer/msl_project/flash_led_xfois.lua b/WIFI_sniffer/msl_project/flash_led_xfois.lua new file mode 100644 index 0000000..090ec4c --- /dev/null +++ b/WIFI_sniffer/msl_project/flash_led_xfois.lua @@ -0,0 +1,39 @@ +-- programme pour faire clignoter x fois une LED avec un rapport on/off + +function flash_led_xfois() + print("\n flash_led_xfois.lua zf190601.1618 \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) + ztmr_Flash_LED:alarm(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) + ztmr_Flash_LED:alarm(zTm_On_LED, tmr.ALARM_SINGLE, blink_LED) + end + end + end + +-- xfois =2 +-- blink_LED () +end + + + + diff --git a/WIFI_sniffer/msl_project/head.lua b/WIFI_sniffer/msl_project/head.lua new file mode 100644 index 0000000..2f28a52 --- /dev/null +++ b/WIFI_sniffer/msl_project/head.lua @@ -0,0 +1,19 @@ +-- fonction cat() pour afficher les 10 premières lignes d'un fichier dans la flash +print("\n head.lua zf192026.0942 \n") + +function zhead(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)) + print(string.sub(zline,1,string.len(zline)-1)) + i=i+1 zline=file.readline() + if i>10 then break end + until zline==nil + file.close(zfilei) + + print("-------------------------------") +end diff --git a/WIFI_sniffer/msl_project/initz.lua b/WIFI_sniffer/msl_project/initz.lua new file mode 100644 index 0000000..c5aa649 --- /dev/null +++ b/WIFI_sniffer/msl_project/initz.lua @@ -0,0 +1,63 @@ +--Script de bootstrap, test au moment du boot qui a été la cause de boot. +-- Si la cause est un power on ou une connexion depuis l'IDE, alors +-- 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 zf190917.0001 \n") + +zswitch=3 --switch flash +gpio.mode(zswitch, gpio.INT, gpio.PULLUP) + +function hvbouton() + gpio.trig(zswitch, "none") + initalarme:unregister() initalarme2:unregister() + f= "boot.lua" if file.exists(f) then dofile(f) end + f= "boot2.lua" if file.exists(f) then dofile(f) end +end + +gpio.trig(zswitch, "both", hvbouton) + +function second_chance() + print("seconde chance...") + f= "repair.lua" if file.exists(f) then dofile(f) end + initalarme=tmr.create() + initalarme:alarm(4*1000, tmr.ALARM_SINGLE, function() + f= "boot.lua" if file.exists(f) then dofile(f) end + end) + initalarme2=tmr.create() + initalarme2:alarm(30*1000, tmr.ALARM_SINGLE, function() + gpio.trig(zswitch) + hvbouton=nil + zswitch=nil + reset_reason=nil + f= "boot2.lua" if file.exists(f) then dofile(f) end + end) +end + +_, reset_reason = node.bootreason() +print("reset_reason:",reset_reason) +if reset_reason == 0 then + print("power on") + 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 + f= "boot2.lua" if file.exists(f) then dofile(f) end +elseif reset_reason == 5 then + print("dsleep wake up") + f= "boot.lua" if file.exists(f) then dofile(f) end + f= "boot2.lua" if file.exists(f) then dofile(f) end +elseif reset_reason == 6 then + print("external reset") + second_chance() +else + print("autre raison") + second_chance() +end + + diff --git a/WIFI_sniffer/msl_project/luatool.py b/WIFI_sniffer/msl_project/luatool.py new file mode 100755 index 0000000..9781932 --- /dev/null +++ b/WIFI_sniffer/msl_project/luatool.py @@ -0,0 +1,398 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- +version = "0.6.5 zf191021.1558" + +print("luatool.py ver " + version) + +#Améliorations +# Pour voir les améliorations il faut 'chercher' les zzz + + +# +# ESP8266 luatool +# Author e-mail: 4ref0nt@gmail.com +# Site: http://esp8266.ru +# Contributions from: https://github.com/sej7278 +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 51 Franklin +# Street, Fifth Floor, Boston, MA 02110-1301 USA. + +import sys +import serial +from time import sleep +import socket +import argparse +from os.path import basename + + +tqdm_installed = True +try: + from tqdm import tqdm +except ImportError, e: + if e.message == 'No module named tqdm': + tqdm_installed = False + else: + raise + + + +class TransportError(Exception): + """Custom exception to represent errors with a transport + """ + def __init__(self, message): + self.message = message + + def __str__(self): + return self.message + +class AbstractTransport: + def __init__(self): + raise NotImplementedError('abstract transports cannot be instantiated.') + + def close(self): + raise NotImplementedError('Function not implemented') + + def read(self, length): + raise NotImplementedError('Function not implemented') + + def writeln(self, data, check=1): + raise NotImplementedError('Function not implemented') + + def writer(self, data): + self.writeln("file.writeline([==[" + data + "]==])\r") + + def performcheck(self, expected): + line = '' + char = '' + i = -1 + while char != chr(62): # '>' + char = self.read(1) + if char == '': + raise Exception('No proper answer from MCU') + if char == chr(13) or char == chr(10): # LF or CR + if line != '': + line = line.strip() + # zzz191021 Affiche ce que l'on a reçu du NodeMCU + if args.verbose: + print("\n\nzread0957: {" + line + "\n}\n") + + if line+'\r' == expected and not args.bar: + sys.stdout.write(" -> ok") + elif line+'\r' != expected: + if line[:4] == "lua:": + sys.stdout.write("\r\n\r\nLua ERROR: %s" % line) + raise Exception('ERROR from Lua interpreter\r\n\r\n') + else: + expected = expected.split("\r")[0] + sys.stdout.write("\r\n\r\nERROR") + sys.stdout.write("\r\n send string : '%s'" % expected) + sys.stdout.write("\r\n expected echo : '%s'" % expected) + sys.stdout.write("\r\n but got answer : '%s'" % line) + sys.stdout.write("\r\n\r\n") + raise Exception('Error sending data to MCU\r\n\r\n') + line = '' + else: + line += char + if char == chr(62) and expected[i] == char: + char = '' + i += 1 + + +class SerialTransport(AbstractTransport): + def __init__(self, port, baud, delay): + self.port = port + self.baud = baud + self.serial = None + self.delay = delay + + try: + self.serial = serial.Serial(port, baud) + except serial.SerialException as e: + raise TransportError(e.strerror) + + self.serial.timeout = 3 + self.serial.interCharTimeout = 3 + + # zzz191021 juste après l'ouverture du port série, on attend le caractère '>' + line = '' + char = '' + i = -1 + while char != chr(62): # '>' + char = self.read(1) + if char == '': + raise Exception('No proper answer from MCU') + line += char + i += 1 + if args.verbose: + print("line: ." + line + ".") + + + def writeln(self, data, check=1): + # zzz191020 on fait une petite pause avant l'envoi de chaque ligne + sleep(self.delay) + if self.serial.inWaiting() > 0: + self.serial.flushInput() + if len(data) > 0 and not args.bar: + sys.stdout.write("\r\n->") + sys.stdout.write(data.split("\r")[0]) + self.serial.write(data) + # zzz191021 Affiche ce que l'on a envoyé au NodeMCU + if args.verbose: + print("\n\nzwrite0952: {" + data + "\n}\n") + if check > 0: + self.performcheck(data) + elif not args.bar: + sys.stdout.write(" -> send without check") + + def read(self, length): + return self.serial.read(length) + + def close(self): + self.serial.flush() + self.serial.close() + + +class TcpSocketTransport(AbstractTransport): + def __init__(self, host, port): + self.host = host + self.port = port + self.socket = None + + try: + self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + except socket.error as e: + raise TransportError(e.strerror) + + try: + self.socket.connect((host, port)) + except socket.error as e: + raise TransportError(e.strerror) + # read intro from telnet server (see telnet_srv.lua) + self.socket.recv(50) + + def writeln(self, data, check=1): + if len(data) > 0 and not args.bar: + sys.stdout.write("\r\n->") + sys.stdout.write(data.split("\r")[0]) + self.socket.sendall(data) + if check > 0: + self.performcheck(data) + elif not args.bar: + sys.stdout.write(" -> send without check") + + def read(self, length): + return self.socket.recv(length) + + def close(self): + self.socket.close() + + +def decidetransport(cliargs): + if cliargs.ip: + data = cliargs.ip.split(':') + host = data[0] + if len(data) == 2: + port = int(data[1]) + else: + port = 23 + return TcpSocketTransport(host, port) + else: + return SerialTransport(cliargs.port, cliargs.baud, cliargs.delay) + + +if __name__ == '__main__': + # parse arguments or use defaults + parser = argparse.ArgumentParser(description='ESP8266 Lua script uploader.') + parser.add_argument('--bar', action='store_true', help='Show a progress bar for uploads instead of printing each line') + parser.add_argument('--delay', default=0.03, help='Delay in seconds between each write, default 0.03 sec.', type=float) + parser.add_argument('--delete', default=None, help='Delete a lua/lc file from device.') + parser.add_argument('--ip', default=None, help='Connect via telnet server (--ip IP[:port])') + parser.add_argument('--zrestart', action='store_true', help='Restart the NodeMCU.') + parser.add_argument('-a', '--append', action='store_true', help='Append source file to destination file.') + parser.add_argument('-b', '--baud', default=115200, help='Baudrate, default 115200') + parser.add_argument('-c', '--compile', action='store_true', help='Compile lua to lc after upload') + parser.add_argument('-d', '--dofile', action='store_true', help='Run the Lua script after upload') + parser.add_argument('-e', '--echo', action='store_true', help='Echo output of MCU until script is terminated.') + parser.add_argument('-f', '--src', default='main.lua', help='Source file on computer, default main.lua') + parser.add_argument('-i', '--id', action='store_true', help='Query the modules chip id.') + parser.add_argument('-l', '--list', action='store_true', help='List files on device') + parser.add_argument('-p', '--port', default='/dev/ttyUSB0', help='Device name, default /dev/ttyUSB0') + parser.add_argument('-r', '--restart', action='store_true', help='Restart MCU after upload') + parser.add_argument('-t', '--dest', default=None, help='Destination file on MCU, default to source file name') + parser.add_argument('-v', '--verbose', action='store_true', help="Show progress messages.") + parser.add_argument('-w', '--wipe', action='store_true', help='Delete all lua/lc files on device.') + args = parser.parse_args() + + transport = decidetransport(args) + + if args.bar and not tqdm_installed: + sys.stdout.write("You must install the tqdm library to use the bar feature\n") + sys.stdout.write("To install, at the prompt type: \"pip install tqdm\"\n") + sys.exit(0) + + + if args.list: + # zzz191020 Amélioré la sortie du listing des fichiers + transport.writeln("print('\\n-----');local l = file.list();for k,v in pairs(l) do print(k..', size:'..v)end;print('-----\\n')\r", 0) + while True: + char = transport.read(1) + if char == '' or char == chr(62): # '' or '>' + break + sys.stdout.write(char) + sys.exit(0) + + if args.id: + transport.writeln("=node.chipid()\r", 0) + id="" + while True: + char = transport.read(1) + if char == '' or char == chr(62): + break + if char.isdigit(): + id += char + print("\n"+id) + sys.exit(0) + + # zzz191020 Ajouté la fonction restart seule + if args.zrestart: + transport.writeln("node.restart()\r") + sys.exit(0) + + if args.wipe: + transport.writeln("local l = file.list();for k,v in pairs(l) do print(k)end\r", 0) + file_list = [] + fn = "" + while True: + char = transport.read(1) + if char == '' or char == chr(62): + break + if char not in ['\r', '\n']: + fn += char + else: + if fn: + file_list.append(fn.strip()) + fn = '' + for fn in file_list[1:]: # first line is the list command sent to device + if args.verbose: + sys.stderr.write("Delete file {} from device.\r\n".format(fn)) + transport.writeln("file.remove(\"" + fn + "\")\r") + sys.exit(0) + + if args.delete: + transport.writeln("file.remove(\"" + args.delete + "\")\r") + sys.exit(0) + + if args.dest is None: + args.dest = basename(args.src) + # zzz191020 Affiche le fichier à envoyer + print("File: " + args.src) + + # open source file for reading + try: + try: + f = open(args.src, "rt") + except: + import os + base_dir = os.path.dirname(os.path.realpath(__file__)) + f = open(os.path.join(base_dir, args.src), "rt") + os.chdir(base_dir) + except: + sys.stderr.write("Could not open input file \"%s\"\n" % args.src) + sys.exit(1) + + # Verify the selected file will not exceed the size of the serial buffer. + # The size of the buffer is 256. This script does not accept files with + # lines longer than 230 characters to have some room for command overhead. + num_lines = 0 + for ln in f: + if len(ln) > 230: + sys.stderr.write("File \"%s\" contains a line with more than 240 " + "characters. This exceeds the size of the serial buffer.\n" + % args.src) + f.close() + sys.exit(1) + num_lines += 1 + + # Go back to the beginning of the file after verifying it has the correct + # line length + f.seek(0) + + # set serial timeout + if args.verbose: + sys.stderr.write("Upload starting\r\n") + + # remove existing file on device + if args.append==False: + if args.verbose: + sys.stderr.write("Stage 1. Deleting old file from flash memory") + transport.writeln("file.open(\"" + args.dest + "\", \"w\")\r") + transport.writeln("file.close()\r") + transport.writeln("file.remove(\"" + args.dest + "\")\r") + else: + if args.verbose: + sys.stderr.write("[SKIPPED] Stage 1. Deleting old file from flash memory [SKIPPED]") + + + # read source file line by line and write to device + if args.verbose: + sys.stderr.write("\r\nStage 2. Creating file in flash memory and write first line") + if args.append: + transport.writeln("file.open(\"" + args.dest + "\", \"a+\")\r") + else: + transport.writeln("file.open(\"" + args.dest + "\", \"w+\")\r") + line = f.readline() + if args.verbose: + sys.stderr.write("\r\nStage 3. Start writing data to flash memory...") + if args.bar: + for i in tqdm(range(0, num_lines)): + transport.writer(line.strip()) + line = f.readline() + else: + while line != '': + transport.writer(line.strip()) + line = f.readline() + + # close both files + f.close() + if args.verbose: + sys.stderr.write("\r\nStage 4. Flush data and closing file") + transport.writeln("file.flush()\r") + transport.writeln("file.close()\r") + + # compile? + if args.compile: + if args.verbose: + sys.stderr.write("\r\nStage 5. Compiling") + transport.writeln("node.compile(\"" + args.dest + "\")\r") + transport.writeln("file.remove(\"" + args.dest + "\")\r") + + # restart or dofile + if args.restart: + transport.writeln("node.restart()\r") + + if args.dofile: # never exec if restart=1 + transport.writeln("dofile(\"" + args.dest + "\")\r", 0) + + if args.echo: + if args.verbose: + sys.stderr.write("\r\nEchoing MCU output, press Ctrl-C to exit") + while True: + sys.stdout.write(transport.read(1)) + + # close serial port + transport.close() + + # flush screen + sys.stdout.flush() + sys.stderr.flush() + if not args.bar: + sys.stderr.write("\r\n--->>> All done <<<---\r\n") diff --git a/WIFI_sniffer/msl_project/telnet_srv2.lua b/WIFI_sniffer/msl_project/telnet_srv2.lua new file mode 100644 index 0000000..19920f2 --- /dev/null +++ b/WIFI_sniffer/msl_project/telnet_srv2.lua @@ -0,0 +1,93 @@ +-- Serveur telnet pour connexion en remote WIFI, NOUVELLE VERSION ! +-- source: https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/telnet/telnet.lua + +print("\n telnet_srv2.lua zf191020.1932 \n") + +local node, table, tmr, wifi, uwrite, tostring = + node, table, tmr, wifi, uart.write, tostring + +local function telnet_listener(socket) + local insert, remove, concat, heap, gc = + table.insert, table.remove, table.concat, node.heap, collectgarbage + local fifo1, fifo1l, fifo2, fifo2l = {}, 0, {}, 0 + local s -- s is a copy of the TCP socket if and only if sending is in progress + local wdclr, cnt = tmr.wdclr, 0 + local function debug(fmt, ...) + if (...) then fmt = fmt:format(...) end + uwrite(0, "\r\nDBG: ",fmt,"\r\n" ) + cnt = cnt + 1 + if cnt % 10 then wdclr() end + end + + local function flushGarbage() + if heap() < 13440 then gc() end + end + + local function sendLine() + if not s then return end + + if fifo2l + fifo1l == 0 then -- both FIFOs empty, so clear down s + s = nil + return + end + flushGarbage() + if #fifo2 < 4 then -- Flush FIFO1 into FIFO2 + insert(fifo2,concat(fifo1)) + fifo2l, fifo1, fifo1l = fifo2l + fifo1l, {}, 0 + end + local rec = remove(fifo2,1) .. (remove(fifo2,1) or '') .. + (remove(fifo2,1) or '') .. (remove(fifo2,1) or '') + fifo2l = fifo2l - #rec + flushGarbage() + s:send(rec) + end + + local F1_SIZE = 256 + + local function queueLine(str) + while #str > 0 do -- this is because str might be longer than the packet size! + local k, l = F1_SIZE - fifo1l, #str + local chunk + if #fifo1 >= 32 or (k < l and k < 16) then + insert(fifo2, concat(fifo1)) + fifo2l, fifo1, fifo1l, k = fifo2l + fifo1l, {}, 0, F1_SIZE + end + if l > k+16 then -- also tolerate a size overrun of 16 bytes to avoid a split + chunk, str = str:sub(1,k), str:sub(k+1) + else + chunk, str = str, '' + end + insert(fifo1, chunk) + fifo1l = fifo1l + #chunk + end + if not s and socket then + s = socket + sendLine() + else + flushGarbage() + end + end + + local function receiveLine(s, line) + node.input(line) + end + + local function disconnect(s) + fifo1, fifo1l, fifo2, fifo2l, s = {}, 0, {}, 0, nil + node.output(nil) + end + + --zzz + local function zconnection(s) + print("Welcome to NodeMCU world.") + end + + socket:on("connection", zconnection) + socket:on("receive", receiveLine) + socket:on("disconnection", disconnect) + socket:on("sent", sendLine) + node.output(queueLine, 0) +end + +net.createServer(net.TCP, 180):listen(23, telnet_listener) +print("Telnet server running...\nUsage: telnet -rN ip\n") diff --git a/WIFI_sniffer/msl_project/test_toto.sh b/WIFI_sniffer/msl_project/test_toto.sh new file mode 100755 index 0000000..7b44c7a --- /dev/null +++ b/WIFI_sniffer/msl_project/test_toto.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# Petit script pour tester tout le binz via le WIFI +#zf191020.1954 + +# S'il y a des erreurs lors d'un téléchargement, il faut simplement augmenter un peu le délai ! + +IP="192.168.0.157" + +chmod +x luatool.py + +./luatool.py --ip $IP -l +read -p "continue ?" +./luatool.py --ip $IP --delete toto.lua +read -p "continue ?" +./luatool.py --ip $IP -l +read -p "continue ?" +./luatool.py --ip $IP -f toto.lua -d +read -p "continue ?" +./luatool.py --ip $IP -l +read -p "continue ?" +./luatool.py --ip $IP --delete toto.lua +read -p "continue ?" +./luatool.py --ip $IP -l diff --git a/WIFI_sniffer/msl_project/toto.lua b/WIFI_sniffer/msl_project/toto.lua new file mode 100644 index 0000000..6678736 --- /dev/null +++ b/WIFI_sniffer/msl_project/toto.lua @@ -0,0 +1,3 @@ +print("c'est toto !") + +boottimer1:unregister() diff --git a/WIFI_sniffer/msl_project/upload.sh b/WIFI_sniffer/msl_project/upload.sh new file mode 100644 index 0000000..3f643a5 --- /dev/null +++ b/WIFI_sniffer/msl_project/upload.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# Petit script pour télécharger facilement tout le binz +#zf191028.1404 + +# S'il y a des erreurs lors d'un téléchargement, il faut simplement augmenter un peu le délai ! +# Il est préférable de télécharger en premier les *gros* fichiers .lua ! + +# ATTENTION: cela efface tout le NodeMCU ! + +luatool_tty="/dev/cu.wchusbserial1410" + +echo "" +read -p "ATTENTION, cela va effacer tout le NodeMCU !" +read -p "Etes-vous vraiment certain ?" + +chmod +x luatool.py + +./luatool.py --port $luatool_tty -w +./luatool.py --port $luatool_tty -l +read -p "Est-ce bien vide ?" + +./luatool.py --port $luatool_tty --bar --delay 0.06 -f telnet_srv2.lua +./luatool.py --port $luatool_tty --bar --delay 0.03 -f flash_led_xfois.lua +./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_info.lua +./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_cli_start.lua +./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_cli_conf.lua +./luatool.py --port $luatool_tty --bar --delay 0.001 -f wifi_ap_stop.lua +./luatool.py --port $luatool_tty --bar --delay 0.001 -f secrets_energy.lua +./luatool.py --port $luatool_tty --bar --delay 0.001 -f head.lua +./luatool.py --port $luatool_tty --bar --delay 0.001 -f dir.lua +./luatool.py --port $luatool_tty --bar --delay 0.001 -f cat.lua +./luatool.py --port $luatool_tty --bar --delay 0.001 -f boot2.lua +./luatool.py --port $luatool_tty --bar --delay 0.001 -f boot.lua + +./luatool.py --port $luatool_tty -l +read -p "Pas eu d'erreur, on part à fond avec le init.lua ?" +./luatool.py --port $luatool_tty --bar --delay 0.001 -f initz.lua -t init.lua +echo -e "\nC'est tout bon ;-)" diff --git a/WIFI_sniffer/msl_project/wifi_ap_stop.lua b/WIFI_sniffer/msl_project/wifi_ap_stop.lua new file mode 100644 index 0000000..2738627 --- /dev/null +++ b/WIFI_sniffer/msl_project/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/WIFI_sniffer/msl_project/wifi_cli_conf.lua b/WIFI_sniffer/msl_project/wifi_cli_conf.lua new file mode 100644 index 0000000..559916b --- /dev/null +++ b/WIFI_sniffer/msl_project/wifi_cli_conf.lua @@ -0,0 +1,11 @@ +-- Petit script pour configurer le client WIFI du NodeMCU + +function wifi_cli_conf() + print("\n wifi_cli_conf.lua zf190726.1912 \n") + + -- les secrets sont maintenant initialisés par boot.lua ! + wifi.sta.config{ssid=cli_ssid, pwd=cli_pwd, save=true} +end + +wifi_cli_conf() +wifi_cli_conf=nil diff --git a/WIFI_sniffer/msl_project/wifi_cli_start.lua b/WIFI_sniffer/msl_project/wifi_cli_start.lua new file mode 100644 index 0000000..045957e --- /dev/null +++ b/WIFI_sniffer/msl_project/wifi_cli_start.lua @@ -0,0 +1,20 @@ +-- Petit script pour connecter le NodeMCU sur un AP Wifi avec l'accompte sauvé en EEPROM + +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_cli_start() +wifi_cli_start=nil diff --git a/WIFI_sniffer/msl_project/wifi_info.lua b/WIFI_sniffer/msl_project/wifi_info.lua new file mode 100644 index 0000000..1bc5c41 --- /dev/null +++ b/WIFI_sniffer/msl_project/wifi_info.lua @@ -0,0 +1,33 @@ +-- Petit script pour afficher les infos actuel du WIFI +print("\n wifi_info.lua zf190727.1220 \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()) + local sta_config=wifi.sta.getconfig(true) + print("Current client config:") + print("\tssid:", sta_config.ssid) + print("\tpassword:", sta_config.pwd) + print("\tbssid:", sta_config.bssid) +elseif zmodewifi == wifi.SOFTAP then + print("WIFI mode AP") + print("AP MAC:\n",wifi.ap.getmac()) + print("AP IP:\n",wifi.ap.getip()) + print("AP Connect:\n",wifi.ap.getconfig()) +elseif zmodewifi == wifi.STATIONAP then + print("WIFI mode CLI+AP") + print("Connected IP:\n",wifi.sta.getip()) + local sta_config=wifi.sta.getconfig(true) + print("Current client config:") + print("\tssid:", sta_config.ssid) + print("\tpassword:", sta_config.pwd) + print("\tbssid:", sta_config.bssid) + print("AP MAC: ", wifi.ap.getmac()) + print("AP IP: ", wifi.ap.getip()) +end