Arduino Nano ESP32 - MQTT
Dans ce guide, nous allons explorer l'utilisation de l'Arduino Nano ESP32 pour envoyer et recevoir des données vers et depuis un courtier MQTT via le protocole MQTT. Plus précisément, nous couvrirons :
- Établir une connexion entre l'Arduino Nano ESP32 et un courtier MQTT.
- Programmer l'Arduino Nano ESP32 pour transmettre des données au courtier MQTT en les publiant sur un sujet MQTT spécifique.
- Programmer l'Arduino Nano ESP32 pour recevoir des données en s'abonnant à un sujet MQTT désigné.
Nous examinerons deux scénarios distincts :
- Utilisation d'Arduino Nano ESP32 avec un courtier MQTT en ligne.
- Utilisation d'Arduino Nano ESP32 avec un courtier MQTT installé sur votre PC.
Préparation du matériel
1 | × | Arduino Nano ESP32 | |
1 | × | USB Cable Type-C | |
1 | × | Breadboard | |
1 | × | Jumper Wires | |
1 | × | (Recommended) Screw Terminal Adapter for Arduino Nano |
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos d'Arduino Nano ESP32 et MQTT
Si vous connaissez déjà le protocole MQTT, c'est parfait ! Sinon, vous pouvez le rechercher en ligne. Ce tutoriel est axé sur l'utilisation de l'Arduino Nano ESP32 pour l'envoi et la réception de données via MQTT.
Voici différentes manières d'utiliser l'Arduino Nano ESP32 avec MQTT :
- Vous pouvez connecter l'Arduino Nano ESP32 à un courtier MQTT en ligne comme Mosquitto ou AWS IoT.
- Vous pouvez connecter l'Arduino Nano ESP32 à un courtier MQTT installé sur votre ordinateur, comme Mosquitto ou HiveMQ.
- Vous pouvez connecter l'Arduino Nano ESP32 à un courtier MQTT exécuté sur votre Raspberry Pi, par exemple, Mosquitto.
- Vous pouvez également connecter l'Arduino Nano 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'Arduino Nano ESP32 peut se connecter à un courtier Mosquitto en ligne. Nous ferons échanger des données à l'Arduino Nano ESP32 par l'intermédiaire de ce courtier via Internet.
Après cela, nous installerons le courtier Mosquitto sur notre ordinateur. Ensuite, nous connecterons l'Arduino Nano ESP32 à ce courtier local et continuerons à envoyer et recevoir des données.
Une fois que vous aurez terminé ce tutoriel, vous pourrez approfondir vos connaissances en explorant ces tutoriels supplémentaires :
Ces tutoriels fourniront plus de détails sur les sujets associés.
Connectez Arduino Nano ESP32 à un courtier MQTT en ligne
Dans cette partie, nous apprendrons comment connecter l'Arduino Nano 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 Arduino Nano ESP32
Le code Arduino Nano 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
Pour commencer avec l'Arduino Nano ESP32, suivez ces étapes :
- Si vous êtes nouveau avec l'Arduino Nano ESP32, consultez le tutoriel sur comment configurer l'environnement pour Arduino Nano ESP32 dans l'Arduino IDE.
- Câblez les composants selon le schéma fourni.
- Connectez la carte Arduino Nano ESP32 à votre ordinateur à l'aide d'un câble USB.
- Lancez l'Arduino IDE sur votre ordinateur.
- Sélectionnez la carte Arduino Nano ESP32 et son port COM correspondant.
- Ouvrez l'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 cherchez la bibliothèque MQTT de Joel Gaehwiler.
- Cliquez sur le bouton Install pour installer la bibliothèque MQTT.
- Tapez Arduino Nano ESP32Json dans la barre de recherche, puis cherchez la bibliothèque Arduino Nano ESP32Json de Benoit Blanchon.
- Cliquez sur le bouton Install pour installer la bibliothèque Arduino Nano ESP32Json.
- 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, sans 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 car les identifiants et les sujets des clients MQTT sont les mêmes pour tout le monde.
- Cliquez sur le bouton Upload sur l'IDE Arduino pour téléverser le code sur Arduino Nano ESP32
- Ouvrez le moniteur série
- Voir le résultat sur le moniteur série.
Comme vous pouvez le voir, l'Arduino Nano ESP32 publie des messages au courtier MQTT, puis reçoit à nouveau le même message. Cela est dû au fait que le code ci-dessus s'abonne au même sujet sur lequel il publie des données. Si vous ne souhaitez pas que l'Arduino Nano ESP32 reçoive le message qu'il publie, il suffit de rendre le sujet SUBSCRIBE différent du sujet PUBLISH.
Connectez Arduino Nano ESP32 au courtier MQTT installé sur votre PC.
Installation du courtier MQTT Mosquitto
- Téléchargez le Mosquitto MQTT Broker
- Installez-le sur le disque D: plutôt que sur le disque C:. Évitez d'installer le broker Mosquitto sur le disque C: pour prévenir d'éventuels problèmes.
Exécutez 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:\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.5
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 de l'Éditeur
- Publiez un message sur le même sujet en exécutant les commandes ci-dessous une à une (remplacez par votre adresse IP) :
- Vous verrez :
Vous verrez que le message est transmis à la Fenêtre de l'Abonné comme suit :
Maintenant, vous avez installé avec succès le courtier MQTT Mosquitto sur votre PC. Veuillez ne PAS fermer trois fenêtres : Fenêtre du Courtier, Fenêtre de l'Abonné et Fenêtre de l'Éditeur. Nous les utiliserons ensuite.
Code Arduino Nano ESP32
Le code Arduino Nano ESP32 ci-dessous effectue :
- Se connecter au broker MQTT
- S'abonner à un sujet
- Publier périodiquement des messages sur un autre sujet
Étapes rapides
Pour commencer avec l'Arduino Nano ESP32, suivez ces étapes :
- Si vous débutez avec l'Arduino Nano ESP32, consultez le tutoriel sur comment configurer l'environnement pour l'Arduino Nano ESP32 dans l'IDE Arduino.
- Câblez les composants selon le schéma fourni.
- Connectez la carte Arduino Nano ESP32 à votre ordinateur à l'aide d'un câble USB.
- Lancez l'IDE Arduino sur votre ordinateur.
- Sélectionnez la carte Arduino Nano ESP32 et le port COM correspondant.
- 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 dans l'IDE Arduino pour télécharger le code sur l'Arduino Nano ESP32.
Envoyer un message de l'Arduino Nano ESP32 vers un PC via MQTT
Les codes Arduino Nano ESP32 publient des données sur le sujet MQTT esp32-001/send, Fenêtre d'abonné sur PC souscrit à ce sujet pour recevoir les données.
- Ouvrez le moniteur série, vous verrez l'Arduino Nano 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 Arduino Nano ESP32 comme ci-dessous :
Envoyer un message depuis un PC vers un Arduino Nano ESP32 via MQTT
Arduino Nano ESP32 s'abonne au sujet esp32-001/receive, Fenêtre de Publication sur PC publie un message à ce sujet pour l'envoyer à l'Arduino Nano ESP32.
- Publiez un message sur le sujet auquel Arduino Nano 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'Arduino Nano ESP32 sur le moniteur série comme ci-dessous :