Commencé à tester le principe d'un web service GET avec mon petit framework ASP ZYX, cela fonctionne bien mais pas encore terminé

This commit is contained in:
Christian Zufferey
2019-07-09 22:23:54 +02:00
parent cc5f47d27f
commit 4c756652d1
11 changed files with 75 additions and 13 deletions

View File

@@ -1,14 +1,23 @@
# temp_zf
## Petit projet pour mesurer la température, avec des capteurs de température 1-Wire DS18B20, et l'afficher sur ThingSpeak
Petit projet pour mesurer la température, avec des capteurs de température 1-Wire DS18B20, et l'afficher sur ThingSpeak.
## Astuces de lecture
Tous se passe dans: a1, a2, a3 et a4.lua !
Dans ce projet il y a 3x NodeMCU séparés qui mesurent 3x points de température séparées:
* température intérieure dans la chambre à coucher à l'étage
* température extérieur au rez nord
* température extérieur au rez sud
Le NodeMCU de la mesure intérieure fait office de concentrateur des deux mesures de températures extérieures et envoie en même temps les 3x mesures de températures à Thingspeak, afin de les avoir tous dans le même channel. Cela permet de mesurer des températures éloignées dans la maison en utilisant le WIFI comme câble de liaison entre les sondes !
Tous se passe dans les scripts a1, a2, a3 et a4.lua
## Installation
Il faut *flasher* le NodeMCU avec ce firmware:
https://github.com/zuzu59/NodeMCU_Lua/blob/master/Firmware/nodemcu-master-20-modules-2019-07-01-06-35-13-float.bin
@@ -17,7 +26,8 @@ https://github.com/zuzu59/NodeMCU_Lua/blob/master/Firmware/nodemcu-master-20-mod
Avec ces modules:
```
adc ds18b20 file gpio http i2c mdns mqtt net node ow pcm rtctime sntp spi tmr uart wifi ws2812
adc ds18b20 file gpio http i2c mdns mqtt net
node ow pcm rtctime sntp spi tmr uart wifi ws2812
```
@@ -26,4 +36,4 @@ adc ds18b20 file gpio http i2c mdns mqtt net node ow pcm rtctime sntp spi tmr ua
https://thingspeak.com/channels/817940
zf190706.1450
zf190709.2135

View File

@@ -0,0 +1 @@
-- programme pour faire un test depuis de le webide

View File

@@ -0,0 +1 @@
-- programme pour faire un test depuis de le webide

View File

@@ -0,0 +1 @@
-- programme pour faire un test depuis de le webide

View File

@@ -0,0 +1 @@
-- programme pour faire un test depuis de le webide

View File

@@ -0,0 +1 @@
-- programme pour faire un test depuis de le webide

View File

@@ -1,6 +1,6 @@
-- Scripts à charger après le boot pour démarrer son appli
print("\n boot.lua zf190706.1429 \n")
print("\n boot.lua zf190709.2150 \n")
function heartbeat()
f= "flash_led_xfois.lua" if file.exists(f) then dofile(f) end
@@ -22,8 +22,8 @@ f= "telnet_srv2.lua" if file.exists(f) then dofile(f) end
f= "web_ide2.lua" if file.exists(f) then dofile(f) end
f= "web_srv2.lua" if file.exists(f) then dofile(f) end
f= "a3.lua" if file.exists(f) then dofile(f) end
f= "a4.lua" if file.exists(f) then dofile(f) end
--f= "a3.lua" if file.exists(f) then dofile(f) end
--f= "a4.lua" if file.exists(f) then dofile(f) end
--f= "set_time.lua" if file.exists(f) then dofile(f) end
--f= "dsleep.lua" if file.exists(f) then dofile(f) end

View File

@@ -1,6 +1,6 @@
-- petit script de serveur WEB avec Active Server Page ZYX
print("\n web_srv2.lua zf190422.1135 \n")
print("\n web_srv2.lua zf190709.2209 \n")
ztemp=12

View File

@@ -1,15 +1,17 @@
-- Petit script pour configurer le client WIFI du NodeMCU
function wifi_cli_conf()
print("\n wifi_cli_conf.lua zf190706.1359 \n")
print("\n wifi_cli_conf.lua zf190709.2147 \n")
--credentials par défaut
--secrets par défaut
--cli_ssid="3g-s7"
cli_ssid="3G-zf"
cli_pwd="12234567"
--ses propre credentials
f= "secrets_temp_zf.lua" if file.exists(f) then dofile(f) end
--ses propres secrets
f= "secrets_temp_zf_int_1er.lua" if file.exists(f) then dofile(f) end
f= "secrets_temp_zf_out_nord.lua" if file.exists(f) then dofile(f) end
f= "secrets_temp_zf_out_sud.lua" if file.exists(f) then dofile(f) end
wifi.sta.config{ssid=cli_ssid, pwd=cli_pwd, save=true}
end

View File

@@ -7,12 +7,13 @@
</head>
<body>
<h1>ESP8266 home page 190422.1052</h1>
<h1>ESP8266 home page 190709.2214</h1>
<h2>Différentes pages HTML:</h2>
<h3>
<a href="z_page1.html">Page 1, affichage de la température dynamique en code Lua inline.</a><br>
<a href="z_page2.html">Page 2, tableau dynamique écrit en Lua inline.</a><br>
<a href="z_page3.html">Page 3, affichage du capteur non linéaire corrigé.</a><br>
<a href="z_page4.html?toto=123&tutu=234&titi=345">Page 4, web service concentrateur de mesures de température.</a><br>
<a href="page_qui_existe_pag.html">Page qui n'existe pas !</a><br>
</h3>
</body>

View File

@@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta charset='utf-8' name='viewport' content='width=device-width, initial-scale=1.0'>
<title>ESP8266 page 3</title>
</head>
<body>
<h1>ESP8266 page 4 190709.2221</h1>
<br>
Web service concentrateur de mesures de température !<br>
<a href="/">Retour à la home page...</a><br><br><br>
Test d'un web service qui fonctionne avec l'Active Server Page ZYX.<br><br>
Le code Lua pour afficher ce résultat se trouve dans le code HTML de cette page et est exécuté sur le NodeMCU.<br>
Les données viennent du NodeMCU !<br><br>
<%
zout("Il reste: "..node.heap().." de RAM !<br><br>\n")
%>
Les arguments du web service (GET) sont:<br><br>
<%
if (vars ~= nil) then
for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
_GET[k] = v
zout(k..": "..v.."<br>")
end
end
%>
<br>Yeah... cela fonctionne vachement bien !<br><br>
<%
zout("Il reste: "..node.heap().." de RAM !<br><br>\n")
%>
</body>
</html>