Table des matières:
- Étape 1: Sauvegarde via WiFi et MQTT
- Étape 2: La télécommande/l'expéditeur
- Étape 3: Le récepteur - Matériel (esp8266 et Raspberry Pi)
- Étape 4: Le récepteur - Logiciel (Série, Node Red, MQTT)
Vidéo: ESP-NOW Domotique Esp8266 Raspberry Pi MQTT : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Dans ce Instructable je vous montre comment j'ai utilisé ESP-NOW dans ma domotique. Dans le schéma, vous pouvez voir les flux de communication
Je te montre:
- comment fonctionne l'expéditeur
- comment fonctionne le récepteur
- comment fonctionne la communication série avec un Raspberry Pi
Je ne montre pas comment fonctionne MQTT et ma domotique, vous pouvez trouver d'autres bonnes instructions pour ça.
Crédits: ce Instructable a été inspiré par:
Vidéo #172 par Andreas Spiess
www.esploradores.com/practica-6-conexion-es…
Étape 1: Sauvegarde via WiFi et MQTT
J'ai découvert que ESP-NOW est extrêmement rapide et assez fiable, mais échoue parfois. Dans mon programme, j'ai ajouté une sauvegarde via une connexion WiFi et MQTT normale.
Étape 2: La télécommande/l'expéditeur
Dans le premier schéma, vous voyez comment fonctionne le programme de l'expéditeur:
- L'esp8266 démarre à la mise sous tension ou à la réinitialisation
- ESP-NOW est initialisé
- Le module envoie ESP-NOW pendant une durée définie
-
Le module vérifie si le message ESP-NOW a été reçu par le récepteur dans une fonction de rappel.
- Si le message ESP-NOW a été reçu, le module passe en veille profonde à faible puissance
- Si le message ESP-NOW n'a pas été reçu, le module démarre une connexion WiFi et une connexion MQTT en tant que connexion de secours.
Le programme de l'expéditeur se trouve dans mon Github (Master_sender.ino). Les programmes envoient à la fois le sujet et le message pour la domotique MQTT dans un message ESP-NOW combiné, combiné à un signe « & » pour une séparation facile au niveau du récepteur.
J'ai fait deux télécommandes/expéditeurs différents:
Expéditeur 1: L'esp8266 est en veille prolongée et est activé par une réinitialisation. La led du bouton s'allume et s'éteint lorsque le module est terminé. Si la tension de la batterie est trop faible, la led clignote. Si l'ESP-NOW a échoué, la led clignote avant de passer aux connexions WiFi/MQTT. L'esp8266 est alimenté par une batterie LiPo avec un régulateur de tension HT7333 à 3,3V
Expéditeur 2: L'esp8266 est éteint et est alimenté en appuyant sur le bouton. Normalement, la connexion ESP-NOW se fait après que le bouton 'clique'. L'esp8266 est alimenté directement par une batterie LiPo. Je ne sais pas si l'esp8266 est endommagé par la haute tension d'une batterie complètement chargée (jusqu'à 4,2 V) lorsqu'elle est allumée quelques 100 ms. Il est supérieur aux spécifications (3.0 - 3.6V).
Remarque: si la puissance de la batterie est faible, l'ESP-NOW tombe en panne.
Étape 3: Le récepteur - Matériel (esp8266 et Raspberry Pi)
La description du récepteur est divisée en deux parties:
- Matériel
- Logiciel
Le matériel
Le récepteur esp-01 est connecté à mon Raspberry Pi Zero qui fait tourner mon système domotique (Openhab2) et Node Red.
Dans le schéma, les connexions simples sont représentées:
- RX de l'esp-01 vers TX du RasPi
- TX de l'esp-01 vers RX du RasPi
- GND à GND
- L'esp-01 VCC est alimenté par la broche 3.3V du Raspi
- Sur l'esp-01, RST et CH_PD sont tous les deux tirés vers le haut.
J'ai fait un connecteur d'interface pour le monter facilement
Sur une image, vous pouvez voir mes connexions filaires à mon Raspberry Pi 3 (qui a le même brochage, mais j'ai utilisé une autre broche 3,3 V pour me connecter à CH_PD).
L'esp-01 a été programmé comme indiqué dans mon autre Instructable (voir étape 3).
Étape 4: Le récepteur - Logiciel (Série, Node Red, MQTT)
Programme sur esp8266
Le programme pour le récepteur esp-01 est dans mon Github (Master_sender.ino). Le programme est vraiment simple, il imprime uniquement le message ESP-NOW reçu sur le port série du Raspberry Pi.
Port série
Sur le Raspberry Pi, vous devez activer le port série (sur raspbian, exécutez 'sudo raspi-config') pour une communication série normale.
Le nom du port série est:
- Raspberry Pi Zéro: /dev/ttyAMA0
- Raspberry Pi 3: /dev/ttyS0
Vous pouvez vérifier le port série en exécutant 'dmesg | grep tty' ou 'ls /dev'
Nœud Rouge
Dans Node Red, sélectionnez le nœud d'entrée série et configurez le port série (voir les images ci-jointes). Notez le débit en bauds de la connexion série, il doit correspondre au débit en bauds programmé dans l'esp8266.
La sortie du nœud série est transformée par un nœud de fonction qui divise le message au signe '&' et définit le msg.topic et le msg.payload. La sortie de la fonction est dirigée vers le nœud de sortie mqtt qui envoie le message au serveur MQTT. Notez que le champ de sujet du nœud mqtt est vide, car le sujet est défini dans le message.
Conseillé:
Domotique contrôlée par Internet/cloud utilisant Esp8266 (aREST, MQTT, IoT): 7 étapes (avec photos)
Domotique contrôlée par Internet/cloud utilisant Esp8266 (aREST, MQTT, IoT): TOUS les crédits à http://arest.io/ pour le service cloud !! L'IoT est le sujet le plus discuté au monde en ce moment !! Les serveurs et services cloud rendant cela possible sont le point d'attraction du monde d'aujourd'hui
Domotique avec MQTT et ESP8266 : 6 étapes
Domotique à l'aide de MQTT et ESP8266 : De nos jours, la domotique est une tendance et une ère émergente de l'IoT (Internet des objets). Tout le monde essaie d'automatiser la maison d'une manière qui peut être contrôlée à distance ou manuelle. Et qui leur facilite la vie. Il existe des techniques humaines à maîtriser
DOMOTIQUE BASÉE SUR UN SERVEUR LOCAL MQTT UTILISANT RASPBERRY PI ET LA CARTE NODEMCU : 6 étapes
DOMOTIQUE BASÉE SUR UN SERVEUR LOCAL MQTT UTILISANT RASPBERRY PI ET NODEMCU BOARD : Jusqu'à présent, j'ai réalisé plusieurs vidéos de tutoriel concernant le contrôle des appareils via Internet. Et pour cela, j'ai toujours préféré le serveur Adafruit MQTT car il était facile à utiliser et convivial également. Mais tout cela était basé sur Internet. Cela signifie que nous
Détecteur d'alarme incendie Tiny Esp8266 MQTT IFTTT Domotique : 4 étapes
Tiny Fire Alarm Detector Esp8266 MQTT IFTTT Domotique : Je voulais détecter si mon système de détecteur de fumée domestique est en alarme. J'ai huit détecteurs de fumée dans ma maison et ils sont interconnectés. Si un détecteur de fumée est en alarme, l'autre reçoit un signal via le fil de signal d'interconnexion. Mon capteur lit
Premiers pas avec Esp 8266 Esp-01 avec Arduino IDE - Installation de cartes Esp dans Arduino Ide et programmation Esp: 4 étapes
Premiers pas avec Esp 8266 Esp-01 avec Arduino IDE | Installation de cartes Esp dans Arduino Ide et programmation Esp: Dans ces instructables, nous allons apprendre comment installer des cartes esp8266 dans Arduino IDE et comment programmer esp-01 et y télécharger du code. Puisque les cartes esp sont si populaires, j'ai donc pensé à redresser un instructablesfor cela et la plupart des gens sont confrontés à un problème