Table des matières:

Raspberry Pi parlant à ESP8266 à l'aide de MQTT : 8 étapes
Raspberry Pi parlant à ESP8266 à l'aide de MQTT : 8 étapes

Vidéo: Raspberry Pi parlant à ESP8266 à l'aide de MQTT : 8 étapes

Vidéo: Raspberry Pi parlant à ESP8266 à l'aide de MQTT : 8 étapes
Vidéo: Raspberry Pi Talking to WiFi 'Things' pt. 4 with Tony D! 2024, Novembre
Anonim
Raspberry Pi parle à ESP8266 à l'aide de MQTT
Raspberry Pi parle à ESP8266 à l'aide de MQTT

Dans ce projet, j'expliquerai ce qu'est le protocole MQTT et comment il est utilisé pour communiquer entre les appareils. Ensuite, à titre de démonstration pratique, je montrerai comment configurer un système client et courtier, où un module ESP8266 ainsi que RPi parlent l'un à l'autre ou envoyer un message lorsqu'un bouton est enfoncé.

Matériel requis

1. Framboise Pi 3

2. NodeMCU

3. DEL

4. Bouton

5. Résistances (10k, 475 ohms)

Étape 1: Qu'est-ce que MQTT et comment cela fonctionne

MQTT

MQTT est un protocole de transfert de données de machine à machine (M2M). MQTT a été créé dans le but de collecter des données à partir de nombreux appareils, puis de les transporter vers l'infrastructure informatique. Il est léger et donc idéal pour la surveillance à distance, en particulier dans les connexions M2M qui nécessitent une faible empreinte de code ou lorsque la bande passante du réseau est limitée.

Comment fonctionne MQTT

MQTT est un protocole de publication/abonnement qui permet aux périphériques de périphérie de réseau de publier sur un courtier. Les clients se connectent à ce courtier, qui assure ensuite la médiation de la communication entre les deux appareils. Chaque appareil peut s'abonner ou s'inscrire à des sujets particuliers. Lorsqu'un autre client publie un message sur une rubrique abonnée, le courtier transmet le message à tout client abonné.

MQTT est bidirectionnel et maintient la conscience de session avec état. Si un périphérique de périphérie du réseau perd sa connectivité, tous les clients abonnés seront informés de la fonction « Dernières volontés et testament » du serveur MQTT afin que tout client autorisé du système puisse publier une nouvelle valeur vers la périphérie de réseau. périphérique réseau, en maintenant une connectivité bidirectionnelle.

Le projet est divisé en 3 parties

Tout d'abord, nous créons un serveur MQTT sur RPi et installons quelques bibliothèques.

Deuxièmement, nous allons installer des bibliothèques dans Arduino IDE pour que NodeMCU fonctionne avec MQTT, télécharger le code et vérifier si le serveur fonctionne ou non.

Enfin, nous créons un script dans Rpi, téléchargeons le code requis dans NodeMCU et exécutons le script python pour contrôler les leds côté serveur et côté client. Ici, le serveur est RPi et le client est NodeMCU.

Étape 2: Raspberry Pi

Tarte aux framboises
Tarte aux framboises
Tarte aux framboises
Tarte aux framboises
Tarte aux framboises
Tarte aux framboises
Tarte aux framboises
Tarte aux framboises

1. Pour installer le dernier serveur et client MQTT dans RPi, pour utiliser le nouveau référentiel, vous devez d'abord importer la clé de signature du package de référentiel.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key ajouter mosquitto-repo.gpg.key

2. Rendre le référentiel disponible pour apt.

cd /etc/apt/sources.list.d/

3. Selon la version de Debian que vous utilisez.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get mise à jour

4. Installez le serveur Mosquitto à l'aide de la commande.

sudo apt-get install moustique

Si vous obtenez des erreurs lors de l'installation de Mosquitto comme celle-ci.

#################################################################

Les packages suivants ont des dépendances non satisfaites: mosquitto: Dépend: libssl1.0.0 (>= 1.0.1) mais il n'est pas installable Dépend: libwebsockets3 (>= 1.2) mais il n'est pas installable E: Impossible de corriger les problèmes, vous avez tenu le coup paquets.

#################################################################

Utilisez ensuite cette commande pour résoudre les problèmes.

sudo apt --fix-breaké installer

5. Après avoir installé le serveur MQTT, installez le client à l'aide de la commande

sudo apt-get install mosquitto-clients

Vous pouvez vérifier les services à l'aide de la commande.

état systemctl mosquitto.service

Comme notre serveur et client MQTT est installé. Maintenant, nous pouvons le vérifier en utilisant s'abonner et publier. Pour vous abonner et publier, vous pouvez vérifier les commandes ou visiter le site Web comme indiqué ci-dessous.

Sous-marin moustique

Pub Moustique

Pour installer la bibliothèque paho-mqtt, utilisez la commande ci-dessous.

sudo pip installer paho-mqtt

Paho

Étape 3: Comment configurer l'adresse IP statique

Comment configurer une adresse IP statique
Comment configurer une adresse IP statique

Allez dans le répertoire cd /etc et ouvrez le fichier dhcpcd.conf en utilisant n'importe quel éditeur. À la fin, écrivez ces quatre lignes.

interface eth0 statique ip_address=192.168.1.100 // ip que vous souhaitez utiliser

interface wlan0

adresse_ip statique=192.168.1.68

routeurs statiques=192.168.1.1 // votre passerelle par défaut

serveurs de nom_domaine statiques=192.168.1.1

Après cela, enregistrez-le et redémarrez votre pi.

Étape 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Installer les bibliothèques requises dans Arduino IDE pour NodeMCU

1. Allez dans Sketch ==> Inclure la bibliothèque ==> Gérer les bibliothèques.

2. Recherchez mqtt et installez la bibliothèque par Adafruit ou vous pouvez installer n'importe quelle bibliothèque.

3. Cela dépend de la bibliothèque sleepydog, nous avons donc également besoin de cette bibliothèque.

Le programme est donné ci-dessus, juste pour vérifier s'il fonctionne ou non. Ici, je n'ai créé aucun script dans RPi. Nous utilisons simplement des commandes pour nous abonner et publier. Nous créerons un script pour le contrôle plus tard.

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"

-h == > nom d'hôte-t == > sujet

-m == > message

Après avoir vérifié le programme Mqtt_check, téléchargez le programme complet dans NodeMCU

Étape 5: Script Python

Script Python
Script Python
Script Python
Script Python

Comme je l'ai expliqué ci-dessus, nous avons besoin d'un script python pour contrôler les leds à l'aide de boutons. Nous allons donc créer un script. Le script est donné ci-dessus.

Lorsque vous exécutez le script, votre script doit ressembler à celui indiqué dans l'image. Si le code de résultat n'est pas nul, il s'agit d'une erreur que vous pouvez vérifier sur le site Web de paho.

Étape 6: Connexions et schéma de circuit

Connexions et schéma de circuit
Connexions et schéma de circuit
Connexions et schéma de circuit
Connexions et schéma de circuit

Interfaçage du bouton, LED avec NodeMCU

NodeMCU === > ButtonGnd === > Gnd

3.3V === > PIN1

GPIO4 (D2) === > PIN2

NodeMCU === > LED

Gnd === > Cathode (-ve)

GPIO5 (D1) === > Anode(+ve)

Interfaçage du bouton, LED avec RPi

RPi === > ButtonGnd === > PIN1

GPIO 23 === > PIN2

RPi === > LED

Gnd == > Cathode(-ve)

GPIO 24 === > Anode(+ve)

Étape 7: Résultat

Image
Image
Résultat
Résultat

Assurez-vous que votre script est en cours d'exécution, sinon il ne pourra pas contrôler la led à l'aide de boutons.

Conseillé: