ESP8266 transmission de la température

Forum pour tous les autres objets : sondes météo, capteurs, actionneurs ...
Vous avez un besoin mais vous ne savez pas quel matériel choisir ? C'est ici.
visual77
Messages : 19
Inscription : 30 déc. 2015, 21:32

ESP8266 transmission de la température

Message par visual77 »

Bonjour
dans le cadre de la poursuite de mes travaux domotiques j'ai, en tant que débutant, franchi une étape importante dans la maîtrise de raspberry et du ESP8288 en réalisant un point d'accès pour l'attribution d'une adresse IP fixe à mon ESP et en assurant une liaison entre ce dernier et Domoticz
Par contre je suis bloqué au niveau de la prise en compte par domoticz de la température transmise
j'ai bien créé un senseur virtuel dans domoticz en le déclarant comme thermomètre et j'ai aussi tenu compte des informations du site domotics qui décrit la structure de la requête json à utiliser
http://www.domoticz.com/wiki/Domoticz_API/JSON_URL's

lorsque je lance mon programme j'affiche bien que la connexion avec le serveur domoticz est effective mais cela s'arrête à cette étape.
j'ai lu, sur vos conseils, plusieurs articles qui traitent des requêtes HTTP mais je me pose des questions
en effet ce que je retiens de ces lectures c'est que la requête est relative à l'interrogation d'un serveur pour obtenir en réponse par exemple une page HTLM
Dans mon cas je considère s que Domoticz écoute en permanence son port et comme aucune réponse n'est attendue par le senseur il doit "simplement" prendre en compte la donnée.
dois je effectuer un script spécifique pour l'acquisition de la donnée?

j'avoue que je suis un peu perdu

je joins une 'extraction de mon code ESP programmé via la bibliothèque "ESP8266wIFI.h

je profite de l'occasion souhaiter à l’ensemble des membres du forum une très bonne année

Mon code

Code : Tout sélectionner

void loop() {
  float temp;
 delay(500);
 //on lance la lecture de la temperature
 do{
  DS18B20.requestTemperatures();
  temp=DS18B20.getTempCByIndex(0);
 } while (temp == 85.0 || temp== (127.0));
 Serial.print("temperature: ");
 Serial.println(temp);

 // on se connecte à domoticz

while (!esp_01.connect(ip,8080)) {
  Serial.print(".");
}

Serial.println("connexion domotics réalisée");

// transmission des paramètre à domoticz
esp_01.println("http://172.16.16.1:8080/json.htm?type=command&param=udevice&idx=2&nvalue=0&svalue=" + String(temp));
  
Serial.println("/json.htm?type=command&param=udevice&idx=2&nvalue=0&svalue=" + String(temp));
}
Cordialement
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: ESP8266 transmission de la température

Message par deennoo »

Domoticz est bien en ecoute constante.

Il existe un projet gratuit, pour les ESP8266 et au depart crée pour la compatibilité avec Domoticz :

ESPEASY : http://www.esp8266.nu/index.php/Main_Page

Tu charges le firmware dans l'ESP et tu te laisse guider, tout est déjà fait, et de nombreux capteurs sont déjà inclus, la communication avec domoticz ce fait directement c'est simple comme : hallo !
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
visual77
Messages : 19
Inscription : 30 déc. 2015, 21:32

Re: ESP8266 transmission de la température

Message par visual77 »

bonsoir
j'ai aussi trouvé ce site dont le projet semble correspondre à mon besoin mais lorsque je charge l'ESP je n'arrive pas à avoir accès à l'adresse indiqué
http://192.168.4.1 et cela en ne changeant rien au niveau du programme et plus particulièrement du mot de passe
as-tu testé de ton côté ce firmware

cordialement
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: ESP8266 transmission de la température

Message par deennoo »

visual77 a écrit :bonsoir
j'ai aussi trouvé ce site dont le projet semble correspondre à mon besoin mais lorsque je charge l'ESP je n'arrive pas à avoir accès à l'adresse indiqué
http://192.168.4.1 et cela en ne changeant rien au niveau du programme et plus particulièrement du mot de passe
as-tu testé de ton côté ce firmware

cordialement
Oui j'en ai quelqu'une chez moi en service

Quelle version utilises tu ? r48?

Pour avoir acces a 192.168.4.1 cela sous entend que tu dois d'abord ce connecter au reseau wifi que le firmware cree (depuis un tel par exemple il faut ce mettre en mode avion et n'activer que le wifi)

Tu peux configuré directement la connexion auto a ton reseau dans la premiere page du sketch.

Enfin le serial monitor est ton meilleur ami, c'est grâce a lui que tu vas savoir ce qu'il ce passe dans ton ESP.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: ESP8266 transmission de la température

Message par rimram31 »

visual77 a écrit :...je n'arrive pas à avoir accès à l'adresse indiqué
http://192.168.4.1 ...
Dans ce mode, l'ESP est lui-même point d'accès (AP => Access Point), ssid ESP0 de mémoire je crois. Tu dois donc a partir de ton PC te connecter a ce réseau wifi pour avoir accès a l'ESP. Une fois ok pour cet accès, une interface web te permet de configurer un accès, ton accès type freebox/livebox ... et changer de mode. L'esp cherchera alors a se connecter a un AP et ne le fournira plus lui-même. C'est juste une technique pratique pour pouvoir configurer l'esp avec un simple navigateur web sans USB au besoin.
visual77 a écrit :...j'ai lu, sur vos conseils, plusieurs articles qui traitent des requêtes HTTP mais je me pose des questions...
En essayant d'être concis.

Domoticz implémente un serveur web, un programme qui répond a des requêtes http (protocole http sur tcp). Il est effectivement en permanence a l'écoute (serveur de socket) et même capable de gérer plusieurs requêtes simultanées, tu utilises indifféremment cet accès pour l'interface html de domoticz ou son api json. Une api http (web service, api = application program interface) est quelque chose qui ressemble a des appels de fonctions mais s'appuyant sur le protocole http pour fonctionner. Ca ne fait pas qu'interroger, ça peut aussi envoyer des données via la requête http (cas de domoticz) ou via le protocole lui-même qui prévoit du POST (url + envoi de données -> formulaires http, upload ...).

Dans le cas d'un capteur qui devrait échanger avec domoticz par ce biais, le capteur va lire la valeur de son capteur et l'envoyer a intervalle régulier au serveur domoticz en appelant l'url qui va bien (partie Update de l'API -> https://www.domoticz.com/wiki/Domoticz_API/JSON_URL's).

Le cas d'ESPEASY est encore plus tordu car le firmware implémente aussi un serveur http dans l'esp! la raison pour laquelle quand tu tapes http://192.168.4.1 dans un navigateur, ça te répond quelque chose (et tu peux d'ailleurs aussi poster des données comme celle de la configuration ;) ). Cette interface web permet aussi d'avoir accès a une "api", c'est ce que tu vas utiliser par exemple pour allumer ou éteindre une gpio => [url]http://<ESP%20IP%20address>/control?cmd=GPIO,<pin>,<valeur>[/url]
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
visual77
Messages : 19
Inscription : 30 déc. 2015, 21:32

Re: ESP8266 transmission de la température

Message par visual77 »

bonjour à tous
merci pour ces informations que je vais tester le WE prochain
Pour répondre à deennoo j'utilise la dernière version R48


par contre même si cela fonctionne avec le firmawre j'aimerais pouvoir, pour bien maîtriser le mécanisme, rédiger par moi même un code en json compréhensible par Domoticz

donc si vous pouvez m'aider à comprendre la structure du message à transmettre je suis preneur

Bonne journée
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: ESP8266 transmission de la température

Message par deennoo »

un peu de lecture en anglais ? https://www.domoticz.com/wiki/Domoticz_ ... emperature

pour updater un capteur de temperature simple :

http://ip:port/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
visual77
Messages : 19
Inscription : 30 déc. 2015, 21:32

Re: ESP8266 transmission de la température

Message par visual77 »

Bonjour
Ton code semble correspondre exactement à celui de mon code indiqué ci dessus et qui met pas à joudomotice
Je suis preneur de toutes idées
Cordialement
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: ESP8266 transmission de la température

Message par rimram31 »

visual77 a écrit :...Ton code semble correspondre exactement à celui de mon code indiqué ci dessus...
Tu peux me dire ce que fait on objet esp_01 ? Je ne sais pas du tout ce que fait ton esp_01.println(....), pour échanger avec domoticz il faut une fonctionnalité qui implémente le protocole http comme curl par exemple en ligne de commande.

Que se passe-t-il si tu fais un curl http://<...> avec l'url que tu utilises ?
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Message par deennoo »

Répondre