Table des matières:

ESP-NOW Domotique Esp8266 Raspberry Pi MQTT : 4 étapes
ESP-NOW Domotique Esp8266 Raspberry Pi MQTT : 4 étapes

Vidéo: ESP-NOW Domotique Esp8266 Raspberry Pi MQTT : 4 étapes

Vidéo: ESP-NOW Domotique Esp8266 Raspberry Pi MQTT : 4 étapes
Vidéo: Home Automation based on Local MQTT server using Raspberry Pi and NodeMCUBoard | ESP8266 Projects 2024, Novembre
Anonim
Domotique ESP-NOW Esp8266 Raspberry Pi MQTT
Domotique ESP-NOW Esp8266 Raspberry Pi MQTT

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

Sauvegarde via WiFi et MQTT
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

La télécommande/expéditeur
La télécommande/expéditeur
La télécommande/expéditeur
La télécommande/expéditeur
La télécommande/expéditeur
La télécommande/expéditeur
La télécommande/expéditeur
La télécommande/expéditeur

Dans le premier schéma, vous voyez comment fonctionne le programme de l'expéditeur:

  1. L'esp8266 démarre à la mise sous tension ou à la réinitialisation
  2. ESP-NOW est initialisé
  3. Le module envoie ESP-NOW pendant une durée définie
  4. Le module vérifie si le message ESP-NOW a été reçu par le récepteur dans une fonction de rappel.

    1. Si le message ESP-NOW a été reçu, le module passe en veille profonde à faible puissance
    2. 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)

Le récepteur - Matériel (esp8266 et Raspberry Pi)
Le récepteur - Matériel (esp8266 et Raspberry Pi)
Le récepteur - Matériel (esp8266 et Raspberry Pi)
Le récepteur - Matériel (esp8266 et Raspberry Pi)
Le récepteur - Matériel (esp8266 et Raspberry Pi)
Le récepteur - Matériel (esp8266 et Raspberry Pi)

La description du récepteur est divisée en deux parties:

  1. Matériel
  2. 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)

Le récepteur - Logiciel (Série, Node Red, MQTT)
Le récepteur - Logiciel (Série, Node Red, MQTT)
Le récepteur - Logiciel (Série, Node Red, MQTT)
Le récepteur - Logiciel (Série, Node Red, MQTT)
Le récepteur - Logiciel (Série, Node Red, MQTT)
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é: