Utiliser ESP-01 avec MQTT : Comment connecter et contrôler des appareils IoT

Le fait de disposer d’un budget limité ne signifie pas nécessairement que vous ne pouvez pas vous lancer dans des projets de bricolage avancés. Si vous recherchez un module WiFi petit, abordable et pratique pour faire évoluer vos projets IoT, le module ESP-01 est un excellent choix. Cependant, l’intégration d’un tel module avec un protocole léger comme MQTT peut s’avérer délicate, surtout si vous êtes novice en matière de développement IoT.

La programmation de la carte ESP-01 seule peut s’avérer difficile par rapport aux autres modules de la série ESP8266. Mais passons en revue les bases de toute la configuration matérielle et logicielle dont vous avez besoin pour commencer à utiliser le module, ainsi que la façon de configurer MQTT de manière simple et procédurale.

Apprendre à connaître la carte

ESP8266 ESP-01 est un module Wifi petit et compact qui est livré avec une puce ESP8266EX, qui est un SoC hautement intégré conçu pour les applications IoT.

Le module comprend un microcontrôleur sans fil monopuce avec une pile de protocoles TCP/IP et est capable de se connecter à un réseau sans fil ou d’agir en tant que point d’accès. Le module ESP-01 est également doté d’un en-tête 2×4 broches qui permet d’accéder à ses broches GPIO, à l’alimentation et à la masse, ainsi qu’à l’interface UART.

Configuration du matériel

Le module n’est pas du tout compatible avec une planche à pain. Pour plus de commodité, vous pouvez acheter une carte d’extension préconstruite ou simplement procéder à l’ancienne – en utilisant des fils de connexion et une planche à pain.

Il existe un programmateur dédié, le ESP8266 Serial Module Board, qui peut faciliter votre expérience de la programmation. Si vous préférez suivre cette voie, DIYHOBI propose un tutoriel pratique sur la manière de flasher un programme dans le module ESP-01 à l’aide d’un programmateur (y compris l’adaptateur de module convertisseur USB-TTL CH340G).

Mais vous pouvez toujours programmer le module à l’aide d’une carte Arduino. Consultez le schéma de circuit ci-dessous à titre de référence.

Bien que cela puisse sembler tentant, nous ne recommandons généralement pas de connecter le module directement à la broche 3,3v de l’Arduino car il nécessite plus de courant que la broche n’en fournit. Au lieu de cela, connectez l’Arduino 5V à un régulateur de tension 3.3V comme LM1117/LD117, puis alimentez le module WiFi à partir du régulateur.

Voir aussi :  10 planches à roulettes électriques passionnantes et faciles à fabriquer

Ne connectez pas le VCC et CH_PD de l’ESP aux broches 5V de l’Arduino. En connectant le module à 5V peut l’endommager.

Tous les condensateurs sont 10uF et la résistance est une 1K de 1K.

Exigences en matière de logiciel

Le module ESP-01 est généralement utilisé avec la plateforme Arduino. En tant que tel, la configuration du logiciel est assez simple, surtout si vous êtes familier avec Arduino C. Cependant, si vous êtes plus familier avec Raspberry, il y a beaucoup de projets Raspberry Pi IoT que vous pouvez essayer.

Voici les exigences de base :

  • Un courtier ou un serveur MQTT (tel que Mosquitto ou CloudMQTT).
  • Un IDE Arduino avec la bibliothèque de base ESP8266.
  • La bibliothèque PubSubClient pour Arduino.

Vous devez vous rappeler que le fait d’avoir votre propre serveur MQTT localement vous donne de la flexibilité dans vos projets.

Installation des bibliothèques nécessaires

Tout d’abord, téléchargez et installez l’IDE Arduino sur votre ordinateur. Une fois installé, ouvrez l’IDE Arduino, et allez sur Fichier > Préférences.

Dans le URL supplémentaires du gestionnaire de cartes entrez l’URL suivante :

Cliquez sur OK pour fermer la fenêtre des préférences.

Ensuite, allez à Outils > Conseil > Gestionnaire de tableaux.

Recherchez ensuite esp8266 et installez le paquet de cartes esp8266, qui comprend toutes les bibliothèques nécessaires pour le module ESP-01.

Pour installer la bibliothèque PubSubClient, allez à l’adresse suivante Sketch > Inclure la bibliothèque > Gérer les bibliothèques.

Rechercher PubSubClient et cliquez sur la bibliothèque pour l’installer.

Une fois toutes les bibliothèques nécessaires installées, vous pouvez commencer à programmer le module ESP-01. Une chose à noter cependant, c’est que vous pouvez utiliser la bibliothèque Wifi.h qui est incluse dans la bibliothèque, ou télécharger le fichier ESPWifi.h bibliothèque et incluez-la dans votre sketch.

Établissement d’une connexion entre ESP-01 et le courtier MQTT

Un courtier MQTT est un serveur qui sert d’intermédiaire entre les clients MQTT. Il permet aux clients d’envoyer et de recevoir des messages les uns des autres par le biais d’un modèle de publication et d’abonnement.

Pour connecter votre module ESP-01 à un courtier MQTT, vous devrez spécifier l’adresse IP et le numéro de port du courtier dans votre code. Vous devrez également fournir un identifiant client unique qui identifie votre module ESP-01 auprès du courtier.

Tout d’abord, incluez les bibliothèques nécessaires en haut de votre sketch

Voir aussi :  Qu'est-ce qu'un cluster Raspberry Pi et à quoi sert-il ?

Ensuite, définissez les détails de la connexion WiFi et MQTT.

N’oubliez pas de remplacer les espaces réservés par vos propres détails de connexion WiFi et MQTT.

Ensuite, créez un client WiFi et connectez-vous à votre réseau WiFi local :

Cette fonction doit être appelée dans le setup() de votre sketch.

Ensuite, vous devez créer un client MQTT et vous connecter à votre broker MQTT :

Une fois que vous vous êtes connecté à votre courtier MQTT, vous pouvez commencer à publier et à vous abonner à des sujets.

Publication de données de l’ESP-01 vers le courtier MQTT

Maintenant que vous avez réussi à connecter votre module ESP01 au courtier MQTT, voyons comment vous pouvez publier des données de l’ESP-01 vers le courtier.

Pour publier des données, utilisez la commande client.publish() pour publier un message sur le serveur inTopic sujet.

Le message « Hello from ESP-01 » sera ainsi publié sur le serveur inTopic sujet.

Vous pouvez également publier les données des capteurs de l’ESP-01 vers le broker. Par exemple, si vous avez un capteur de température connecté à votre ESP-01, vous pouvez publier les données de température vers le broker comme indiqué ci-dessous.

Ceci publiera les données de température vers le courtier Temp .

Les données peuvent être publiées en boucle ou à intervalles réguliers, en fonction des exigences de votre projet. Veillez à ne pas inonder le broker avec trop de données et à publier à un intervalle raisonnable.

S’abonner à des sujets MQTT et recevoir des données sur ESP-01

Pour s’abonner à un sujet, utilisez la commande client.subscribe() pour s’abonner à une rubrique. Dans notre cas ci-dessous, le client s’abonne à la rubrique outTopic topic.

Une fois que vous vous êtes abonné à un sujet, vous pouvez recevoir les messages publiés sur ce sujet à l’aide de la fonction client.loop() dans la fonction loop() dans l’esquisse ci-dessous :

Cette fonction vérifie en permanence la présence de nouveaux messages et exécute la fonction de rappel lorsqu’un nouveau message a été reçu.

Pour gérer les messages reçus, définissez une fonction de rappel comme celle illustrée ci-dessous :

Cette fonction sera appelée lorsqu’un nouveau message est reçu sur le sujet souscrit. Elle imprime le message reçu sur le moniteur série.

Utilisation des niveaux de qualité de service et des fonctions de sécurité

L’une des techniques les plus importantes utilisées dans le traitement des demandes est l’utilisation des niveaux de QoS (qualité de service) pour vos messages MQTT. Les niveaux de QoS définissent la manière dont le broker et les abonnés doivent traiter vos messages. Il existe trois niveaux de QoS : 0, 1 et 2.

Voir aussi :  Comment lire les LED de votre Raspberry Pi et résoudre les problèmes de démarrage

Le niveau de qualité de service 0 est le moins fiable, car les messages ne sont envoyés qu’une seule fois et leur livraison à l’abonné n’est pas garantie. Le niveau de qualité de service 1 est plus fiable, car les messages sont envoyés au moins une fois et il est garanti qu’ils seront remis à l’abonné au moins une fois. Le niveau de qualité de service 2 est le plus fiable, car les messages sont envoyés exactement une fois et leur remise à l’abonné est garantie une seule fois. La façon dont vos appareils communiquent correspond à d’autres problèmes de sécurité courants de l’internet des objets (IoT) et à des correctifs que vous devez suivre de près.

Pour utiliser les niveaux de qualité de service, vous pouvez spécifier le niveau souhaité lors de la publication des messages à l’aide de l’option client.publish() fonction :

Cette fonction publie le message Bonjour le monde ! à l’adresse sujet avec le niveau de QoS 1.

Une autre technique avancée consiste à utiliser Dernière volonté et testament (LWT) (Dernière volonté et testament). Les messages LWT sont des messages envoyés par le courtier lorsqu’un client se déconnecte de manière inattendue. Nous pensons que cela est important pour détecter les appareils hors ligne ou pour déclencher des actions lorsqu’un appareil se déconnecte.

Pour utiliser les messages LWT, vous pouvez spécifier le message LWT lors de la connexion au courtier à l’aide de l’option client.setWill() de la fonction :

Cette fonction définit le message LWT comme suit hors ligne sur le l’état avec le niveau 1 de QoS et l’indicateur de rétention réglé sur true.

Préparez votre prochain projet IoT

Le module ESP-01 est une solution abordable et compacte pour les projets IoT, et son utilisation avec MQTT peut faire passer votre projet au niveau supérieur. Bien que la configuration initiale puisse être décourageante, les avantages de MQTT, tels que la communication légère et l’évolutivité élevée, en font un investissement qui en vaut la peine.

S’abonner à notre lettre d’information

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *