Terminé d'écrire la documentation pour la mesure d'humidité avec le HTU21D ;-)
This commit is contained in:
@@ -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.
|
||||
|
||||
|
||||

|
||||
|
||||
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
|
||||
|
||||
|
||||
<br><bR>
|
||||
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. <br>
|
||||
<br><br>
|
||||
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. <br>
|
||||
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.
|
||||
|
||||

|
||||
@@ -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 !<br>
|
||||
@@ -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.
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||

|
||||
|
||||
### Affichage des températures en local sur le NodeMCU
|
||||

|
||||
|
||||
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:
|
||||
|
||||
29
Mesures/humidity/bolo/_secrets_project.lua_
Normal file
29
Mesures/humidity/bolo/_secrets_project.lua_
Normal file
@@ -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
|
||||
23
Mesures/humidity/bolo/_secrets_wifi.lua_
Normal file
23
Mesures/humidity/bolo/_secrets_wifi.lua_
Normal file
@@ -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()
|
||||
30
Mesures/humidity/bolo/disp_temp.html
Normal file
30
Mesures/humidity/bolo/disp_temp.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr" dir="ltr">
|
||||
|
||||
<head>
|
||||
<meta charset='utf-8' name='viewport' content='width=device-width, initial-scale=1.0'>
|
||||
<title>Affichage des températures</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Affichage des températures 190727.1349</h1>
|
||||
<br>
|
||||
Les températures mesurées sont:<br>
|
||||
|
||||
|
||||
<%
|
||||
if (ztemp1 ~= nil) then
|
||||
zout("<br>Température intérieure chambre à coucher "..ztemp1.."°C")
|
||||
end
|
||||
if (ztemp2 ~= nil) then
|
||||
zout("<br>Température extérieure sud (nodemcu 29) "..ztemp2.."°C")
|
||||
end
|
||||
if (ztemp3 ~= nil) then
|
||||
zout("<br>Température extérieure nord (nodemcu 30) "..ztemp3.."°C")
|
||||
end
|
||||
|
||||
zout("<br><br>RAM: "..node.heap().."<br>")
|
||||
%>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user