{"id":386561,"date":"2022-01-11T10:54:41","date_gmt":"2022-01-11T09:54:41","guid":{"rendered":"https:\/\/iotworlds.com\/la-signification-mqtt-pour-connecter-des-appareils-iot-avec-des-applications-web\/"},"modified":"2022-01-11T10:54:46","modified_gmt":"2022-01-11T09:54:46","slug":"la-signification-mqtt-pour-connecter-des-appareils-iot-avec-des-applications-web","status":"publish","type":"post","link":"https:\/\/iotworlds.com\/fr\/la-signification-mqtt-pour-connecter-des-appareils-iot-avec-des-applications-web\/","title":{"rendered":"La signification MQTT pour connecter des appareils IoT avec des applications Web"},"content":{"rendered":"\n<p>Avec tous les protocoles de messagerie disponibles, il peut \u00eatre difficile d&rsquo;en choisir un seul. Et avec autant d&rsquo;options, il est trop facile de se retrouver dans une situation o\u00f9 vous en essayez une qui ne fonctionne pas pour vous ou votre \u00e9quipe. Mqtt est un protocole l\u00e9ger qui ne n\u00e9cessite que des clients et des courtiers, il est donc parfait pour les situations o\u00f9 vous ne voulez pas de soucis. Cet article explorera de quoi ce protocole est capable et comment il r\u00e9alise ces choses!<\/p>\n\n<h2 class=\"wp-block-heading\">Qu&rsquo;est-ce que MQTT ?<\/h2>\n\n<p>Mqtt est un protocole de messagerie l\u00e9ger qui ne n\u00e9cessite que des clients et des courtiers. C&rsquo;est parfait pour les situations o\u00f9 vous ne voulez pas de tracas ou d&rsquo;histoires, car cela n\u00e9cessite si peu de votre part.<\/p>\n\n<h2 class=\"wp-block-heading\">Qu&rsquo;est-ce qu&rsquo;un protocole de messagerie?<\/h2>\n\n<p>Un protocole de messagerie est un ensemble de r\u00e8gles utilis\u00e9es pour permettre aux applications sur diff\u00e9rentes machines de communiquer. Mqtt a \u00e9t\u00e9 sp\u00e9cialement con\u00e7u pour l&rsquo;Internet des objets (IoT). Avec un si large \u00e9ventail d&rsquo;autres protocoles disponibles, il peut sembler \u00e9trange d&rsquo;en cr\u00e9er un autre \u00e0 cette fin. Mais, \u00e9tant donn\u00e9 que tant d&rsquo;appareils et de services reposent sur ce domaine, nous en verrons probablement de plus en plus au fil du temps!<\/p>\n\n<h2 class=\"wp-block-heading\">Qu&rsquo;y a-t-il de si g\u00e9nial avec MQTT?<\/h2>\n\n<p>Mqtt est vraiment unique, car il vous donne tellement avec presque rien. Vous n&rsquo;avez pas besoin d&rsquo;un serveur d\u00e9di\u00e9 ou d&rsquo;un redirecteur comme le font de nombreux autres protocoles, ce qui signifie pas de probl\u00e8mes d&rsquo;infrastructure non plus. Tout ce dont vous avez besoin est un courtier d\u00e9j\u00e0 existant et tout mat\u00e9riel avec une connexion Internet. Gr\u00e2ce \u00e0 la qualit\u00e9 de son travail et \u00e0 sa l\u00e9g\u00e8ret\u00e9, ce protocole conna\u00eet un succ\u00e8s grandissant. Parce qu&rsquo;il est open source et gratuit, vous pouvez facilement commencer sans avoir \u00e0 payer de frais ou de frais d&rsquo;abonnement. Et avec la prise en charge des courtiers int\u00e9gr\u00e9e \u00e0 la biblioth\u00e8que MQTT pour Arduino, nous sommes ravis de voir quels excellents produits nous seront propos\u00e9s.<\/p>\n\n<h2 class=\"wp-block-heading\">Quelles sont les fonctionnalit\u00e9s de MQTT ?<\/h2>\n\n<p>Mqtt est l&rsquo;un des meilleurs exemples de protocole de messagerie simple et l\u00e9ger que vous trouverez. Son principal argument de vente est sa facilit\u00e9 d&rsquo;utilisation &#8211; tout appareil dot\u00e9 d&rsquo;une connexion Internet peut profiter de ce que ce protocole a \u00e0 offrir. Mais il y a plus qu&rsquo;une simple facilit\u00e9 d&rsquo;utilisation \u00e0 ce protocole. Explorons ce que vous pouvez en attendre d&rsquo;autre!<\/p>\n\n<h2 class=\"wp-block-heading\">Exemples d&rsquo;utilisation de MQTT<\/h2>\n\n<p>une. Appareils IoT dans une usine contr\u00f4lant des pompes et des vannes<\/p>\n\n<p>b. Une station m\u00e9t\u00e9o avec un capteur rapportant \u00e0 une base de donn\u00e9es sur le cloud<\/p>\n\n<p>c. Un syst\u00e8me d&rsquo;alarme qui signale l&rsquo;ouverture ou la fermeture des portes<\/p>\n\n<p>r\u00e9. Certaines lumi\u00e8res dans un bureau s&rsquo;allument lorsqu&rsquo;un mouvement est d\u00e9tect\u00e9<\/p>\n\n<h2 class=\"wp-block-heading\">1. Qu&rsquo;est-ce que MQTT et quelles sont ses fonctionnalit\u00e9s?<\/h2>\n\n<p>MQTT signifie Message Queuing Telemetry Transport, ce qui peut sembler compliqu\u00e9, mais signifie simplement que c&rsquo;est un moyen pour les appareils IoT de communiquer entre eux via Internet. Il s&rsquo;ex\u00e9cute sur TCP\/IP comme HTTP, SMTP, etc., mais contrairement \u00e0 HTTP qui sert \u00e0 communiquer sur Internet, MQTT est utilis\u00e9 avec des appareils connect\u00e9s les uns aux autres avec un r\u00e9seau, g\u00e9n\u00e9ralement un r\u00e9seau IP. Il est le plus souvent utilis\u00e9 dans l&rsquo;IoT avec des appareils embarqu\u00e9s de faible puissance qui se connectent \u00e0 des \u00e9l\u00e9ments tels que des cartes Raspberry Pi ou Arduino.<\/p>\n\n<h2 class=\"wp-block-heading\">2. Comment \u00e7a marche ?<\/h2>\n\n<p>Cela fonctionne un peu comme un e-mail. Un appareil IoT publie un message dans un sujet. C&rsquo;est comme envoyer un e-mail \u00e0 quelqu&rsquo;un, mais au lieu d&rsquo;une personne, c&rsquo;est un nom de sujet. Le message peut contenir jusqu&rsquo;\u00e0 2 Ko de donn\u00e9es et est envoy\u00e9 sous forme de paquet.<\/p>\n\n<p>Un deuxi\u00e8me abonn\u00e9 MQTT \u00e9coute les paquets avec son propre ID unique ou son ID client. Il fait ensuite quelque chose avec le message. C&rsquo;est comme lorsque quelqu&rsquo;un re\u00e7oit un e-mail, il en fait quelque chose ; lisez-le, envoyez-le ailleurs, etc.<\/p>\n\n<p>MQTT a un niveau de qualit\u00e9 de service (QoS), ce qui signifie qu&rsquo;il peut y avoir diff\u00e9rents niveaux de priorit\u00e9 pour les messages. Le niveau de QoS est d\u00e9fini par le client et chaque paquet envoy\u00e9 a ce niveau de priorit\u00e9.<\/p>\n\n<h2 class=\"wp-block-heading\">3. Avantages de MQTT<\/h2>\n\n<p>Il est l\u00e9ger, fonctionne sur TCP\/IP, moins de surcharge que HTTP<\/p>\n\n<p>Les messages sont stock\u00e9s dans une file d&rsquo;attente jusqu&rsquo;\u00e0 ce qu&rsquo;ils puissent \u00eatre envoy\u00e9s \u00e0 leur appareil de destination<\/p>\n\n<p>Il a un support de reconnexion int\u00e9gr\u00e9<\/p>\n\n<p>Chaque client peut avoir sa propre configuration de s\u00e9curit\u00e9 pour l&rsquo;authentification et le cryptage<\/p>\n\n<p>QoS permet aux diff\u00e9rents types de messages d&rsquo;avoir diff\u00e9rents niveaux de priorit\u00e9<\/p>\n\n<h2 class=\"wp-block-heading\">4. Applications de MQTT<\/h2>\n\n<p>Quelques exemples de son utilisation dans le monde r\u00e9el sont avec l&rsquo;Alliance M2M, un projet qui vise \u00e0 connecter des \u00abobjets\u00bb avec une plate-forme s\u00e9curis\u00e9e pour le transfert de donn\u00e9es entre les appareils. Un autre cas d&rsquo;utilisation concerne le projet CEPH. Il s&rsquo;agit d&rsquo;un syst\u00e8me de stockage en nuage qui peut stocker et partager des fichiers simultan\u00e9ment avec plusieurs utilisateurs. Il utilise MQTT pour s\u00e9curiser l&rsquo;acc\u00e8s distribu\u00e9 en cryptant les donn\u00e9es, ce qui permet de les transf\u00e9rer entre les appareils IoT \u00e0 l&rsquo;aide de diverses passerelles sans avoir \u00e0 se soucier de la s\u00e9curit\u00e9 des donn\u00e9es.<\/p>\n\n<h2 class=\"wp-block-heading\">5. Premiers pas avec MQTT<\/h2>\n\n<p>La premi\u00e8re chose dont on a besoin est un client MQTT ; c&rsquo;est l&rsquo;application qui envoie et re\u00e7oit des messages. La fondation Raspberry Pi propose un guide pour d\u00e9marrer avec MQTT sur votre appareil Pi. Il existe \u00e9galement d&rsquo;autres guides disponibles, tels que celui de Hackster, qui vous donne le code \u00e0 ex\u00e9cuter sur le langage de programmation Python.<\/p>\n\n<h2 class=\"wp-block-heading\">Les meilleurs cours en ligne MQTT<\/h2>\n\n<ol class=\"wp-block-list\"><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWomid=39197murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmastering-mqtt%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Ma\u00eetriser le MQTT<\/a><\/strong><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWomid=39197murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-protocol%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Protocole ma\u00eetre MQTT<\/a><\/strong><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWomid=39197murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fdevelop-mqtt-client-android-app%2F\" target=\"_blank\" rel=\"noreferrer noopener\">D\u00e9velopper l&rsquo;application Android client MQTT<\/a><\/strong><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWomid=39197murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-masterclass%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Masterclass MQTT<\/strong><\/a><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWomid=39197murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmastering-mqtt-protocol%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Ma\u00eetriser le protocole MQTT: un guide de niveau d\u00e9butant \u00e0 avanc\u00e9<\/strong><\/a><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWomid=39197murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fiot-mqtt-esp8266%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>IoT: MQTT avec Adafruit, App Inventor et ESP8266<\/strong><\/a><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWomid=39197murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-nodemcu-esp8266-node-red-android%2F\" target=\"_blank\" rel=\"noreferrer noopener\">MQTT Nodemcu (ESP8266) avec Nodered, Wifi et Bluetooth<\/a><\/strong><\/li><\/ol>\n<h2 class=\"wp-block-heading\">TLS vs SSL pour cr\u00e9er un courtier MQTT<\/h2>\n\n<h3 class=\"wp-block-heading\">Avantages de l&rsquo;utilisation de TLS:<\/h3>\n\n<p>-S\u00e9curit\u00e9 : TLS fournit une connexion s\u00e9curis\u00e9e entre le client et le courtier. Cela aide \u00e0 prot\u00e9ger contre les attaques de l&rsquo;homme du milieu et l&rsquo;\u00e9coute clandestine.<\/p>\n\n<p>-Authentification:TLS fournit une authentification du courtier et du client, ce qui permet de garantir que seuls les clients autoris\u00e9s peuvent se connecter au courtier.<\/p>\n\n<p>-Cryptage:TLS fournit un cryptage des donn\u00e9es entre le client et le courtier, aidant \u00e0 prot\u00e9ger les informations contre les personnes non autoris\u00e9es.<\/p>\n\n<h3 class=\"wp-block-heading\">Inconv\u00e9nients de l&rsquo;utilisation de TLS:<\/h3>\n\n<p>-Performances:TLS peut ajouter une surcharge aux communications, ce qui peut r\u00e9duire les performances.<\/p>\n\n<p>-Certificats: pour utiliser TLS, vous avez besoin de certificats pour le client et le courtier. Ces certificats peuvent \u00eatre difficiles \u00e0 obtenir et peuvent \u00eatre co\u00fbteux \u00e0 utiliser, ce qui peut augmenter le co\u00fbt d&rsquo;utilisation de TLS.<\/p>\n\n<h3 class=\"wp-block-heading\">Avantages de l&rsquo;utilisation de SSL:<\/h3>\n\n<p>-S\u00e9curit\u00e9 : SSL fournit une connexion s\u00e9curis\u00e9e entre le client et le courtier, tout comme TLS. Il aide \u00e9galement \u00e0 prot\u00e9ger contre les attaques de l&rsquo;homme du milieu et l&rsquo;\u00e9coute clandestine.<\/p>\n\n<p>-Certificats: \u00e9tant donn\u00e9 que SSL est construit au-dessus de TLS, vous pouvez utiliser les m\u00eames certificats pour chiffrer le trafic.<\/p>\n\n<h3 class=\"wp-block-heading\">Inconv\u00e9nients de l&rsquo;utilisation de SSL:<\/h3>\n\n<p>-Performance: le chiffrement entre le client et le courtier ajoutera une surcharge aux communications, ce qui r\u00e9duit les performances.<\/p>\n\n<p>-Utilisation de la m\u00e9moire: le protocole SSL utilisera plus de m\u00e9moire que les autres protocoles car il maintient une session de cryptage\/d\u00e9cryptage avec le courtier.<\/p>\n\n<p>-Probl\u00e8mes de version: SSL est un protocole plus ancien et il ne prend pas en charge certaines des fonctionnalit\u00e9s fournies par TLS (par exemple, les nouveaux chiffrements).<\/p>\n\n<p>Comme vous pouvez le voir, TLS et SSL assurent tous deux la s\u00e9curit\u00e9, l&rsquo;authentification et le cryptage pour la communication entre les clients et les courtiers ; cependant, ils le font de mani\u00e8re l\u00e9g\u00e8rement diff\u00e9rente. Il n&rsquo;y a pas de gagnant clair lorsqu&rsquo;il s&rsquo;agit de d\u00e9cider si vous devez utiliser TLS ou SSL pour votre courtier MQTT, car la d\u00e9cision d\u00e9pendra de ce dont vous avez besoin de votre infrastructure et du temps\/d&rsquo;argent dont vous disposez \u00e0 d\u00e9penser.<\/p>\n\n<p>En conclusion je dirais qu&rsquo;il y a une bonne r\u00e9ponse selon les besoins du projet. Dans ce cas, il est pr\u00e9f\u00e9rable d&rsquo;utiliser TLS, car il offre plus d&rsquo;avantages que SSL.<\/p>\n\n<h2 class=\"wp-block-heading\">Les 5 principales raisons d&rsquo;utiliser le protocole MQTT dans vos projets IoT<\/h2>\n\n<p>MQTT est un protocole de messagerie de machine \u00e0 machine (M2M), con\u00e7u pour les appareils aux ressources limit\u00e9es, qui connecte les appareils au cloud.<\/p>\n\n<p>1. Il est l\u00e9ger et facile \u00e0 utiliser : MQTT est un protocole de messagerie de publication\/abonnement con\u00e7u pour \u00eatre l\u00e9ger et facile \u00e0 utiliser.<\/p>\n\n<p>2. Il a un faible encombrement: MQTT utilise environ 1\/10e de la bande passante de HTTP, ce qui le rend id\u00e9al pour les applications IoT avec des ressources r\u00e9seau limit\u00e9es.<\/p>\n\n<p>3. Il prend en charge la qualit\u00e9 de service: MQTT prend en charge la qualit\u00e9 de service (QoS), qui garantit la livraison des messages avec la latence ou la qualit\u00e9 souhait\u00e9e.<\/p>\n\n<p>4. Il peut fonctionner sur n&rsquo;importe quel r\u00e9seau : MQTT est un protocole multiplateforme qui peut fonctionner sur les r\u00e9seaux cellulaires WiFi, Bluetooth Low Energy (BLE) ou 2G\/3G.<\/p>\n\n<p>5. Il dispose de plusieurs biblioth\u00e8ques clientes disponibles dans de nombreux langages de programmation : Il existe des biblioth\u00e8ques clientes pour C, C++, JavaScript, Arduino IDE, Python et Java.<\/p>\n\n<h2 class=\"wp-block-heading\">Comment configurer un courtier MQTT \u00e0 l&rsquo;aide d&rsquo;un conteneur Docker sur votre PC ou un serveur VPS?<\/h2>\n\n<p>MQTT est un protocole de messagerie de machine \u00e0 machine (M2M)\/\u00abIoT\u00bb, con\u00e7u comme un transport de messagerie de publication\/abonnement extr\u00eamement l\u00e9ger. Il est utile pour les connexions avec des emplacements distants o\u00f9 une faible empreinte de code est requise et\/ou la bande passante du r\u00e9seau est primordiale.<\/p>\n\n<p>Dans cet article, nous allons vous montrer comment configurer un courtier MQTT \u00e0 l&rsquo;aide d&rsquo;un conteneur Docker sur votre PC ou un serveur VPS.<\/p>\n\n<p>Docker est un moteur de conteneurisation qui vous aide \u00e0 d\u00e9ployer facilement vos applications avec toutes ses d\u00e9pendances. Il fournit un environnement coh\u00e9rent sur chaque h\u00f4te Docker, vous permet de gagner du temps et d&rsquo;am\u00e9liorer la portabilit\u00e9 de votre code entre les diff\u00e9rentes distributions Linux. Par exemple, si une application d\u00e9pend d&rsquo;un grand nombre de biblioth\u00e8ques syst\u00e8me ou de certaines versions de biblioth\u00e8ques rares, et donc difficilement portable, vous pouvez simplement l&rsquo;encapsuler et la d\u00e9ployer en tant que conteneur Docker.<\/p>\n\n<h3 class=\"wp-block-heading\">1) Installation de Docker pour Windows\/Mac<\/h3>\n\n<p>Docker est disponible pour les utilisateurs de Microsoft Windows et Mac OS X. Vous pouvez t\u00e9l\u00e9charger la version appropri\u00e9e ici: https:\/\/docs.docker.com\/docker-for-windows\/install\/.<\/p>\n\n<h3 class=\"wp-block-heading\">2) Installation de Docker-compose sur votre h\u00f4te<\/h3>\n\n<p>Afin de d\u00e9ployer facilement notre broker MQTT fait maison, nous utiliserons l&rsquo;outil docker-compose. Il vous permet de d\u00e9finir et d&rsquo;ex\u00e9cuter des applications Docker multi-conteneurs \u00e0 l&rsquo;aide d&rsquo;un simple fichier YAML. Vous pouvez en savoir plus sur docker-compose ici: https:\/\/docs.docker.com\/compose\/.<\/p>\n\n<p>Vous pouvez t\u00e9l\u00e9charger l&rsquo;outil docker-compose \u00e0 partir d&rsquo;ici: https:\/\/github.com\/docker\/compose\/releases\/. Une fois cela fait, vous devriez pouvoir ex\u00e9cuter la commande &lsquo;docker-compose&rsquo; dans votre terminal et v\u00e9rifier sa version ou utiliser l&rsquo;une de ses sous-commandes.<\/p>\n\n<h3 class=\"wp-block-heading\">Terminologie Docker de base pour cet article:<\/h3>\n\n<p>1) \u00abConteneur Docker\u00bb est le processus qui s&rsquo;ex\u00e9cute en arri\u00e8re-plan lorsque vous ex\u00e9cutez une image \u00e0 l&rsquo;aide de la commande docker run. Une instance en cours d&rsquo;ex\u00e9cution d&rsquo;une image est appel\u00e9e un \u00abconteneur\u00bb, en ce qui concerne sa cr\u00e9ation lors de la construction de docker.<\/p>\n\n<p>2) \u00abImage Docker\u00bb est un mod\u00e8le en lecture seule avec des instructions pour cr\u00e9er un conteneur Docker. Il est compos\u00e9 d&rsquo;une s\u00e9rie de couches de syst\u00e8me de fichiers repr\u00e9sentant diff\u00e9rents \u00e9tats de l&rsquo;image finale que nous voulons cr\u00e9er<\/p>\n\n<p>3) La commande copy at docker build cr\u00e9e une image en lisant sa description \u00e0 partir d&rsquo;un fichier Docker dans le r\u00e9pertoire de travail actuel, puis en ex\u00e9cutant la commande appropri\u00e9e dans un nouveau calque au-dessus de l&rsquo;image actuelle.<\/p>\n\n<p>4) Les \u00abvolumes\u00bb sont des dossiers qui vous permettent de mapper des dossiers locaux sur votre machine h\u00f4te vers des r\u00e9pertoires \u00e0 l&rsquo;int\u00e9rieur de vos conteneurs Docker. Ceci est utile si, par exemple, vous souhaitez stocker des donn\u00e9es sur votre conteneur ou vos fichiers de configuration. Vous pouvez cr\u00e9er un volume en sp\u00e9cifiant le chemin du dossier \u00e0 partir de votre syst\u00e8me h\u00f4te \u00e0 l&rsquo;aide de docker run.<\/p>\n\n<p>Le fichier YAML est un fichier de configuration qui contient des informations pour la connexion \u00e0 une base de donn\u00e9es externe, un serveur MQTT, etc., ainsi que des informations sur la mani\u00e8re et les conteneurs \u00e0 cr\u00e9er. Nous allons cr\u00e9er un fichier YAML pour configurer notre courtier dans la section suivante.<\/p>\n\n<h3 class=\"wp-block-heading\">3) Cr\u00e9ation du fichier YAML pour configurer votre Broker MQTT<\/h3>\n\n<p>Les fichiers YAML sont g\u00e9n\u00e9ralement compos\u00e9s de plusieurs paires cl\u00e9-valeur, qui sont connect\u00e9es par des deux-points (\u00ab\u00a0:\u00a0\u00bb). Vous pouvez en savoir plus sur YAML ici: https:\/\/en.wikipedia.org\/wiki\/YAML#Syntax.<\/p>\n\n<p>Dans notre cas, nous allons cr\u00e9er un fichier YAML pour configurer le broker MQTT comme suit:<\/p>\n\n<p>version : \u00ab\u00a03\u00a0\u00bb<\/p>\n\n<p>Dans cette section du YAML, nous d\u00e9finissons le nom du conteneur comme \u00abhomer-mqtt\u00bb et sp\u00e9cifions l&rsquo;image qui doit \u00eatre utilis\u00e9e pour le cr\u00e9er. Dans ce cas, nous choisirons l&rsquo;image \u00ab\u00a0davidtgoldblatt\/homer-mqtt\u00a0\u00bb de Docker Hub \u00e0 partir d&rsquo;ici: https:\/\/hub.docker.com\/_\/homer-mqtt\/.<\/p>\n\n<p>Dans notre fichier YAML, nous d\u00e9clarons \u00e9galement quelques volumes comme suit:<\/p>\n\n<p>tomes :<\/p>\n\n<p>&#8211; \/var\/run\/docker.sock:\/var\/run\/docker.sock<\/p>\n\n<p>Ces volumes nous permettront d&rsquo;avoir un stockage persistant pour le conteneur Docker, permettant \u00e0 nos param\u00e8tres de persister lors des red\u00e9marrages et des plantages du serveur. Vous pouvez en savoir plus sur les volumes ici: https:\/\/docs.docker.com\/engine\/userguide\/dockervolumes\/.<\/p>\n\n<p>Afin de sp\u00e9cifier les d\u00e9tails de notre base de donn\u00e9es, nous ajoutons une section \u00abdb_addresses\u00bb avec les entr\u00e9es suivantes:<\/p>\n\n<p>adresses_base:<\/p>\n\n<p>&#8211; \u00ab\u00a0h\u00f4te=172.17.0.2 port=3306 utilisateur=homer dbname=homer\u00a0\u00bb<\/p>\n\n<p>Dans l&rsquo;exemple ci-dessus, nous sp\u00e9cifions un h\u00f4te et un port pour notre instance de base de donn\u00e9es. Notez que lorsque vous sp\u00e9cifiez un utilisateur, vous devez ajouter un symbole \u00ab @ \u00bb avant le nom d&rsquo;utilisateur. C&rsquo;est parce que le nom d&rsquo;utilisateur se compose \u00e0 la fois de lettres et de chiffres dans les syst\u00e8mes Unix. Si vous omettez cela, Docker se plaint avec des erreurs comme celle-ci:<\/p>\n\n<p>vous devez \u00e9chapper des caract\u00e8res sp\u00e9ciaux comme @ ou *<\/p>\n\n<p>Afin de sp\u00e9cifier nos identifiants de base de donn\u00e9es, nous ajoutons une section \u00abdatabase_password\u00bb comme suit:<\/p>\n\n<p>database_password: \u00ab\u00a0homerun1\u00a0\u00bb<\/p>\n\n<p>Dans l&rsquo;exemple ci-dessus, vous devez utiliser le mot de passe de votre choix. Si vous souhaitez configurer un mot de passe de base de donn\u00e9es pour la premi\u00e8re fois, vous pouvez consulter notre guide sur la cr\u00e9ation d&rsquo;un nouvel utilisateur root sans mot de passe ici: https:\/\/homer-mqtt.readthedocs.io\/en\/latest\/configure_database_and_create_new_root_user .html<\/p>\n\n<p>Afin de sp\u00e9cifier les d\u00e9tails de notre serveur MQTT, nous ajoutons une section \u00abmqtt_server\u00bb avec les entr\u00e9es suivantes:<\/p>\n\n<p>mqtt_server:<\/p>\n\n<p>&#8211; nom : mqtt h\u00f4te : 172.17.0.1 port : 8883 nom d&rsquo;utilisateur : \u00a0\u00bb homerun \u00a0\u00bb mot de passe : \u00a0\u00bb homerun1 \u00ab\u00a0<\/p>\n\n<p>Dans l&rsquo;exemple ci-dessus, nous ex\u00e9cutons le courtier sur le port 8883 et utilisons le nom d&rsquo;utilisateur \u00ab\u00a0homerun\u00a0\u00bb et le mot de passe \u00ab\u00a0homerun1\u00a0\u00bb, que nous avons cr\u00e9\u00e9s dans notre base de donn\u00e9es.<\/p>\n\n<h3 class=\"wp-block-heading\">4) Ex\u00e9cutez votre courtier MQTT avec Docker<\/h3>\n\n<p>Dans cette \u00e9tape, nous allons cr\u00e9er un conteneur Docker \u00e0 partir de notre fichier YAML et l&rsquo;ex\u00e9cuter.<\/p>\n\n<p>Pour ce faire, allez dans le r\u00e9pertoire o\u00f9 vous avez le fichier YAML et ex\u00e9cutez \u00ab docker-compose up \u00bb comme suit :<\/p>\n\n<p>$ docker-composer<\/p>\n\n<p>Cette commande va cr\u00e9er un nouveau conteneur Docker bas\u00e9 sur la description de votre fichier YAML et le d\u00e9marrer.<\/p>\n\n<p>Si vous souhaitez d\u00e9marrer cela en arri\u00e8re-plan, utilisez plut\u00f4t \u00ab\u00a0docker-compose up -d\u00a0\u00bb. Si vous souhaitez imprimer les journaux de votre conteneur docker, ex\u00e9cutez \u00ab docker-compose logs mqttclient \u00bb comme suit:<\/p>\n\n<p>$ docker-compose journaux mqttclient<\/p>\n\n<p>Vous pouvez \u00e9galement voir le conteneur docker en temps r\u00e9el en utilisant \u00ab\u00a0docker-compose ps\u00a0\u00bb comme suit:<\/p>\n\n<p>$ docker-composer ps<\/p>\n\n<h3 class=\"wp-block-heading\">5) Ex\u00e9cuter votre client MQTT avec Docker<\/h3>\n\n<p>Dans cette \u00e9tape, nous allons cr\u00e9er un conteneur Docker \u00e0 partir de notre fichier YAML et l&rsquo;ex\u00e9cuter.<\/p>\n\n<p>Pour ce faire, allez dans le r\u00e9pertoire o\u00f9 vous avez le fichier YAML et ex\u00e9cutez \u00ab docker-compose up \u00bb comme suit :<\/p>\n\n<p>$ docker-composer<\/p>\n\n<p>Cette commande va cr\u00e9er un nouveau conteneur Docker bas\u00e9 sur la description de votre fichier YAML et le d\u00e9marrer.<\/p>\n\n<p>Si vous souhaitez d\u00e9marrer cela en arri\u00e8re-plan, utilisez plut\u00f4t \u00ab\u00a0docker-compose up -d\u00a0\u00bb. Vous pouvez \u00e9galement voir le conteneur docker en temps r\u00e9el en utilisant \u00ab\u00a0docker-compose ps\u00a0\u00bb comme suit:<\/p>\n\n<p>$ docker-composer ps<\/p>\n\n<h3 class=\"wp-block-heading\">6) Utilisation de votre client MQTT avec Docker<\/h3>\n\n<p>Maintenant que notre fichier YAML est configur\u00e9, nous pouvons maintenant commencer \u00e0 utiliser notre client MQTT avec Docker.<\/p>\n\n<p>Pour ce faire, allez dans le r\u00e9pertoire o\u00f9 vous avez votre fichier YAML et ex\u00e9cutez \u00ab docker exec \u00bb comme suit :<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>Vous devriez maintenant voir un r\u00e9pertoire appel\u00e9 \u00ab\u00a0\/home\/homerun\u00a0\u00bb (qui est le r\u00e9pertoire personnel de notre conteneur docker) et vous devriez \u00eatre \u00e0 l&rsquo;int\u00e9rieur de ce r\u00e9pertoire.<\/p>\n\n<p>Vous pouvez maintenant voir vos bases de donn\u00e9es en tapant \u00ab mysql -uroot -proot \u00bb comme suit :<\/p>\n\n<p>$ mysql -uroot -proot<\/p>\n\n<p>Vous devriez voir toutes vos bases de donn\u00e9es \u00e0 l&rsquo;\u00e9cran. Vous pouvez voir comment cr\u00e9er un nouvel utilisateur root sans mot de passe pour l&rsquo;instance MySQL ici: https:\/\/homer-mqtt.readthedocs.io\/en\/latest\/configure_database_and_create_new_root_user.html<\/p>\n\n<p>Pour ex\u00e9cuter la commande client MQTT dans Docker, vous devez saisir \u00absbin\/mqtt\u00bb comme suit:<\/p>\n\n<p>$ sbin\/mqtt -c \/home\/homerun\/config.yaml<\/p>\n\n<p>Dans l&rsquo;exemple ci-dessus, nous sp\u00e9cifions un fichier de configuration avec l&rsquo;indicateur -c, qui lit nos param\u00e8tres MQTT \u00e0 partir du fichier de configuration que nous avons cr\u00e9\u00e9 dans ce didacticiel.<\/p>\n\n<p>Afin de v\u00e9rifier si votre client MQTT est op\u00e9rationnel, vous pouvez utiliser \u00ab docker-compose ps \u00bb comme suit:<\/p>\n\n<p>$ docker-composer ps<\/p>\n\n<p>Dans l&rsquo;exemple ci-dessus, notre client MQTT a \u00e9t\u00e9 d\u00e9marr\u00e9 avec succ\u00e8s. Vous devriez maintenant voir toutes vos bases de donn\u00e9es \u00e0 l&rsquo;\u00e9cran.<\/p>\n\n<p>Pour ex\u00e9cuter la commande client MQTT dans Docker, vous devez saisir \u00absbin\/mqtt\u00bb comme suit:<\/p>\n\n<p>$ sbin\/mqtt -c \/home\/homerun\/config.yaml<\/p>\n\n<p>Dans l&rsquo;exemple ci-dessus, nous sp\u00e9cifions un fichier de configuration avec l&rsquo;indicateur -c, qui lit nos param\u00e8tres MQTT \u00e0 partir du fichier de configuration que nous avons cr\u00e9\u00e9 dans ce didacticiel.<\/p>\n\n<p>Afin de v\u00e9rifier si votre client MQTT est op\u00e9rationnel, vous pouvez utiliser \u00ab docker-compose ps \u00bb comme suit:<\/p>\n\n<p>$ docker-composer ps<\/p>\n\n<p>Dans l&rsquo;exemple ci-dessus, notre client MQTT a \u00e9t\u00e9 d\u00e9marr\u00e9 avec succ\u00e8s. Vous devriez maintenant voir toutes vos bases de donn\u00e9es \u00e0 l&rsquo;\u00e9cran et vous pouvez essayer de publier des messages pour tester si tout fonctionne correctement:<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>$ sbin\/mqtt publish -t &lsquo;test&rsquo; -h 172.17.0.1 -m &lsquo;hello world !&rsquo;<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>$ sbin\/mqtt subscription -t &lsquo;test&rsquo; -h 172.17.0.1 -u mqttuser<\/p>\n\n<h3 class=\"wp-block-heading\">7) Nettoyer votre client MQTT avec Docker<\/h3>\n\n<p>Afin d&rsquo;arr\u00eater votre conteneur Docker, vous devez ex\u00e9cuter \u00ab\u00a0docker-compose down\u00a0\u00bb comme suit:<\/p>\n\n<p>$ docker-composer vers le bas<\/p>\n\n<h3 class=\"wp-block-heading\">8) Nettoyer votre client MQTT avec Docker Volumes<\/h3>\n\n<p>Afin d&rsquo;arr\u00eater la cr\u00e9ation de votre base de donn\u00e9es mysql et de votre utilisateur mqtt, vous pouvez utiliser l&rsquo;indicateur -v.<\/p>\n\n<p>$ docker-compose down -v<\/p>\n\n<p>Vous pouvez \u00e9galement nettoyer votre environnement en supprimant le r\u00e9pertoire qui contient votre fichier YAML.<\/p>\n\n<p>La base de donn\u00e9es MySQL et l&rsquo;utilisateur mqtt ont \u00e9t\u00e9 cr\u00e9\u00e9s avec succ\u00e8s! Ils seront supprim\u00e9s automatiquement lorsque vous supprimerez le conteneur Docker. Vous pouvez maintenant sortir de ce shell en tapant \u00ab exit \u00bb.<\/p>\n\n<p>Dans ce tutoriel, nous avons vu comment configurer votre client MQTT via un conteneur Docker.<\/p>\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n<p>MQTT est un protocole de connectivit\u00e9 de machine \u00e0 machine (M2M) ou \u00abInternet des objets\u00bb. Il a \u00e9t\u00e9 con\u00e7u comme un transport de messagerie de publication\/abonnement extr\u00eamement l\u00e9ger. MQTT est utile pour connecter des capteurs \u00e0 faible consommation, des dispositifs portables et d&rsquo;autres petits objets connect\u00e9s \u00e0 Internet au cloud. \u00c9tant donn\u00e9 que MQTT utilise un mod\u00e8le de publication\/abonnement, il est parfait pour les appareils qui ont besoin d&rsquo;envoyer des donn\u00e9es peu fr\u00e9quemment ou pour lesquels la bande passante du r\u00e9seau est primordiale.<\/p>\n\n<h2 class=\"wp-block-heading\">Int\u00e9ress\u00e9 par le d\u00e9veloppement de votre solution MQTT ? <a href=\"mailto:info@iotworlds.com\">Nous contacter!<\/a><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Avec tous les protocoles de messagerie disponibles, il peut \u00eatre difficile d&rsquo;en choisir un seul. Et avec autant d&rsquo;options, il&hellip;<\/p>\n","protected":false},"author":1,"featured_media":386383,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[1797,1741],"tags":[],"class_list":["post-386561","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-smart-device-fr","category-blog-fr-2"],"acf":[],"_links":{"self":[{"href":"https:\/\/iotworlds.com\/fr\/wp-json\/wp\/v2\/posts\/386561","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iotworlds.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iotworlds.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/fr\/wp-json\/wp\/v2\/comments?post=386561"}],"version-history":[{"count":0,"href":"https:\/\/iotworlds.com\/fr\/wp-json\/wp\/v2\/posts\/386561\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/fr\/wp-json\/wp\/v2\/media\/386383"}],"wp:attachment":[{"href":"https:\/\/iotworlds.com\/fr\/wp-json\/wp\/v2\/media?parent=386561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iotworlds.com\/fr\/wp-json\/wp\/v2\/categories?post=386561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iotworlds.com\/fr\/wp-json\/wp\/v2\/tags?post=386561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}