From 2e61241c8c6f8c4f44a036bae24ae2cc8375d184 Mon Sep 17 00:00:00 2001 From: Christian Zufferey Date: Thu, 19 Dec 2019 19:16:18 +0100 Subject: [PATCH] =?UTF-8?q?Termin=C3=A9=20d'=C3=A9crire=20la=20documentati?= =?UTF-8?q?on=20pour=20la=20mesure=20d'humidit=C3=A9=20avec=20le=20HTU21D?= =?UTF-8?q?=20;-)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mesures/humidity/bolo/README.md | 72 ++++++++------------- Mesures/humidity/bolo/_secrets_project.lua_ | 29 +++++++++ Mesures/humidity/bolo/_secrets_wifi.lua_ | 23 +++++++ Mesures/humidity/bolo/disp_temp.html | 30 +++++++++ 4 files changed, 109 insertions(+), 45 deletions(-) create mode 100644 Mesures/humidity/bolo/_secrets_project.lua_ create mode 100644 Mesures/humidity/bolo/_secrets_wifi.lua_ create mode 100644 Mesures/humidity/bolo/disp_temp.html diff --git a/Mesures/humidity/bolo/README.md b/Mesures/humidity/bolo/README.md index 4017118..09ecd88 100644 --- a/Mesures/humidity/bolo/README.md +++ b/Mesures/humidity/bolo/README.md @@ -2,7 +2,6 @@ Petit projet pour mesurer l'humidité et la température pour l'afficher sur Grafana avec une DB InfluxDB. Comme par exemple pour monitorer l'humidité d'un local au cours du temps. - ![Image](https://raw.githubusercontent.com/zuzu59/NodeMCU_Lua/master/Mesures/humidity/bolo/img/Constellation_sondes_mesures.jpg) Constellation de sondes de mesures @@ -16,12 +15,11 @@ Montage du capteur HTU21D directement sur le NodeMCU, chose à ne PAS faire, car Exemple de sortie du Grafana -

-On peut voir ici, avec ce projet assez complet, toutes les possibilités offertes de la programmation des NodeMCU en LUA, en mode événementiel.
+

+On peut voir ici, avec ce projet assez complet, toutes les possibilités offertes de la programmation d'un NodeMCU en LUA, en mode événementiel.
Choses qui ne seraient pas possible si on l'avait fait en C++ (mode Arduino), comme par exemple: -* serveur WEB Active Server Pages ZYX, permet de faire des pages HTML dynamiques avec du code LUA in line. Les pages HTML sont sauve dans la FLASH du NodeMCU -* serveur WEB service pour le HUB concentrateur de mesures de différents NodeMCU (API GET) +* serveur WEB *Active Server Pages ZYX*, permet de faire des pages HTML dynamiques avec du code LUA in line. Les pages HTML sont sauvées dans le système de fichiers de la FLASH du NodeMCU * serveur WEB pour l'affichage de l'humidité et de la température * serveur WEB pour l'IDE, modification du code source en remote directement depuis une page WEB, pas besoin d'IDE * crontab, horloge pour les mesures @@ -31,6 +29,7 @@ Toutes les fonctions sont bien séparées dans des scripts, cela *complexifie* l ## Astuces de mesures + On utilise un tout petit capteur, le **HTU21D**, d'humidité et de température I2C. ![Image](https://raw.githubusercontent.com/zuzu59/NodeMCU_Lua/master/Mesures/humidity/bolo/img/HTU21D.jpg) @@ -54,23 +53,22 @@ https://cdn.sparkfun.com/assets/6/a/8/e/f/525778d4757b7f50398b4567.pdf Il faut *flasher* le NodeMCU avec ce firmware: -https://github.com/zuzu59/NodeMCU_Lua/blob/master/Firmware/nodemcu-master-11-modules-2019-12-15-16-45-47-float.bin +https://github.com/zuzu59/NodeMCU_Lua/blob/master/Firmware/nodemcu-master-18-modules-2019-12-17-20-28-32-float.bin Avec ces modules: ``` -bit,file,gpio,http,i2c,net,node,rtctime,tmr,uart,wifi +adc,ads1115,bit,enduser_setup,file,gpio,http,i2c,net,node,ow,rtctime,si7021,sntp,spi,tmr,uart,wifi ``` - ## Utilisation +### Visualisation des données dans Grafana Exemple de sortie dans Grafana https://snapshot.raintank.io/dashboard/snapshot/LUqdTJYLNuC6WatmJoN21yQSEQ0UJ0oy - ### Distribution des rôles de NodeMCU Comme on peut avoir plusieurs points de mesures à différents endroit dans le local, il n'y a qu'un seul fichier de *secrets*. C'est dans ce fichier de *secrets* qu'il y a l'information de l'adresse IP de la base de donnée InfluxDB et c'est l'id des NodeMCU qui sont enregistrés dans la DB InfluxDB !
@@ -80,69 +78,53 @@ secrets_projet.lua ``` +### Exportation des données en CSV depuis Grafana -**ATTENTION, readme pas encore terminé, il faut encore modifier le readme depuis ici ! zf190922.1740** +Quand on a trouvé la mesure qui nous convient sur Grafana, on peut l'exporter en CSV pour en faire un rapport dans un tableur par exemple. -
-
-
-
-
-
+![Image](https://raw.githubusercontent.com/zuzu59/NodeMCU_Lua/master/Mesures/humidity/bolo/img/exportation_data_csv.jpg) -### Affichage des températures en local sur le NodeMCU +![Image](https://raw.githubusercontent.com/zuzu59/NodeMCU_Lua/master/Mesures/humidity/bolo/img/coisir_series_as_columns.jpg) -On peut lire la température directement sur le NodeMCU au moyen de cet url (il faut modifier l'adresse IP du NodeMCU en question): -nodemcu 28 int, http://192.168.0.171/disp_temp.html +### Affichage des températures/humidité en local sur le NodeMCU -nodemcu 29 sud, http://192.168.0.180/disp_temp.html +On peut lire la température et l'humidité directement sur le NodeMCU au moyen de cette url (il faut modifier l'adresse IP du NodeMCU en question): -nodemcu 30 nord, http://192.168.0.105/disp_temp.html +``` +http://192.168.0.xxx/disp_temp.html +``` ### Affichage du petit serveur web du NodeMCU_Lua Chaque NodeMCU a son propre serveur WEB, on peut l'accéder simplement depuis son adresse IP: -nodemcu 28 int, http://192.168.0.171 - -nodemcu 29 sud, http://192.168.0.180 - -nodemcu 30 nord, http://192.168.0.105 +``` +http://192.168.0.xxx +``` ### Modification du code source du NodeMCU en remote -Très pratique pour le debug, on peut directement modifier le code source Lua du NodeMCU en remote avec cet url: +Très pratique pour le debug, on peut directement modifier le code source Lua du NodeMCU en remote avec ce petit WEB IDE: -nodemcu 28 int, http://192.168.0.171:88 - -nodemcu 29 sud, http://192.168.0.180:88 - -nodemcu 30 sord, http://192.168.0.105:88 +``` +http://192.168.0.xxx:88 +``` ### Utilisation de la console du NodeMCU en remote Très pratique pour le debug, on peut accéder à la console du NodeMCU en remote avec telnet: -nodemcu 28 int, **telnet -rN 192.168.0.171** - -nodemcu 29 sud, **telnet -rN 192.168.0.180** - -nodemcu 30 nord, **telnet -rN 192.168.0.105** +``` +telnet -rN 192.168.0.xxx +``` -## Visualisation sur ThingSpeak -La totale en détail -https://thingspeak.com/channels/817940 -Seulement la corrélation entre les trois température -https://thingspeak.com/apps/plugins/300559 - - -zf191219.1642 +zf191219.1912 pense bête: diff --git a/Mesures/humidity/bolo/_secrets_project.lua_ b/Mesures/humidity/bolo/_secrets_project.lua_ new file mode 100644 index 0000000..098e973 --- /dev/null +++ b/Mesures/humidity/bolo/_secrets_project.lua_ @@ -0,0 +1,29 @@ +-- Petit script pour configurer les secrets dans ce projet +-- et que l'on n'aimerait pas être exportés sur Internet (github) +-- Il faut donc modifier le .gitignore avec secrets*.lua +-- il faut le renommer en 'secrets_project.lua' et sera exécuté +-- par 'boot2.lua' au moment du boot + +function secrets_project() + print("\n secrets_project.lua zf191218.0818 \n") + + influxdb_url="http://www.xxx.ml:8086/write?db=xxx&u=admin&p=xxx" + print("influxdb_url: "..influxdb_url) + + th_id = "generic" + + if node.chipid() == 3049014 then th_id = "th0" end + if node.chipid() == 3049553 then th_id = "th1" end + if node.chipid() == 14975023 then th_id = "th2" end + if node.chipid() == 14972372 then th_id = "th3" end + if node.chipid() == 12557128 then th_id = "th4" end + if node.chipid() == 3048165 then th_id = "th5" end + if node.chipid() == 14973009 then th_id = "th6" end + + + + print("th_id: "..th_id) + +end +secrets_project() +secrets_project=nil diff --git a/Mesures/humidity/bolo/_secrets_wifi.lua_ b/Mesures/humidity/bolo/_secrets_wifi.lua_ new file mode 100644 index 0000000..387f706 --- /dev/null +++ b/Mesures/humidity/bolo/_secrets_wifi.lua_ @@ -0,0 +1,23 @@ +-- Petit script pour configurer les secrets utilisés pour le wifi +-- et que l'on n'aimerait pas être exportés sur Internet (github) +-- Il faut donc modifier le .gitignore avec secrets*.lua +-- il faut le renommer en 'secrets_wifi.lua' et sera exécuté +-- par 'wifi_init.lua' une fois pour la configuration du WIFI + +function secrets_wifi() + print("\n secrets_wifi.lua zf191108.1744 \n") + + -- cli_ssid="3g-s7" + -- cli_ssid="3G-zf2" + -- cli_ssid="apzuzu6_EXT" + cli_ssid="apzuzu6" + cli_pwd="xxx" + + -- cli_ssid="voie4." + -- cli_pwd="xxx" + + ap_ssid="NodeMCU" + ap_pwd="xxx" + +end +secrets_wifi() diff --git a/Mesures/humidity/bolo/disp_temp.html b/Mesures/humidity/bolo/disp_temp.html new file mode 100644 index 0000000..ffd491c --- /dev/null +++ b/Mesures/humidity/bolo/disp_temp.html @@ -0,0 +1,30 @@ + + + + + + Affichage des températures + + + +

Affichage des températures 190727.1349

+
+ Les températures mesurées sont:
+ + + <% + if (ztemp1 ~= nil) then + zout("
Température intérieure chambre à coucher "..ztemp1.."°C") + end + if (ztemp2 ~= nil) then + zout("
Température extérieure sud (nodemcu 29) "..ztemp2.."°C") + end + if (ztemp3 ~= nil) then + zout("
Température extérieure nord (nodemcu 30) "..ztemp3.."°C") + end + + zout("

RAM: "..node.heap().."
") + %> + + +