Réaliser un réseau sans logiciel de domotique avec MQTT - arnaudrco/exemples GitHub Wiki
Sommaire:
- Domotique / Énergie / Objets connectés
- Lampe connectée
- Escape Game
- Lire-sa-consommation-avec-un-module-PZEM
- Lire sa consommation avec un esp relié au compteur LINKY
- un réseau sans logiciel de domotique avec MQTT
- un répéteur wifi
- les logiciels de domotique
- Pour aller plus loin pour connaître sa consommation
- Video
Afficher des données par MQTT
Amusez vous à réaliser un réseau sans logiciel de domotique avec MQTT, sans PC et sans smartphone. Avec un esp et un afficheur OLED, je récupère la température d'un capteur distant n'importe ou sur le réseau. Voici un automate pour communiquer entre 2 objets connectés
-
Sur l'objet connecté distant : déclarer dans son protocole MQTT un "topic", par exemple une temperature d'un capteur DHT sur un dispositif SonOff sur le topic "/SonOffExp/DHT/temperature"
-
Sur votre esp, recopier le logiciel pour lire l'information distante publiée sur le topic déclaré dans MQTT_SERIAL_RECEIVER_CH
-
brancher l'écran OLED sur les pins 26, 25 pour SDA et SCL : l'écran OLED va lire "24" si la température envoyée est de 24°
le code se trouve ici ou pour plusieurs topics ici
merci à Julio de Bures pour son aide
échanges d'information par MQTT
Amusez vous à échanger des informations ! Vous utilisez déjà HTTP pour rentrer une adresse sur le réseau. MQTT est beaucoup moins gourmand en ressources que HTTP. L'outil "Message Queue Telemetry Transport" est très pratique et bien illustré dans mqtt : il va servir pour lire ou écrire très facilement tous les messages des objets connectés.
Échanger des données MQTT avec un esp
Amusez vous à utiliser un esp pour échanger des messages en utilisant les exemples de la librairie TinyMqtt pour un réseau d'objets à la maison
simple-broker va échanger des messages avec des objets connectés
le fonctionnement de MQTT peut se comparer à un journal ( "broker")
- on s'abonne au journal ( "subscribe")
- le journal enregistre les évènements et les publient ("publish")
- tous les objets connectés à MQTT peuvent communiquer avec très peu de ressources informatiques
Mosquitto
Mosquitto va échanger des messages avec des objets connectés
Mosquitto s'installe sur un petit raspberry
Mosquitto lit des messages venant des objets connectés
Pour réaliser un banc de test, amusez vous à programmer un lecteur de message mqtt comme mosquitto sur un petit raspberry ou un orange pi en notant son adresse sur le réseau. Une sonde très pratique ! Ce n'est pas facile à lire mais vous avez un suivi de tous les messages reçus par un Orange Pi (orangepion) et 3 objets connectés de relevé de télémesure (tele), de commande de lumière (SonOff) et de capteur placé à la cave (Cave_36) en rentrant une seule ligne de commande
-
mosquitto_sub -d -t "#"
Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, 'tele/tasmota_91CD9C/SENSOR', ... (213 bytes)) {"TIC":{"ADCO":"041763022391","OPTARIF":"BASE","ISOUSC":25,"BASE":33351347,"PTEC":"TH..","IINST1":1,"IINST2":0,"IINST3":1,"IMAX1":60,"IMAX2":60,"IMAX3":60,"PMAX":4628,"PAPP":460,"HHPHC":"A","MOTDETAT":0,"PPOT":0}} Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, '/SonOffExp/DHT/temperature', ... (2 bytes)) 20 Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, '/SonOffExp/DHT/humidity', ... (2 bytes)) 22 Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, '/Cave_36/bmp/Temperature', ... (2 bytes)) 14 Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, 'tele/tasmota_91CD9C/SENSOR', ... (213 bytes)) {"TIC":{"ADCO":"041763022391","OPTARIF":"BASE","ISOUSC":25,"BASE":33351347,"PTEC":"TH..","IINST1":1,"IINST2":0,"IINST3":1,"IMAX1":60,"IMAX2":60,"IMAX3":60,"PMAX":4628,"PAPP":460,"HHPHC":"A","MOTDETAT":0,"PPOT":0}} Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, '/SonOffExp/DHT/temperature', ... (2 bytes)) 20 Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, '/SonOffExp/DHT/humidity', ... (2 bytes)) 22 Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, 'tele/tasmota_91CD9C/SENSOR', ... (213 bytes)) {"TIC":{"ADCO":"041763022391","OPTARIF":"BASE","ISOUSC":25,"BASE":33351347,"PTEC":"TH..","IINST1":1,"IINST2":0,"IINST3":1,"IMAX1":60,"IMAX2":60,"IMAX3":60,"PMAX":4628,"PAPP":460,"HHPHC":"A","MOTDETAT":0,"PPOT":0}} Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, '/Cave_36/bmp/Temperature', ... (2 bytes)) 14 Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, '/SonOffExp/DHT/temperature', ... (2 bytes)) 20 Client mosqsub|2821-orangepion received PUBLISH (d0, q0, r0, m0, '/SonOffExp/DHT/humidity', ... (2 bytes)) 22
Les petits "orange pi" ont une très faible consommation avec leur fréquence de travail qui s'ajuste à la charge : ce sont mes préférés
Pour les experts en récupération, un ancien serveur Wyze peut faire un excellente sonde MQTT et faire tourner Domoticz
Allez plus loin pour connaitre-sa-consommation