Petite sonde température, humidité

Portrait de Walter

Bonjour à tous,
Voici mon projet quasiment finalisé d'une sonde de température, humidité connecté.
A terme je rajouterais une sonde d'humidité du sol.

J'utilise un esp8266 pour ca connectivité wifi intégré.
Le wifi étant très consommateur d'énergie, une petite batterie au littium de 700mah, ne tiens pas très longtemps, il est donc nécessaire de passer en mode sommeil profond lorsque l'on ne fait pas de mesure/envois, mais cela ne suffis pas à avoir une longue plage d'utilisation.
J'ai donc ajouté un panneau solaire, pour recharger la batterie.

La mesure et l'envois ne pose pas de soucis majeur, un dht.read et MQTT.publish suffisent.
Par contre je voulais pouvoir changer les paramètres de connexion au wifi ou service mydevices.com, sans reprogrammation.
J'ai donc mis un bouton qui fait passer l'ESP en mode station/point d'accés, en point d'accés, en point d'accés, j'attends une requête HTTP, pour renvoyer une page HTML avec un formulaire de saisie des données attendues et les enregistrer dans un fichier de configuration.
En mode station, je lis le fichier de configuration pour pouvoir me connecter au wifi et à mydevices.com.
Je n'ai pas encore réintégré les informations de mydevices.com qui reste en dure pour l'instant dans le programme.

Pour envoyé et consulté les données je passe par le service mydevices.com et qui utilise le protocole MQTT.
J'utilise la librairie fournis avec nodeMCU pour utiliser ce protocole, cela se fait donc en quelque ligne de code.
Les informations envoyées à ce jour sont l'humidité, la température et la tension de la batterie.
Je fais une prise de mesures toutes les 15min, mais à terme, je passerais à 1h ou 2h.

Les montages:

mqttsonde_bb.png
 

Vos remarques pouvant améliorer mon projet sont bien évidement les bien venus.
Le code Lua devrais suivre très prochainement.

Portrait de Jetfuzz

Très chouette, je suis à peu près sur la même chose, température, humidité, avec en plus une mesure de poids, pour surveiller mes ruches, avec une connexion "lora".
je ne connaissais pas mydevice.com, c'est juste top pour mon appli. Merci.

Cordialement.

jettfuzz

Portrait de Walter

Merci,
J'ai commandé un puce lora, pour tester, que je viens de recevoir, tu utilise un service en particulier, ou tu as un routeur à toi?
Sympa, la ruche connectée :)

Si tu as un un PC, rasberry, un serveur dédié de dispo, tu peux installer un borkeur MQTT dessus.

Portrait de Jetfuzz

hello
je n'ai pas encore implementé lora, pour l'instant j'ai les différentes valeurs sur un écran LCD.
Pour être franc, je suis une quiche en soft, ca veut pas rentrer dans ma petite tête, je suis spécialisé hardware, 26 ans de métier... et dans la même boite...
Donc oui je découvre beaucoup de chose actuellement.
mais par contre oui, j'ai un serveur  (pas a moi, mais à ma disposition), donc vais explorer cette piste aussi. Merci
J'aime pas ne pas comprendre, donc je fais en sorte d'essayé,et lorsque j'y arrive, Ben je suis vachement fier de moi.
 

Portrait de Walter

Ha dommage j'aimerais bien avoir des retours sur l'utilisations du lora.
 

Le principal c'est d'avancer, après le niveau importe peu.

Portrait de brossden

Walter sur le titre au moins ne fait pas de faute s'il te plait !

"Températue" avec un R ce serait mieux

Portrait de Walter

Corrigé, enfin j'espère, parce que l'orthographe n'est pas mon fort :)

Portrait de brossden

J'avais cru comprendre !    :o)

Portrait de brossden

Le schéma de walter me semble bien compliqué,il y a moyen de faire beaucoup plus simple et moins énergivore mais bon c'est juste mon avis et de plus je ne connais rien au LUA.

Portrait de Walter

Je ne pense pas que le langage utilisé est un impacte sur le schéma, en tout cas je n'ai fait mon montage en fonction de ça.
J'ai des connaissances limitée en électronique, donc j'ai fit le montage en fonction de ce que j'ai lu et d'autre projet.
Donc si tu pense que je peux améliorer celui-ci, ne te prive pas, je suis demandeur d'apprendre.
Surtout que la consommation électrique est justement ce qui me pose le plus de problème avec ce projet.

Portrait de brossden

Un Wemos d1 mini :LOLIN D1 mini V3.1.0-WEMOS WIFI Internet de Choses développement conseil basé ESP8266 4 mb MicroPython Nodemcu Arduino Compatibleconsommation en veille profonde  15 µA

Un panneau Solaire 5 V batterie sortie USB : https://ae01.alicdn.com/kf/HTB1QyOpn7yWBuNjy0Fpq6yssXXaP/Portable-Solar-Power-Bank-30000mah-Waterproof-External-Battery-Backup-Powerbank-30000-mah-Phone-Battery-Charger-LED.jpg_220x220.jpghttps://ae01.alicdn.com/kf/HTB1QyOpn7yWBuNjy0Fpq6yssXXaP/Portable-Solar-Power-Bank-30000mah-Waterproof-External-Battery-Backup-Powerbank-30000-mah-Phone-Battery-Charger-LED.jpg_220x220.jpghttps://ae01.alicdn.com/kf/HTB1QyOpn7yWBuNjy0Fpq6yssXXaP/Portable-Solar-Power-Bank-30000mah-Waterproof-External-Battery-Backup-Powerbank-30000-mah-Phone-Battery-Charger-LED.jpg_220x220.jpghttps://ae01.alicdn.com/kf/HTB1QyOpn7yWBuNjy0Fpq6yssXXaP/Portable-Solar-Power-Bank-30000mah-Waterproof-External-Battery-Backup-Powerbank-30000-mah-Phone-Battery-Charger-LED.jpg_220x220.jpghttps://ae01.alicdn.com/kf/HTB1QyOpn7yWBuNjy0Fpq6yssXXaP/Portable-Solar-Power-Bank-30000mah-Waterproof-External-Battery-Backup-Powerbank-30000-mah-Phone-Battery-Charger-LED.jpg_220x220.jpghttps://ae01.alicdn.com/kf/HTB1QyOpn7yWBuNjy0Fpq6yssXXaP/Portable-Solar-Power-Bank-30000mah-Waterproof-External-Battery-Backup-Powerbank-30000-mah-Phone-Battery-Charger-LED.jpg_220x220.jpghttps://ae01.alicdn.com/kf/HTB1QyOpn7yWBuNjy0Fpq6yssXXaP/Portable-Solar-Power-Bank-30000mah-Waterproof-External-Battery-Backup-Powerbank-30000-mah-Phone-Battery-Charger-LED.jpg_220x220.jpg

Une sonde  hygromètrique + température : La tienne

Un Bouton poussoir : le tien

Trois bouts de fil le tout pour environ 16.00 € pas de résistance, pas de transistor pas de régulateur etc..

Quatre composants suffisent.

Pour ce qui est de la LED tu peux utiliser celle qui est sur tout les modules Arduino et qui s'appellent toujours "LED_BUILTIN"

Portrait de Jetfuzz

Bonjour

Brossden, la batterie de secours et une bonne idée,

J'ai testé, mais ,eh oui ya un mais, elles (du moins celles que j'ai tester, coupent la sortie lorsque le courant consommé est trop faible, pour exemple le devduino avec le software de démo se coupe après 10 secondes.

Avec le module wifi plus de soucis, mais dès que  tu mets le tout en veille, ben rideaux l'accu se coupe, et effectivement tu consommes plus rien !!

Cordialement

Jetfuzz

Portrait de brossden

Jetfuss j'aimerais que tu m'oublies !

Portrait de Jetfuzz

Bonjour.

Désolé Walter, mais la c'est trop.
on est sur un forum de discussion, pas une autocratie.....

SPY a écrit:

Pour ce qui est de Jetfuss c'est quelqu'un qui est né avec un handicap, pas de comprenette !

Brossden a écrit

Jetfuss j'aimerais que tu m'oublies !

C'est JETFUZZ avec 2 Z, pas 2 S

"Deux personnes" qui écrivent mal et de la même façon mon pseudo, qui m'insultent.

Je pense que les règles du forum sont largement bafouées, Monsieur le modérateur.

 

Portrait de brossden

Jetfuss pour ma part je ne t'insulte pas je dis simplement ce que je pense de toi !Mais je te vois si faible que tu demandes je ne sais trop quoi à une tierce personne. Tu es pathétique.

Portrait de Walter

Comme Jetfuzz quand j'ai testé avec une batterie de 10000mah, elle s'éteint lorsque je passe en DeepSleep.
Tu es sûre que celle que tu propose n'a pas ce soucis ?

J'aimerais maîtriser le "form factor" et ce genre de grosse batterie est très limitantes.
Mais surtout je veux suivre le niveau de batterie.

J'attends malheureusement toujours que Amazon daigne bien livrer mon nouveau multimètre pour mesurer ma consommation, avec mon propre régulateur MCP1700.
Avec le régulateur interne, mon mini multimètre usb m'indique 0, mais il ne descend pas en dessous du mA.

J'ai des Wemos d1 mini, mais je n'ai pas encore pu les tester, surtout au niveau du DeepSleep, qui nécessite sur ma carte de dev actuellement enfichée, d'avoir EN et RST au même niveau et des résistances sur les  pâtes D3 et D4.
Tu n'as pu eu de soucis en deepSleep avec ce module?

Comme je voudrais pouvoir faire mon "form-factor", je ne suis pas sûre d'avoir les LED internes de visible, donc en attendant j'ai prévus une led déportée au cas ou.

Jetfuzz pour le coup, je trouve ça dommage, mais tu ne peux pas l'obliger à dialoguer avec toi.
Par contre pour moi aussi les propos que du cite de l'autre thread sont des insultes, car même si cela reflète la pensée de l'auteurs, ces propos ont clairement un but offensant et blessant.
Après malheureusement si le modérateur ne fais rien, il ne te reste pas beaucoup de solution.
soit tu te bat, soit tu capitule, même si mon choix serait vite fait, il n'y a pas de mauvais choix.
 

Portrait de brossden

Non je n'ai pas tester avec cette batterie solaire, mais en ce qui concerne le Circuit Wemos il faut ponter RST et D0 mais après avoir téléversé le programme pour utiliser deepSleep(microsecondes);

Exemple pour 1 minute

ESP.deepSleep(60e6); /* 60e6 notation scientifique reconnue
par Arduino pour 60 x 10 puissance 6 /

Portrait de Walter

ok merci,
j'essairais sur le Wemos, c'est peut être mieux câblé que sur le nodemcu, ou normalement cela devait aussi suffire.

Portrait de brossden

Walter as tu la solution simple pour faire une requête HTTPS sur un site comme www.google.fr par exemple ?

Portrait de Walter

Malheureusement, non, je l'ai fait uniquement en Lua.
En regardant, j'ai trouver ça qui serait la librairie officiel(?) pour l'ESP8266 en C/C++, avec un exemple en HTTPS.
Par contre il faudra que tu copie/colle le certificat du serveur web ciblé.

https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi
https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/exa...

Tien nous au courant de ce que tu aura trouvé, c'est intéressant  à savoir.

Portrait de brossden

Peux tu me donner le code en LUA ?

Portrait de Walter

Oui, j'essaye d'y penser ce soir.

Il faut que le SSL soit activer à la compilation de l'interpréteur, en plus du module HTTP.
"X-Live-Id: WebService@\r\n" n'est pas utile, la chaîne permet d'ajouter des en-tête HTTP.

local body = "<<<".."check_mk"..">"..">"..">".."\n"
body = body .. "Version: 1\n"
body = body .. temp .. "\n"
body = body .. humi .. "\n"
print('Post: '..body)
local req  = "https://" .. pom .. "/agent/sensor.cgi"
print('Main function, connection to the web service: '..req)
http.post(req, "X-Live-Id: WebService@\r\n", body, function(code, data)
    if (code < 0) then
        print("HTTP request failed: " .. code)
    else
        print(code, data)
    end
end)

Portrait de brossden

Ok merci je vais essayer de me ormer au LUA et de comprendre le principe, merci pour ce code.

Bonne journée

Portrait de brossden

Je ne comprend pas ou est le certificat ? pom c'est une variable ?

Portrait de brossden

Je pensais que tu aurais pu me passer un code opérationnel mais bon cela n'a pas l'air d'être à l'ordre du jour.

Pas grave je vais bien y arriver par moi même.

Portrait de Walter

¨Pom est l'adresse IP de mon serveur, qui hébergeait mon serveur "nagios", la variable req, contenant la requête HTTPS.
Il n'y a pas besoin de donner le certificat, je ne sais pas si il ne le vérifie pas ou fait les requêtes directement à l'autorité de certification.

Le code que je t'ai donnée est directement celui que j'utilisais, donc normalement fonctionnel  en changeant le connu de req, par ta requête HTTP.

Je t'ai envoyé ça vite fait, en me mettant en retard pour mon cours de guitare au passage, pour ne pas te faire attendre le week-end, que je puisse récrire le code et le tester!

Portrait de Walter

J'ai testé le code que j'ai copier/coller, il ne fonctionne plus sûre la version actuel que j'utilise 5.1.4.
Il faudrait que je le teste avec la version que j'utilisais à l'époque 5.1.0, je crois, si ça t'intéresse ?

Portrait de brossden

Merci Walter mais je suis quand même étonné qu'un développeur avec 19 ans d'expérience dans le domaine client serveur sèche sur ce problème !

Portrait de Walter

Ha bon pourquoi ?