IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Des capteurs connectés pour la maison avec Arduino et Raspberry Pi
Un tutoriel de f-leb

Le , par f-leb

4PARTAGES

22  0 


Je vous propose un nouveau tutoriel :

Des capteurs connectés pour la maison avec Arduino et Raspberry Pi
Configuration d’un serveur domotique avec MQTT, Node-RED, InfluxDB et Grafana



Architecture du système en réseau local

Le but est de construire un système communicant en WiFi comprenant un nœud de capteurs autour d’une carte Arduino et une carte Raspberry Pi configurée en serveur domotique. Les données brutes mesurées par les capteurs sont transmises, traitées puis stockées sur le serveur et peuvent être consultées sur des graphiques dans un navigateur Web par tout client connecté au réseau domestique, et même depuis Internet.

Bonne lecture

Cours et tutoriels Raspberry Pi
Cours et tutoriels Arduino
Vous avez lu gratuitement 6 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de f-leb
Responsable Arduino et Systèmes Embarqués https://www.developpez.com
Le 12/07/2024 à 14:27
Mise à jour du programme Arduino qui publiait jusqu'à présent les mesures à intervalles toujours réguliers, qui peuvent saturer inutilement le réseau alors que les mesures sont stables.
La fréquence de publication des données de mesure peut maintenant être variable si les mesures varient rapidement et de façon importante.

Voir II-C-5. Le programme Arduino complet
[...]
L’URL ou l’adresse IP du broker, le port du broker MQTT (1883 par défaut, sans chiffrement des messages, ni authentification), le topic de publication des messages et des données sur la fréquence de publication des messages :

mqtt_broker.h
Code arduino : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
#define MQTT_TOPIC "/home/bedroom/unor4wifi-01/si7021" 
  
// Smaller time interval in milliseconds 
#define MQTT_PUBLISH_MIN_INTERVAL (60 * 1000) 
  
// largest time interval in milliseconds 
#define MQTT_PUBLISH_MAX_INTERVAL (1200 * 1000) 
  
// Minimum temperature change (°C) 
#define MQTT_PUBLISH_MIN_TEMP_VAR (0.5) 
  
// Minimum humidity change (%RH) 
#define MQTT_PUBLISH_MIN_HUM_VAR (1)

L’algorithme programmé permet de publier les mesures à intervalles réguliers (ici, toutes les 20 min au moins, soit 1200 s), mais aussi d’accélérer la fréquence des publications si les variations de température ou d’humidité sont importantes (ici, le système peut publier toutes les 60s si la variation de température est supérieure à 0.5°C ou si la variation d’humidité relative est supérieure à 1% par rapport à la publication précédente). Le but est d’éviter la saturation du réseau avec de nouvelles données alors que les mesures sont jugées relativement stables, mais de ne pas manquer non plus les variations rapides et importantes si elles se produisent.

L'article a été mis à jour en conséquence
4  0 
Avatar de f-leb
Responsable Arduino et Systèmes Embarqués https://www.developpez.com
Le 15/07/2024 à 9:15
Bonjour,

En complément, j'ai fait un test concluant avec un capteur de température et d'humidité communiquant en Zigbee via une passerelle Zigbee2MQTT :
[Raspberry Pi] [Test] Une passerelle Zigbee avec un dongle USB Zigbee2MQTT
3  0 
Avatar de f-leb
Responsable Arduino et Systèmes Embarqués https://www.developpez.com
Le 16/07/2024 à 12:58
Merci Jules34 , n'hésite pas à faire un retour de tes expériences ici-même.

Citation Envoyé par Jules34 Voir le message
Je vais aussi essayer DUCK DNS
Attention à la sécurité dès que tu ouvres un service sur Internet, mes fichiers logs montrent régulièrement des tentatives d'intrusion
2  0 
Avatar de f-leb
Responsable Arduino et Systèmes Embarqués https://www.developpez.com
Le 04/12/2024 à 19:13
Merci diazepam

Et en prime, on peut compléter son réseau avec des équipements en Zigbee presque sans effort grâce à la passerelle opensource zigbee2mqtt :

1  0 
Avatar de FlyByck
Membre du Club https://www.developpez.com
Le 18/01/2025 à 14:18
Bonjour

Merci pour la solution
Le menu zigbee2mqtt est maintenant accessible et l'appairage effectué

Remarque :
La modification du fichier de configuration.yaml de zigbee2mqtt ne permet pas de modifier les variables. Celles-ci sont systématiquement remplacées lors du relancement avec docker-compose
Pour que celles-ci soient prisent en compte il faut les modifer dans le fichier
Code : Sélectionner tout
sudo nano docker-compose.yml

Ne pas recharger zigbee2mqtt par menu.sh option Build Stack car les parametres seront de nouveau ceux du Dongle-P

Maintenant je vais m'attaquer à node-red
1  0 
Avatar de Jules34
Membre émérite https://www.developpez.com
Le 16/07/2024 à 11:49
Citation Envoyé par f-leb Voir le message

Le but est de construire un système communicant en WiFi comprenant un nœud de capteurs autour d’une carte Arduino et une carte Raspberry Pi configurée en serveur domotique. Les données brutes mesurées par les capteurs sont transmises, traitées puis stockées sur le serveur et peuvent être consultées sur des graphiques dans un navigateur Web par tout client connecté au réseau domestique, et même depuis Internet.
Merci beaucoup !

J'ai un montage similaire avec un pi zero w qui fonctionne depuis 3 ans désormais, sans problème.

J'utilise la debian modifiée de diet-pi, qui facilite grandement l'installation de MQTT, NODE RED, GRAFANA et INFLUX-DB sur le pi et n'utilise pas DOCKER, le système tourne à moins d'1% du CPU quasiment en permanence.

Merci beaucoup pour la partie du tutoriel sur ce bout de code que je vais essayer d'adapter sur mes esp qui forment mon réseaux de capteur chez moi:
#define MQTT_TOPIC "/home/bedroom/unor4wifi-01/si7021"

// Smaller time interval in milliseconds
#define MQTT_PUBLISH_MIN_INTERVAL (60 * 1000)

// largest time interval in milliseconds
#define MQTT_PUBLISH_MAX_INTERVAL (1200 * 1000)

// Minimum temperature change (°C)
#define MQTT_PUBLISH_MIN_TEMP_VAR (0.5)

// Minimum humidity change (%RH)
#define MQTT_PUBLISH_MIN_HUM_VAR (1)
Je vais aussi essayer DUCK DNS
0  0 
Avatar de diazepam
Futur Membre du Club https://www.developpez.com
Le 04/12/2024 à 13:06
Merci f-leb, ça fait un petit moment que je bricolle avec du raspberry, du Arduino et des senseurs d'un côté, et que j'expérimente avec Docker, la virtualisation et les architectures orientées évènements. Ce tutoriel est top, il combine tout ça de manière très pertinente. L'utilité et la puissance de ces outils ne me sont jamais parues aussi évidentes. Et tout ça fonctionne parfaitement, encore bravo!
0  0 
Avatar de FlyByck
Membre du Club https://www.developpez.com
Le 16/01/2025 à 17:52
Bonour

Merci pour ce tutos
Je butte sur la configuration du capteur temperature
L'assistant de configuration ne répond pas sur l'adresse http://<adresse IP de la Raspberry Pi>:8080
Dans Portainer on voit pourtant le conteneur zigbee2MQTT avec ce port

Merci
0  0 
Avatar de f-leb
Responsable Arduino et Systèmes Embarqués https://www.developpez.com
Le 16/01/2025 à 19:39
Bonsoir,

dans le titre de ta discussion, tu écris "MQTT Broker non disponible". Comment le sais-tu ? Tu as essayé de t'abonner à un topic et de publier ?

Pour tester le broker, tu ouvres deux fenêtres de terminal.
Dans le 1er terminal, tu t'abonnes à un topic :
Code : Sélectionner tout
mosquitto_sub -h localhost -t test/topic
Dans le 2è terminal, tu publies sur le topic :
Code : Sélectionner tout
mosquitto_pub -h localhost -t test/topic -m "Hello world!"
Si "Hello world!" s'affiche dans le 1er terminal, la connexion est OK...

Si tu es connecté à distance, cela devrait aussi fonctionner par exemple avec Putty (en ouvrant deux fois Putty donc).
0  0 
Avatar de FlyByck
Membre du Club https://www.developpez.com
Le 17/01/2025 à 12:02
Bonjour

J'utilise Putty
La commande mosquito n'est pas reconnu
Code : Sélectionner tout
1
2
3
~/IOTstack $ mosquitto_sub -h localhost -t test/topic
-bash: mosquitto_sub: command not found
C'est cela qui me fait penser à un mouvaise implantation du brocker mosquito

J'ai un Raspberry Pi 4, un dongle Sonoff et un capteur Sonoff SNZB-02P
J'ai suivi le tutos : "Une passerelle Zigbee avec un dongle USB Zigbee2MQTT"
Je n'ai pas de Arduino et dans le tutos "Configuration d’un serveur domotique avec MQTT, Node-RED, InfluxDB et Grafana" j'ai suivi le chapitre III La pile IOTstack

Si j'affiche
Code : Sélectionner tout
docker compose logs -f
j'ai ceci dans les logs

zigbee2mqtt | Starting Zigbee2MQTT without watchdog.
zigbee2mqtt | [2025-01-17 11:48:20] info: z2m: Logging to console, file (filename: log.log)
zigbee2mqtt | [2025-01-17 11:48:20] info: z2m: Starting Zigbee2MQTT version 2.0.0 (commit #060ae99cff715cc9ef6a0cfa7cae0cdcb17f0c8a)
zigbee2mqtt | [2025-01-17 11:48:20] info: z2m: Starting zigbee-herdsman (3.2.1)
zigbee2mqtt | [2025-01-17 11:48:20] info: zh:zstack:znp: Opening SerialPort with {"path":"/dev/ttyACM0","baudRate":115200,"rtscts":false,"autoOpen":false}
zigbee2mqtt | [2025-01-17 11:48:20] info: zh:zstack:znp: Serialport opened
zigbee2mqtt | [2025-01-17 11:48:21] info: zh:zstack:znp: Writing CC2530/CC2531 skip bootloader payload
zigbee2mqtt | [2025-01-17 11:48:22] info: zh:zstack:znp: Skip bootloader for CC2652/CC1352
zigbee2mqtt | [2025-01-17 11:48:40] error: z2m: Error while starting zigbee-herdsman
zigbee2mqtt | [2025-01-17 11:48:40] error: z2m: Failed to start zigbee-herdsman
zigbee2mqtt | [2025-01-17 11:48:40] error: z2m: Check https://www.zigbee2mqtt.io/guide/ins...s-runtime.html for possible solutions
zigbee2mqtt | [2025-01-17 11:48:40] error: z2m: Exiting...
zigbee2mqtt | [2025-01-17 11:48:40] error: z2m: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
zigbee2mqtt | at ZStackAdapter.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.1/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:113:27)
zigbee2mqtt | at Controller.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.1/node_modules/zigbee-herdsman/src/controller/controller.ts:136:29)
zigbee2mqtt | at Zigbee.start (/app/lib/zigbee.ts:69:27)
zigbee2mqtt | at Controller.start (/app/lib/controller.ts:142:13)
zigbee2mqtt | at start (/app/index.js:161:5)
zigbee2mqtt exited with code 0
Merci pour l'aide
0  0