ESP32 - MQTT
Dans ce tutoriel, nous allons explorer comment utiliser l'ESP32 pour envoyer et recevoir des données vers et depuis un courtier MQTT en utilisant le protocole MQTT. Plus précisément, nous aborderons :
- Établir une connexion entre l'ESP32 et un courtier MQTT.
- Programmer l'ESP32 pour envoyer des données à un courtier MQTT en publiant des données sur un sujet MQTT.
- Programmer l'ESP32 pour recevoir des données en s'abonnant à un sujet MQTT.
Nous examinerons deux scénarios distincts :
- ESP32 avec un courtier MQTT en ligne.
- ESP32 avec un courtier MQTT installé sur votre PC.
Préparation du matériel
1 | × | ESP-WROOM-32 Dev Module | |
1 | × | USB Cable Type-C | |
1 | × | (Recommended) ESP32 Screw Terminal Adapter |
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos de l'ESP32 et MQTT
Si vous connaissez déjà le protocole MQTT, parfait ! Sinon, vous pouvez le rechercher en ligne. Ce tutoriel concerne l'utilisation de l'ESP32 pour envoyer et recevoir des données via MQTT.
Voici quelques manières dont l'ESP32 peut fonctionner avec MQTT :
- Connectez ESP32 à un courtier MQTT en ligne comme Mosquitto ou AWS IoT.
- Connectez ESP32 à un courtier MQTT installé sur votre ordinateur, tel que Mosquitto ou HiveMQ.
- Connectez ESP32 à un courtier MQTT fonctionnant sur votre Raspberry Pi, par exemple, Mosquitto.
- Connectez ESP32 à un courtier MQTT basé sur le cloud, comme Mosquitto ou HiveMQ sur AWS EC2.
Dans ce tutoriel, nous commencerons par vérifier si l'ESP32 peut se connecter à un courtier Mosquitto en ligne. Nous ferons en sorte que l'ESP32 envoie et reçoive des données via ce courtier sur Internet.
Ensuite, nous installerons le courtier Mosquitto sur notre ordinateur. Nous connecterons l'ESP32 à ce courtier local et continuerons à envoyer et recevoir des données.
Une fois que vous aurez terminé ce tutoriel, vous pourrez en découvrir plus en consultant ces autres tutoriels :
Ces liens fourniront des orientations supplémentaires sur des sujets connexes.
Connectez un ESP32 à un courtier MQTT en ligne.
Dans cette partie, nous apprendrons à connecter l'ESP32 à test.mosquitto.org, un courtier MQTT en ligne créé par Mosquitto. Veuillez noter que ce courtier doit être utilisé uniquement à des fins de test.
Code ESP32
Le code ESP32 ci-dessous fait :
- Se connecter au courtier MQTT
- S'abonner à un sujet
- Publier périodiquement des messages sur le même sujet auquel il est abonné
Étapes rapides
- Si c'est la première fois que vous utilisez un ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
- Faites le câblage comme sur l'image ci-dessus.
- Connectez la carte ESP32 à votre PC via un câble USB.
- Ouvrez Arduino IDE sur votre PC.
- Sélectionnez la bonne carte ESP32 (par exemple, ESP32 Dev Module) et le port COM.
- Ouvrez Arduino IDE sur votre PC.
- Ouvrez le Gestionnaire de bibliothèques en cliquant sur l'icône Gestionnaire de bibliothèques dans la barre de navigation gauche de l'Arduino IDE.
- Tapez MQTT dans la boîte de recherche, puis recherchez la bibliothèque MQTT de Joel Gaehwiler.
- Cliquez sur le bouton Install pour installer la bibliothèque MQTT.
- Tapez ArduinoJson dans la zone de recherche, puis recherchez la bibliothèque ArduinoJson de Benoit Blanchon.
- Cliquez sur le bouton Install pour installer la bibliothèque ArduinoJson.
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Remplacez les informations WiFi (SSID et mot de passe) dans le code par les vôtres.
- Dans le code, vous verrez le mot 'YOUR-NAME' trois fois. Remplacez ce mot par votre nom ou des caractères aléatoires (uniquement des caractères alphabétiques, pas d'espaces). Ceci est nécessaire car si vous ne faites pas le changement, il pourrait y avoir plusieurs personnes exécutant ce code en même temps, ce qui pourrait entraîner des conflits puisque les identifiants et les sujets des clients MQTT sont les mêmes pour tous.
- Cliquez sur le bouton Upload sur l'IDE Arduino pour téléverser le code sur l'ESP32
- Ouvrez le moniteur série
- Voir le résultat sur le moniteur série.
Comme vous pouvez le constater, l'ESP32 publie des messages sur le courtier MQTT puis reçoit le même message en retour. Cela se produit parce que le code fourni s'abonne au même sujet sur lequel il publie des données. Si vous préférez que l'ESP32 ne reçoive pas le message qu'il publie, vous pouvez facilement y parvenir en rendant le sujet SUBSCRIBE différent du sujet PUBLISH.
Connectez l'ESP32 au courtier MQTT installé sur votre PC
Installer le broker MQTT Mosquitto
- Téléchargez le Mosquitto MQTT Broker
- Installez-le sur le lecteur D: au lieu du lecteur C:. Évitez d'installer le broker Mosquitto sur le lecteur C: pour prévenir d'éventuels problèmes.
Exécuter le courtier MQTT Mosquitto
Maintenant, vérifions si le courtier MQTT fonctionne correctement en suivant ces étapes :
- Accédez au répertoire où Mosquitto a été installé. Par exemple : D:\Draft\mosquitto>
- Créez un nouveau fichier nommé test.conf, copiez le contenu ci-dessous et enregistrez-le dans ce répertoire :
- Exécutez une invite de commande en tant qu'administrateur sur votre PC. Appelons-la Fenêtre Broker. Ne la fermez pas jusqu'à la fin du tutoriel.
- Exécutez les commandes ci-dessous une par une :
- Vous verrez :
- Ouvrez une autre invite de commande en tant qu'administrateur sur votre PC.
- Trouvez l'adresse IP de votre PC en exécutant la commande ci-dessous :
- Notez l'adresse IP pour une utilisation ultérieure. Dans l'exemple ci-dessus : 192.168.0.26
Tester si le Broker Mosquitto fonctionne
- Ouvrez une autre invite de commande en tant qu'administrateur sur votre PC. Appelons-la Fenêtre Abonné
- Abonnez-vous à un sujet en exécutant les commandes ci-dessous une par une (remplacez par votre adresse IP):
- Ouvrez une autre invite de commande en tant qu'administrateur sur votre PC. Appelons-la Fenêtre Éditeur
- Publiez un message sur le même sujet en exécutant les commandes ci-dessous une par une (remplacez par votre adresse IP) :
- Vous verrez :
Vous verrez que le message est transmis à la Fenêtre d'Abonné comme suit :
Maintenant, vous avez installé avec succès le broker MQTT Mosquitto sur votre PC. Veuillez ne PAS fermer trois fenêtres : Fenêtre du Broker, Fenêtre de l'Abonné et Fenêtre de l'Éditeur. Nous les utiliserons ensuite.
Code ESP32
Le code ESP32 ci-dessous fait :
- Se connecter au courtier MQTT
- S'abonner à un sujet
- Publier périodiquement des messages sur un autre sujet
Étapes rapides
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Remplacez les informations WiFi (SSID et mot de passe) dans le code par les vôtres.
- Remplacez l'adresse du courtier MQTT dans le code (nom de domaine ou adresse IP).
- Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code sur l'ESP32.
Envoyer un message de l'ESP32 au PC via MQTT
Les codes ESP32 publient des données sur le sujet MQTT esp32-001/send, la fenêtre d'abonné sur PC s'abonne à ce sujet pour recevoir les données.
- Ouvrez le moniteur série, vous verrez l'ESP32 publier périodiquement un message sur un sujet.
- Vérifiez la Fenêtre d'Abonné, vous verrez qu'elle reçoit le message publié par l'ESP32 comme suit :
Envoyer un message depuis un PC vers un ESP32 via MQTT
ESP32 s'abonne au sujet esp32-001/receive, Fenêtre de publication sur PC publie un message sur ce sujet pour l'envoyer à l'ESP32.
- Publiez un message sur le sujet auquel l'ESP32 est abonné en exécutant la commande suivante dans la fenêtre de l'éditeur :
- Vous verrez que ce message est reçu par l'ESP32 sur le moniteur série comme ci-dessous :