{"id":13199,"date":"2025-05-06T07:27:58","date_gmt":"2025-05-06T05:27:58","guid":{"rendered":"https:\/\/infolib.re\/blog\/?p=13199"},"modified":"2026-03-27T11:10:08","modified_gmt":"2026-03-27T10:10:08","slug":"plateforme-internet-des-objets","status":"publish","type":"post","link":"https:\/\/infolib.re\/blog\/plateforme-internet-des-objets\/","title":{"rendered":"Plateforme Internet des Objets"},"content":{"rendered":"\r\n<h2>1) Glossaire<\/h2>\r\n<p>&nbsp;<\/p>\r\n<p><em>IdO<\/em> ou <em>Internet des objets<\/em> (<em>IoT<\/em> ou <em>Internet of Things<\/em>\u00a0en anglais) : interconnexion d\u2019objets aux usages vari\u00e9s comme l\u2019e-sant\u00e9, la domotique, la t\u00e9l\u00e9gestion, via un r\u00e9seau public (Internet, t\u00e9l\u00e9phonie mobile, radio, satellite).<\/p>\r\n<p><em>R\u00e9seau local<\/em> (<em>local area network<\/em> ou <em>LAN<\/em>\u00a0en anglais) : r\u00e9seau permettant \u00e0 des machines de communiquer entre elles sans passer par un r\u00e9seau public.<\/p>\r\n<p><em>R\u00e9seau priv\u00e9<\/em> : r\u00e9seau informatique local dans lequel on attribue une adresse IP priv\u00e9e \u00e0 chaque machine et une adresse IP publique \u00e0 chaque entr\u00e9e du r\u00e9seau. Les adresses IP priv\u00e9es ne sont pas accessibles directement depuis Internet ou depuis un autre r\u00e9seau priv\u00e9. Suivant la norme IPv4, deux machines situ\u00e9es dans des r\u00e9seaux priv\u00e9s diff\u00e9rents peuvent avoir une adresse IP priv\u00e9e identique. Suivant la nouvelle norme IPv6, chaque machine a une adresse IP priv\u00e9e unique.<\/p>\r\n<p><em>Translation d\u2019adresse r\u00e9seau<\/em> (<em>network address translation<\/em> ou <em>NAT<\/em>\u00a0en anglais) : on fait correspondre l\u2019adresse IP priv\u00e9e d\u2019une machine avec une adresse publique de son r\u00e9seau, afin de pouvoir communiquer avec cette machine depuis un autre r\u00e9seau.<\/p>\r\n<p><em>Pare-feu<\/em> (<em>firewall<\/em>\u00a0en anglais) : logiciel de s\u00e9curit\u00e9 permettant de d\u00e9finir quels types de communications sont autoris\u00e9s dans un r\u00e9seau. Il filtre les flux de donn\u00e9es entre les diff\u00e9rentes zones d&rsquo;un r\u00e9seau priv\u00e9 et entre ce r\u00e9seau priv\u00e9 et d&rsquo;autres r\u00e9seaux.<\/p>\r\n<p><em>Passerelle<\/em> (<em>gateway<\/em>\u00a0en anglais) : dispositif permettant de relier deux r\u00e9seaux informatiques de technologies diff\u00e9rentes.<\/p>\r\n<p><em>Navigateur web<\/em> (<em>browser<\/em>\u00a0en anglais) : logiciel permettant de communiquer avec un serveur web, en utilisant le protocole de communication HTTP. Le navigateur web demande des pages au serveur web, il les re\u00e7oit et les affiche. Il envoie au serveur web les donn\u00e9es saisies dans les formulaires et permet d\u2019\u00e9changer des fichiers avec le serveur web. Exemples de navigateurs web\u00a0: Firefox, Chrome, Edge, Opera\u2026<\/p>\r\n<p><em>API<\/em> ou <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Automate_programmable_industriel\" target=\"_blank\" rel=\"noopener\"><em>Automate programmable industriel<\/em><\/a> (<em>PLC<\/em> ou <em>programmable logic controller<\/em>\u00a0en anglais).<\/p>\r\n<p><em>Interface de programmation d&rsquo;application<\/em> (<em>Application Programming Interface<\/em> ou <em>API<\/em>\u00a0en anglais) : interface logicielle qui permet de connecter un logiciel \u00e0 un autre logiciel, pour qu&rsquo;ils \u00e9changent des donn\u00e9es ou acc\u00e8dent aux fonctionnalit\u00e9s de chacun.<\/p>\r\n<p><em>CAN<\/em> ou <em>convertisseur analogique-num\u00e9rique<\/em> : \u00e9chantillonne un signal analogique \u00e0 une fr\u00e9quence donn\u00e9e pour le traduire en valeurs num\u00e9riques cod\u00e9es sur plusieurs bits.<\/p>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h2>2) Les objectifs<\/h2>\r\n<p>&nbsp;<\/p>\r\n<ul>\r\n<li><span style=\"background-color: #ffff99;\">Faire des mesures sur un syst\u00e8me (capteurs), transmettre les donn\u00e9es par Internet, r\u00e9seau cellulaire, satellite\u2026 et les afficher en temps r\u00e9el.<\/span><\/li>\r\n<li><span style=\"background-color: #ffff99;\">Stocker les donn\u00e9es et les analyser (calculs, graphiques, apprentissage automatique&#8230;) pour am\u00e9liorer le syst\u00e8me (\u00e9conomie d&rsquo;\u00e9nergie, maintenance pr\u00e9visionnelle, am\u00e9lioration de la production&#8230;).<\/span><\/li>\r\n<li><span style=\"background-color: #ffff99;\">Commander le syst\u00e8me \u00e0 distance. <\/span><\/li>\r\n<\/ul>\r\n<p>Le syst\u00e8me peut \u00eatre une machine, un banc d&rsquo;essai, un lieu (b\u00e2timent, jardin, champ, for\u00eat&#8230;). Des traitements peuvent \u00e9ventuellement \u00eatre faits avant une transmission de donn\u00e9es :<\/p>\r\n<ul>\r\n<li>\u00c9chantillonnage (on ne transmet que certaines donn\u00e9es ou\/et que les donn\u00e9es qui changent) ;<\/li>\r\n<li>Conversion de donn\u00e9es, mise en forme, tri ;<\/li>\r\n<li>Ajout d\u2019informations (date, lieu, sujet, fichiers\u2026) ;<\/li>\r\n<li>Combinaison de donn\u00e9es, calculs.<\/li>\r\n<\/ul>\r\n<p>Les besoins en s\u00e9curit\u00e9\u00a0:<\/p>\r\n<ul>\r\n<li>Les objets connect\u00e9s et les utilisateurs doivent \u00eatre identifi\u00e9s (qui sont-ils\u00a0?) et authentifi\u00e9s (ils doivent l\u00e9gitimer leur demande d\u2019acc\u00e8s). Les droits d\u2019acc\u00e8s doivent \u00eatre g\u00e9r\u00e9s.<\/li>\r\n<li>On doit pouvoir transmettre les donn\u00e9es d\u2019un r\u00e9seau \u00e0 un autre en passant les diff\u00e9rents filtrages (pare-feu, translation d\u2019adresse, proxy\u2026).<\/li>\r\n<li>Les donn\u00e9es doivent \u00eatre transmises et \u00e9ventuellement enregistr\u00e9es avec des m\u00e9thodes de chiffrement adapt\u00e9es \u00e0 chaque besoin de confidentialit\u00e9.<\/li>\r\n<li>Les flux de donn\u00e9es doivent \u00eatre surveill\u00e9s (d\u00e9tection de panne, code malveillant).<\/li>\r\n<li>Les donn\u00e9es enregistr\u00e9es doivent \u00eatre g\u00e9r\u00e9es (volume, obsolescence) et sauvegard\u00e9es.<\/li>\r\n<li>Les donn\u00e9es ne doivent pas \u00eatre \u00e0 caract\u00e8re personnel (anonymisation ou pseudonymisation, champ de vision des cam\u00e9ras limit\u00e9, floutage des corps et des visages). M\u00eame crois\u00e9es avec d\u2019autres donn\u00e9es, elles ne doivent pas \u00eatre identifiantes. La publication des donn\u00e9es ne doit pas mettre en danger des personnes ou des biens.<\/li>\r\n<li>Les applications doivent \u00eatre mises \u00e0 jour et sauvegard\u00e9es.<\/li>\r\n<\/ul>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h2>3) Quelques protocoles de communication pour l\u2019IdO<\/h2>\r\n<p>&nbsp;<\/p>\r\n<table cellspacing=\"0\" cellpadding=\"7\">\r\n<tbody>\r\n<tr>\r\n<td>\r\n<p align=\"center\"><b>Protocole<\/b><\/p>\r\n<\/td>\r\n<td>\r\n<p align=\"center\"><b>Connexion entrante<a class=\"sdfootnoteanc\" href=\"#sdfootnote1sym\" name=\"sdfootnote1anc\"><sup>1<\/sup><\/a><\/b><\/p>\r\n<\/td>\r\n<td>\r\n<p align=\"center\"><b>Avantages<\/b><\/p>\r\n<\/td>\r\n<td>\r\n<p align=\"center\"><b>Inconv\u00e9nients<\/b><\/p>\r\n<\/td>\r\n<td>\r\n<p align=\"center\"><b>Donn\u00e9es transmises<\/b><\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr>\r\n<td>\r\n<p align=\"center\"><a href=\"https:\/\/httpwg.org\" target=\"_blank\" rel=\"noopener\">HTTP<\/a><\/p>\r\n<\/td>\r\n<td style=\"background-color: #ccffcc;\">\r\n<p align=\"center\">NON si serveur public<\/p>\r\n<\/td>\r\n<td valign=\"top\">Int\u00e9gr\u00e9 dans les navigateurs web.<\/td>\r\n<td style=\"background-color: #ffcccc;\" valign=\"top\">\r\n<p align=\"left\">Chacun cr\u00e9e ses propres API. Peu de standards \u00e0 part <a href=\"https:\/\/openapis.org\" target=\"_blank\" rel=\"noopener\">OpenAPI<\/a>. Peu d\u2019applications dans l\u2019IdO, \u00e0 part <a href=\"https:\/\/webthings.io\/\" target=\"_blank\" rel=\"noopener\">WebThings<\/a>.<\/p>\r\n<\/td>\r\n<td valign=\"top\">\r\n<p align=\"left\">Tout type de donn\u00e9es.<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr>\r\n<td>\r\n<p align=\"center\"><a href=\"https:\/\/opcfoundation.org\/\" target=\"_blank\" rel=\"noopener\">OPC UA<\/a><\/p>\r\n<\/td>\r\n<td style=\"background-color: #ffcccc;\">\r\n<p align=\"center\">OUI (serveur dans r\u00e9seau priv\u00e9)<\/p>\r\n<\/td>\r\n<td valign=\"top\">\r\n<p align=\"left\">Performant pour faire communiquer directement deux machines au sein d&rsquo;un m\u00eame r\u00e9seau (<em>Machine to Machine<\/em> ou <em>M2M<\/em>\u00a0en anglais). <span style=\"background-color: #ccffcc;\">On peut l\u2019interfacer avec MQTT<\/span>, par exemple avec <a href=\"https:\/\/flows.nodered.org\/search?term=opc\" target=\"_blank\" rel=\"noopener\">Node-RED<\/a>,\u00a0<a href=\"https:\/\/openautomationsoftware.com\/knowledge-base\/transfer-opcua-mqtt\/\" target=\"_blank\" rel=\"noopener\">Open Automation Software<\/a>, <a href=\"https:\/\/github.com\/vogler75\/automation-gateway\" target=\"_blank\" rel=\"noopener\">Frankenstein Automation Gateway<\/a>, <a href=\"https:\/\/opc-router.com\" target=\"_blank\" rel=\"noopener\">OPC Router<\/a> (distribu\u00e9 en France par <a href=\"https:\/\/macsolutions.fr\/opc-router\" target=\"_blank\" rel=\"noopener\">M.A.C. Solutions<\/a>)&#8230;<\/p>\r\n<\/td>\r\n<td valign=\"top\">\r\n<p align=\"left\">Compliqu\u00e9 \u00e0 impl\u00e9menter (des milliers de pages de sp\u00e9cifications).<\/p>\r\n<\/td>\r\n<td valign=\"top\">Tout type de donn\u00e9es sauf flux audio\/vid\u00e9o.<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"text-align: center;\"><a href=\"https:\/\/mqtt.org\/\" target=\"_blank\" rel=\"noopener\">MQTT<\/a><\/td>\r\n<td style=\"background-color: #ccffcc;\">\r\n<p align=\"center\">NON<\/p>\r\n<\/td>\r\n<td>Simple \u00e0 impl\u00e9menter, trames jusqu&rsquo;\u00e0 dix fois plus petites que les trames HTTP. Tr\u00e8s r\u00e9pandu.<\/td>\r\n<td>\r\n<p align=\"left\">\u00a0<\/p>\r\n<\/td>\r\n<td>\r\n<p align=\"left\">Tout type de donn\u00e9es sauf flux audio\/vid\u00e9o.<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr>\r\n<td>\r\n<p align=\"center\"><a href=\"https:\/\/rfc-editor.org\/info\/rfc7252\" target=\"_blank\" rel=\"noopener\">CoAP<\/a><\/p>\r\n<\/td>\r\n<td style=\"background-color: #ffcccc;\">\r\n<p align=\"center\">OUI si serveur c\u00f4t\u00e9 capteur<\/p>\r\n<\/td>\r\n<td valign=\"top\">\r\n<p align=\"left\">Con\u00e7u pour les r\u00e9seaux radio.<\/p>\r\n<\/td>\r\n<td style=\"background-color: #ffcccc;\" valign=\"top\">\r\n<p align=\"left\">Peu d\u2019applications dans l\u2019IdO, \u00e0 part <a href=\"http:\/\/iotivity.org\/\" target=\"_blank\" rel=\"noopener\">IoTivity<\/a> et <a href=\"https:\/\/openthread.io\" target=\"_blank\" rel=\"noopener\">OpenThread<\/a>.<\/p>\r\n<\/td>\r\n<td valign=\"top\">\r\n<p align=\"left\">\u00a0<\/p>\r\n<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"text-align: center;\"><a href=\"https:\/\/developer.mozilla.org\/fr\/docs\/Web\/API\/WebSockets_API\" target=\"_blank\" rel=\"noopener\">WebSocket<\/a><\/td>\r\n<td style=\"background-color: #ccffcc;\">\r\n<p align=\"center\">NON si serveur public<\/p>\r\n<\/td>\r\n<td>Int\u00e9gr\u00e9 dans les navigateurs web. Communication bidirectionnelle jusqu\u2019\u00e0 ce qu&rsquo;un des correspondants l&rsquo;interrompe. Utilise l&rsquo;architecture d&rsquo;HTTP et peut donc faire franchir les filtrages entre r\u00e9seaux aux protocoles OPC UA, MQTT, etc., en les encapsulant. Utilis\u00e9 par le concentrateur de donn\u00e9es <a href=\"https:\/\/cogentdatahub.com\/products\/cogent-datahub\/\" target=\"_blank\" rel=\"noopener\">Cogent DataHub<\/a>.<\/td>\r\n<td>\r\n<p align=\"left\">Sera remplac\u00e9 par <a href=\"https:\/\/w3.org\/TR\/webtransport\/\" target=\"_blank\" rel=\"noopener\">WebTransport<\/a>, bas\u00e9 sur HTTP\/3 et <a href=\"https:\/\/quicwg.org\" target=\"_blank\" rel=\"noopener\">QUIC<\/a> ?<\/p>\r\n<\/td>\r\n<td>\r\n<p align=\"left\">Tout type de donn\u00e9es.<\/p>\r\n<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<p><a class=\"sdfootnotesym\" href=\"#sdfootnote1anc\" name=\"sdfootnote1sym\">1<\/a> Connexion entrante : n\u00e9cessite la mise en place de moyens de s\u00e9curisation du serveur situ\u00e9 dans le r\u00e9seau priv\u00e9 (isolation, surveillance des flux&#8230;), en plus du param\u00e9trage d&rsquo;un routeur, d&rsquo;un pare-feu, voire d&rsquo;un proxy. Il vaut mieux utiliser un protocole avec une connexion sortante, vers un serveur situ\u00e9 en dehors du r\u00e9seau priv\u00e9. Dans le doute, demandez \u00e0 votre service informatique.<\/p>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h2>4) Le protocole de communication MQTT<\/h2>\r\n<p>&nbsp;<\/p>\r\n<h3>a) Pr\u00e9sentation<\/h3>\r\n<p>&nbsp;<\/p>\r\n<p>Le protocole MQTT<a class=\"sdfootnoteanc\" href=\"#sdfootnote2sym\" name=\"sdfootnote2anc\"><sup>2<\/sup><\/a> est un protocole de communication couramment utilis\u00e9 dans l&rsquo;IdO en raison de sa simplicit\u00e9 et de ses performances dans les r\u00e9seaux \u00e0 faible d\u00e9bit. C\u2019est un protocole de messagerie, avec un syst\u00e8me de publication et d\u2019abonnement (en anglais, <em>publish\/subscribe<\/em> ou <em>Pub\/Sub<\/em>). Des logiciels <em>clients MQTT<\/em> se connectent \u00e0 un <em>serveur MQTT<\/em> aussi appel\u00e9 <em>courtier MQTT<\/em> (<em>MQTT broker<\/em>\u00a0en anglais). Chaque client publie des messages vers le serveur, en associant un topic (un sujet) \u00e0 chaque message. Chaque client peut aussi s&rsquo;abonner \u00e0 un ou plusieurs topics. Le serveur lui transmet alors tous les messages associ\u00e9s \u00e0 ces topics. Les clients MQTT sont de plus en plus souvent int\u00e9gr\u00e9s dans les automates programmables industriels, les microcontr\u00f4leurs, les passerelles r\u00e9seaux, les logiciels d&rsquo;acquisition&#8230; : <a href=\"https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/05\/Plateforme-IdO.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-13200 size-large aligncenter\" src=\"https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/05\/Plateforme-IdO-1024x724.png?_t=1746509195\" alt=\"Plateforme IdO\" width=\"640\" height=\"453\" srcset=\"https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/05\/Plateforme-IdO-1024x724.png 1024w, https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/05\/Plateforme-IdO-300x212.png 300w, https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/05\/Plateforme-IdO-768x543.png 768w, https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/05\/Plateforme-IdO-382x270.png 382w, https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/05\/Plateforme-IdO.png 1123w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a>Les topics des messages sont organis\u00e9s de mani\u00e8re hi\u00e9rarchique. Exemple : maintenance\/drone1\/altitude, maintenance \/drone1\/rotor, maintenance\/drone2\/altitude. Pour recevoir les messages de tous les capteurs du drone 1, on s\u2019abonne au topic maintenance\/drone1\/#. Pour recevoir les messages concernant l\u2019altitude de tous les drones, on s\u2019abonne au topic maintenance\/+\/altitude. Les donn\u00e9es transmises dans les messages MQTT sont g\u00e9n\u00e9ralement au format <em>JavaScript Object Notation<\/em> ou <em>JSON<\/em>, on peut aussi transmettre des donn\u00e9es en binaire. Exemple de fichier JSON :<\/p>\r\n<pre>{\r\n\u00a0 \"fruits\": [\r\n\u00a0\u00a0\u00a0 { \"kiwis\": 3,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \"mangues\": 4,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \"pommes\": null\r\n\u00a0\u00a0\u00a0 },\r\n\u00a0\u00a0\u00a0 { \"panier\": true }\r\n\u00a0 ],\r\n\u00a0 \"l\u00e9gumes\": {\r\n\u00a0 \u00a0 \"patates\": \"amandine\",\r\n\u00a0 \u00a0 \"poireaux\": false\r\n\u00a0 },\r\n\u00a0 \"viandes\": [\"poisson\",\"poulet\",\"b\u0153uf\"]\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h3>b) La qualit\u00e9 de Service (QoS)<b> <\/b><\/h3>\r\n<p>&nbsp;<\/p>\r\n<p>Le protocole MQTT dispose d&rsquo;un m\u00e9canisme de qualit\u00e9 de service (<em>Quality of Service<\/em> ou <em>QoS<\/em>\u00a0en anglais) qui garantit la livraison des messages au client en cas de d\u00e9faillance d\u2019un appareil ou de la liaison. Il y a trois niveaux de qualit\u00e9 :<\/p>\r\n<ul>\r\n<li>QoS 0 <em>At most once<\/em>\u00a0: le message n\u2019est envoy\u00e9 qu\u2019une seule fois. En cas de d\u00e9faillance, il se peut qu\u2019il ne soit pas re\u00e7u.<\/li>\r\n<li>QoS 1 <em>At least once<\/em>\u00a0: le message est envoy\u00e9 jusqu&rsquo;\u00e0 ce que sa r\u00e9ception soit garantie. En cas de d\u00e9faillance, le message peut \u00eatre re\u00e7u en double.<\/li>\r\n<li>QoS 2 <em>Exactly once<\/em>\u00a0: chaque message est garanti d&rsquo;\u00eatre r\u00e9ceptionn\u00e9 et il n\u2019est r\u00e9ceptionn\u00e9 qu\u2019une seule fois.<\/li>\r\n<\/ul>\r\n<p>Plus le niveau de qualit\u00e9 est \u00e9lev\u00e9, plus la charge r\u00e9seau augmente. La v\u00e9rification de l\u2019int\u00e9grit\u00e9 des donn\u00e9es apr\u00e8s une transmission n\u2019est pas pr\u00e9vue dans la norme MQTT. On peut \u00e9ventuellement l\u2019ajouter dans les applications utilisant MQTT.<\/p>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h3>c) La s\u00e9curit\u00e9<b> <\/b><\/h3>\r\n<p>&nbsp;<\/p>\r\n<p>Le protocole MQTT peut s\u2019utiliser avec le protocole de transport chiffr\u00e9 TLS. Il g\u00e8re l\u2019authentification des clients par identifiant\/mot de passe, par certificat, ou par d\u00e9l\u00e9gation d\u2019authentification. Utilisez des logiciels et du mat\u00e9riel qui impl\u00e9mentent la derni\u00e8re version du protocole MQTT et qui sont r\u00e9guli\u00e8rement mis \u00e0 jour. La gestion d\u2019un parc h\u00e9t\u00e9rog\u00e8ne d\u2019objets connect\u00e9s peut g\u00e9n\u00e9rer une charge de travail suppl\u00e9mentaire pour le service informatique : mises \u00e0 jour des syst\u00e8mes, des logiciels et des micro-codes, renouvellement des certificats de chiffrement, surveillance des flux, alertes\u2026 Il vaut mieux isoler les objets connect\u00e9s dans un r\u00e9seau s\u00e9par\u00e9 pour les prot\u00e9ger des attaques locales, surtout si les objets connect\u00e9s sont des machines pouvant pr\u00e9senter un danger physique. Si vous installez un point d&rsquo;acc\u00e8s Wi-Fi dans ce r\u00e9seau, s\u00e9curisez-le et surveillez-le.<\/p>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h3>d) Serveurs MQTT et plateformes IdO<\/h3>\r\n<p>&nbsp;<\/p>\r\n<p>Les plateformes IdO sont des applications web compos\u00e9es notamment d&rsquo;un serveur MQTT, d&rsquo;une base de donn\u00e9es (stockage), d&rsquo;une interface de programmation d&rsquo;application (API) pour acc\u00e9der aux donn\u00e9es depuis une autre application et d&rsquo;une interface web pour g\u00e9rer les publications et les abonnements MQTT, les comptes utilisateurs, les droits d\u2019acc\u00e8s, l&rsquo;affichage des donn\u00e9es sous forme d&rsquo;indicateurs, de courbes, de synoptique, de cartes, de vues 360\u00b0 ou 3D, de tableaux de bords, etc. Serveurs MQTT et plateformes IdO sous licence libre ou sous licence Open Source :<\/p>\r\n<ul>\r\n<li><a href=\"https:\/\/activemq.apache.org\/components\/artemis\/\" target=\"_blank\" rel=\"noopener\">ActiveMQ Artemis<\/a> : serveur MQTT 5.0, MQTT + TLS, WebSocket. QoS 0, 1 et 2.<\/li>\r\n<li><a href=\"https:\/\/github.com\/akasamq\/akasa\" target=\"_blank\" rel=\"noopener\">Akasa<\/a> : serveur MQTT 5.0 \u00e9crit en Rust, MQTT + TLS, WebSocket, WebSocket + TLS.<\/li>\r\n<li><a href=\"https:\/\/eclipse.org\/amlen\/\" target=\"_blank\" rel=\"noopener\">Amlen<\/a> : serveur MQTT 5.0.<\/li>\r\n<li><a href=\"https:\/\/processone.github.io\/\" target=\"_blank\" rel=\"noopener\">ejabberd<\/a> : serveur MQTT 5.0, MQTT + TLS, WebSocket, WebSocket + TLS, serveur XMPP et service SIP. <a href=\"https:\/\/process-one.net\/\" target=\"_blank\" rel=\"noopener\">ProcessOne<\/a> (Paris, 75) d\u00e9veloppe et int\u00e8gre ejabberd et loue la version h\u00e9berg\u00e9e <a href=\"https:\/\/fluux.io\/\" target=\"_blank\" rel=\"noopener\">Fluux<\/a>.<\/li>\r\n<li><a href=\"https:\/\/github.com\/emitter-io\/emitter\" target=\"_blank\" rel=\"noopener\">Emitter<\/a> : serveur MQTT, WebSocket, TLS. Messages texte et binaire. Misakai (Irlande) loue la version h\u00e9berg\u00e9e <a href=\"https:\/\/emitter.io\/login\/\" target=\"_blank\" rel=\"noopener\">Emitter Cloud<\/a>.<\/li>\r\n<li><a href=\"https:\/\/emqx.io\/\" target=\"_blank\" rel=\"noopener\">EMQX<\/a> : serveur MQTT 5.0, MQTT + TLS, WebSocket, WebSocket + TLS, QUIC. EMQ (Chine) loue la version h\u00e9berg\u00e9e <a href=\"https:\/\/emqx.com\/en\/cloud\" target=\"_blank\" rel=\"noopener\">EMQX Cloud<\/a> et offre un <a href=\"https:\/\/emqx.com\/en\/mqtt\/public-mqtt5-broker\" target=\"_blank\" rel=\"noopener\">serveur de test<\/a>.<\/li>\r\n<li><a href=\"https:\/\/flashmq.org\/\" target=\"_blank\" rel=\"noopener\">FlashMQ<\/a> : serveur MQTT 5.0, WebSocket. QoS 0, 1 et 2.<\/li>\r\n<li><a href=\"https:\/\/github.com\/HiveMQ\" target=\"_blank\" rel=\"noopener\">HiveMQ Community Edition<\/a> : serveur MQTT 5.0, MQTT + TLS, WebSocket, WebSocket + TLS. HiveMQ (Allemagne) loue la version h\u00e9berg\u00e9e <a href=\"https:\/\/hivemq.com\/mqtt-cloud-broker\/\" target=\"_blank\" rel=\"noopener\">HiveMQ Cloud<\/a>, avec un acc\u00e8s gratuit pour 100 clients MQTT, une taille de message jusqu\u2019\u00e0 5 Mo, un maximum de 10 Go de donn\u00e9es stock\u00e9es pendant 3 jours.<\/li>\r\n<li><a href=\"https:\/\/github.com\/davidepianca98\/KMQTT\" target=\"_blank\" rel=\"noopener\">KMQTT<\/a> : serveur MQTT 5.0, MQTT + TLS, WebSocket, WebSocket + TLS.<\/li>\r\n<li><a href=\"https:\/\/github.com\/MCloudTT\/mcloudtt\" target=\"_blank\" rel=\"noopener\">MCloudTT<\/a> : serveur MQTT 5.0. TLS, WebSocket.<\/li>\r\n<li><a href=\"https:\/\/mosquitto.org\/\" target=\"_blank\" rel=\"noopener\">Mosquitto<\/a> : serveur MQTT 5.0, MQTT + TLS, WebSocket, WebSocket + TLS. <a href=\"https:\/\/test.mosquitto.org\/\" target=\"_blank\" rel=\"noopener\">Serveur de test<\/a> gratuit. Cedalo (Allemagne) loue la version h\u00e9berg\u00e9e <a href=\"https:\/\/cedalo.com\/mqtt-broker-pro-mosquitto\/\" target=\"_blank\" rel=\"noopener\">MQTT Broker<\/a>. <a href=\"https:\/\/84codes.com\/\" target=\"_blank\" rel=\"noopener\">84code<\/a> (Su\u00e8de) loue la version h\u00e9berg\u00e9e <a href=\"https:\/\/cloudmqtt.com\/\" target=\"_blank\" rel=\"noopener\">CloudMQTT<\/a>.<\/li>\r\n<li><a href=\"https:\/\/github.com\/alekras\/erl.mqtt.server\" target=\"_blank\" rel=\"noopener\">MQTT server<\/a> : serveur MQTT 5.0, MQTT + TLS, WebSocket, WebSocket + TLS.<\/li>\r\n<li><a href=\"https:\/\/nanomq.io\/\" target=\"_blank\" rel=\"noopener\">NanoMQ<\/a> : serveur MQTT 5.0, MQTT + TLS, WebSocket, WebSocket + TLS.<\/li>\r\n<li>Plateforme IdO <a href=\"https:\/\/github.com\/openremote\" target=\"_blank\" rel=\"noopener\">Openremote<\/a>. Une <a href=\"https:\/\/openremote.io\/product\/\" target=\"_blank\" rel=\"noopener\">offre d\u2019int\u00e9gration<\/a> (USA, Pays-Bas) est propos\u00e9e.<\/li>\r\n<li><a href=\"https:\/\/rabbitmq.com\" target=\"_blank\" rel=\"noopener\">RabbitMQ<\/a> : serveur MQTT 5.0. <a href=\"https:\/\/ably.com\" target=\"_blank\" rel=\"noopener\">Ably<\/a> (USA, Royaume-Uni) loue une version h\u00e9berg\u00e9e.<\/li>\r\n<li><a href=\"https:\/\/github.com\/rmqtt\/rmqtt\" target=\"_blank\" rel=\"noopener\">RMQTT Broker<\/a> : serveur MQTT 5.0. QoS 0, 1 et 2. \u00c9crit en Rust. WebSocket, WebSocket + TLS, QUIC.<\/li>\r\n<li><a href=\"https:\/\/github.com\/bytebeamio\/rumqtt\" target=\"_blank\" rel=\"noopener\">rumqttd<\/a> : serveur MQTT 5.0.<\/li>\r\n<li>Plateforme IdO <a href=\"https:\/\/tago.io\/\" target=\"_blank\" rel=\"noopener\">TagoIO<\/a> (USA).<\/li>\r\n<li><a href=\"https:\/\/github.com\/thingsboard\/thingsboard\" target=\"_blank\" rel=\"noopener\">ThingsBoard<\/a> (d\u00e9veloppement en Ukraine) : plateforme IdO avec serveur MQTT, MQTT + TLS. Une <a href=\"https:\/\/thingsboard.io\/\" target=\"_blank\" rel=\"noopener\">version pr\u00eate \u00e0 l&#8217;emploi<\/a> (USA) est propos\u00e9e, avec une offre \u00e0 $10 \/ mois, suffisante pour \u00eatre utilis\u00e9e dans un cadre p\u00e9dagogique. Une offre d&rsquo;int\u00e9gration est propos\u00e9e par <a href=\"https:\/\/www.wiifor.com\/plateforme-iot\/\" target=\"_blank\" rel=\"noopener\">Wiifor<\/a> (Toulouse, 31).<\/li>\r\n<li><a href=\"https:\/\/github.com\/vernemq\/vernemq\" target=\"_blank\" rel=\"noopener\">VerneMQ<\/a> : serveur MQTT 5.0, MQTT + TLS, WebSocket, WebSocket + TLS. QoS 0, 1 et 2.<\/li>\r\n<\/ul>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h3>e) Clients MQTT pour publier des messages vers un serveur MQTT<\/h3>\r\n<p>&nbsp;<\/p>\r\n<ul>\r\n<li>Clients MQTT sous forme de librairies dans diff\u00e9rents langages : <a href=\"https:\/\/mqtt.org\/software\/\" target=\"_blank\" rel=\"noopener\">Client libraries<\/a>.<\/li>\r\n<li>Logiciels de test int\u00e9grant un client MQTT : <span style=\"background-color: #ccffcc;\"><a style=\"background-color: #ccffcc;\" href=\"https:\/\/mqttx.app\" target=\"_blank\" rel=\"noopener\">MQTTX<\/a><\/span>, <a href=\"https:\/\/capitalware.com\/mmes_overview.html\" target=\"_blank\" rel=\"noopener\">MQTT Message Editing Suite<\/a>, <a href=\"https:\/\/github.com\/mqtt-viewer\/mqtt-viewer\" target=\"_blank\" rel=\"noopener\">MQTT Viewer<\/a>. Voir aussi <a href=\"https:\/\/mqtt.org\/software\/\" target=\"_blank\" rel=\"noopener\">Tools and Applications<\/a>.<\/li>\r\n<li>Logiciels de traitement automatique de flux de donn\u00e9es :\r\n<ul>\r\n<li><a href=\"https:\/\/eclipse.org\/kura\/\" target=\"_blank\" rel=\"noopener\">Kura<\/a>.<\/li>\r\n<li><a href=\"https:\/\/nodered.org\/\" target=\"_blank\" rel=\"noopener\"><span style=\"background-color: #ccffcc;\">Node-RED<\/span><\/a>. Il est aussi utilisable en offre <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Software_as_a_service\" target=\"_blank\" rel=\"noopener\">SAAS<\/a>, par exemple <a href=\"https:\/\/www.stackhero.io\/fr-fr\/services\/Node-RED\/benefits\" target=\"_blank\" rel=\"noopener\">Stackhero pour Node-RED cloud<\/a>, <a href=\"https:\/\/flowfuse.com\/product\/features\/\" target=\"_blank\" rel=\"noopener\">FlowFuse<\/a>.<\/li>\r\n<li><a href=\"https:\/\/n8n.io\" target=\"_blank\" rel=\"noopener\">n8n<\/a> en offre SAAS.<\/li>\r\n<li><a href=\"https:\/\/openautomationsoftware.com\" target=\"_blank\" rel=\"noopener\">Open Automation Software<\/a>.<\/li>\r\n<li><a href=\"https:\/\/www.emqx.com\/en\/products\/neuronex\" target=\"_blank\" rel=\"noopener\">NeuronEX<\/a> est une passerelle logicielle avec plus de 20\u202f000 protocoles support\u00e9s dont OPC UA, MQTT et WebSocket.<\/li>\r\n<li><a href=\"https:\/\/nifi.apache.org\" target=\"_blank\" rel=\"noopener\">Apache NiFi<\/a>.<\/li>\r\n<li><a href=\"https:\/\/airflow.apache.org\" target=\"_blank\" rel=\"noopener\">Apache Airflow<\/a> (n&rsquo;ing\u00e8re pas de flux MQTT mais peut \u00eatre utilis\u00e9 pour des traitements en aval du stockage).<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ul>\r\n<p>Exemples de syst\u00e8mes d&rsquo;acquisition de donn\u00e9es ou de commande, int\u00e9grant un client MQTT ou utilisables avec un logiciel de traitement automatique des flux de donn\u00e9es :<\/p>\r\n<ul>\r\n<li>Raspberry Pi industriel sur rail DIN et \u00e9quivalents :\r\n<ul>\r\n<li><a href=\"https:\/\/andino.shop\" target=\"_blank\" rel=\"noopener\">Andino<\/a>.<\/li>\r\n<li><a href=\"https:\/\/brainboxes.com\/products\/industrial-edge-controller\" target=\"_blank\" rel=\"noopener\">Brainboxes<\/a>.<\/li>\r\n<li><a href=\"https:\/\/industrialshields.com\" target=\"_blank\" rel=\"noopener\">Industrial Shields<\/a> : Arduino, Raspberry Pi ou ESP32. API avec entr\u00e9es\/sorties num\u00e9riques et analogiques. Propose aussi un afficheur avec Raspberry Pi.<\/li>\r\n<li><a href=\"https:\/\/ibercomp.com\/en\/product-category\/plc-linux-en\/\" target=\"_blank\" rel=\"noopener\">Linux PLC<\/a> d&rsquo;Ibercomp. Orange Pi avec une interface Modbus RTU, Node-RED.<\/li>\r\n<li><a href=\"https:\/\/pixtend.de\" target=\"_blank\" rel=\"noopener\">PiXtend<\/a> de Kontron : Linux, logiciel de programmation <a href=\"https:\/\/codesys.com\" target=\"_blank\" rel=\"noopener\">CODESYS<\/a>, Node-RED, entr\u00e9es\/sorties num\u00e9riques ou analogiques, Modbus RTU.<\/li>\r\n<li><a href=\"https:\/\/revolutionpi.com\" target=\"_blank\" rel=\"noopener\">RevolutionPi<\/a> : modules sorties relais, entr\u00e9es\/sorties num\u00e9riques ou analogiques.<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li><a href=\"https:\/\/aceautomation.eu\/fr\/\" target=\"_blank\" rel=\"noopener\">ACE AUTOMATION<\/a> : API avec entr\u00e9es\/sorties analogiques.<\/li>\r\n<li><a href=\"https:\/\/www.elastel.com\/product\/edge-computing-gateway\/eg500-edge-computing-gateway\/\" target=\"_blank\" rel=\"noopener\">ELASTEL<\/a> : Raspberry Pi mont\u00e9 dans un bo\u00eetier. Entr\u00e9es-sorties num\u00e9riques, entr\u00e9es analogiques, Modbus TCP, Modbus RTU, OPC UA, EtherNET\/IP, Ethernet, Wi-Fi, WiFi HaLow, 4G LTE, NB-IoT.<\/li>\r\n<li><a href=\"https:\/\/www.jumo.fr\" target=\"_blank\" rel=\"noopener\">JUMO<\/a> : syst\u00e8me d&rsquo;automatisation variTRON avec Linux, logiciel de programmation CODESYS, Node-RED, modules sorties relais, entr\u00e9es\/sorties num\u00e9riques, entr\u00e9es analogiques, r\u00e9gulateurs PID, variateurs de puissance, afficheurs.<\/li>\r\n<li><a href=\"https:\/\/www.wago.com\/fr\/automatisation-ouverte\/connectivit%C3%A9-cloud\" target=\"_blank\" rel=\"noopener\">WAGO<\/a> : contr\u00f4leur avec Linux, logiciel de programmation CODESYS, Node-RED, sorties relais, entr\u00e9es\/sorties num\u00e9riques et analogiques, r\u00e9gulateur PID.<\/li>\r\n<li><a href=\"https:\/\/unipi.technology\" target=\"_blank\" rel=\"noopener\">Unipi technology<\/a> : contr\u00f4leur avec Linux, logiciel de programmation <a href=\"https:\/\/openplcproject.com\" target=\"_blank\" rel=\"noopener\">OpenPLC<\/a>, Node-RED, sorties relais, entr\u00e9es\/sorties num\u00e9riques et analogiques.<\/li>\r\n<li>Contr\u00f4leurs <a href=\"https:\/\/www.m2mcontrol.de\/en\/products\/pro-series\/\" target=\"_blank\" rel=\"noopener\">M2M Control<\/a> : entr\u00e9es\/sorties num\u00e9riques et analogiques extensibles, <a href=\"https:\/\/www.m2mcontrol.de\/en\/product\/ide\/\" target=\"_blank\" rel=\"noopener\">interface de d\u00e9veloppement<\/a>.<\/li>\r\n<li>Relais OPTA de <a href=\"https:\/\/opta.findernet.com\/fr\/\" target=\"_blank\" rel=\"noopener\">Finder<\/a>, pilotables par Internet et programmables, bas\u00e9s sur Arduino.<\/li>\r\n<li>Relais <a href=\"https:\/\/shelly.com\" target=\"_blank\" rel=\"noopener\">Shelly<\/a>, pilotables par Internet.<\/li>\r\n<li>Disjoncteurs <a href=\"https:\/\/www.tongou.com\/fr\/\" target=\"_blank\" rel=\"noopener\">Tongou<\/a>.<\/li>\r\n<li><a href=\"https:\/\/www.opto22.com\/products\/product-families\/groov\" target=\"_blank\" rel=\"noopener\">Gamme groov d&rsquo;Opto<\/a> : interfaces d&rsquo;acquisitions num\u00e9rique et analogiques, contr\u00f4leur avec Linux, logiciel de programmation CODESYS, Node-RED, modules entr\u00e9es\/sorties num\u00e9riques ou analogiques.<\/li>\r\n<li><a href=\"https:\/\/www.icpdas.com\/en\/product\/p02.php?root=298&amp;kind=367\" target=\"_blank\" rel=\"noopener\">ICP DAS<\/a> : modules d&rsquo;acquisition de donn\u00e9es analogiques ou num\u00e9riques, \u00e0 combiner avec un module ou une passerelle int\u00e9grant MQTT.<\/li>\r\n<li><a href=\"https:\/\/www.advantech.com\/en-eu\/products\/gateways-remote-terminal-units-(rtus)\/sub_d7a5af6d-5a2b-4fe5-ba95-918f2ea8981f\" target=\"_blank\" rel=\"noopener\">Advantech<\/a> : modules d&rsquo;acquisition de donn\u00e9es analogiques ou num\u00e9riques ADAM.<\/li>\r\n<li>Bo\u00eetiers et centrales d&rsquo;acquisition de donn\u00e9es <a href=\"https:\/\/www.dunasys.com\">DUNASYS<\/a> pour syst\u00e8mes mobiles.<\/li>\r\n<li>Les logiciels <a href=\"https:\/\/tasmota.github.io\" target=\"_blank\" rel=\"noopener\">Tasmota<\/a> ou <a href=\"https:\/\/esphome.io\" target=\"_blank\" rel=\"noopener\">ESPHome<\/a> pour de la mesure et du pilotage avec des microcontr\u00f4leurs Espressif.<\/li>\r\n<\/ul>\r\n<p>Selon l&rsquo;utilisation des appareils, v\u00e9rifiez la plage de tenue en temp\u00e9rature, les vitesses d&rsquo;acquisition et de transmission des donn\u00e9es, le support d&rsquo;enregistrement (les cartes m\u00e9moire sont fragiles), la mise \u00e0 jour et la sauvegarde de l&rsquo;heure (pour l&rsquo;horodatage des donn\u00e9es et pour l&rsquo;expiration des certificats de chiffrement), la redondance des composants et les modes de marche et d&rsquo;arr\u00eat pour la s\u00e9curit\u00e9. <span style=\"background-color: #ffff99;\">Conseil<\/span> : limitez dans votre r\u00e9seau priv\u00e9 le nombre de clients MQTT qui vont se connecter directement \u00e0 la plateforme IdO. Utilisez plut\u00f4t une passerelle qui regroupe tous les flux de donn\u00e9es et les transmet \u00e0 une ou plusieurs plateformes IdO. Vous aurez ainsi juste \u00e0 reparam\u00e9trer cette passerelle et non pas tous vos clients MQTT si vous changez de plateforme IdO ou si vous en ajoutez une. Le param\u00e9trage ne concernera que la m\u00e9thode de connexion au nouveau serveur MQTT et la structure du fichier de donn\u00e9es envoy\u00e9 au format JSON, sp\u00e9cifique \u00e0 chaque plateforme IdO. Exemples de passerelles entre diff\u00e9rents r\u00e9seaux :<\/p>\r\n<ul>\r\n<li><a href=\"https:\/\/zigbee2mqtt.io\/\" target=\"_blank\" rel=\"noopener\">Zigbee2MQTT<\/a> est une passerelle logicielle Zigbee -&gt; Ethernet ou Wi-Fi. Voir <a href=\"https:\/\/www.youtube.com\/watch?v=k1qWFAM88j0\" target=\"_blank\" rel=\"noopener\">les vid\u00e9os de N\u00e9odyme<\/a> sur sa cha\u00eene Youtube.<\/li>\r\n<li><a href=\"https:\/\/github.com\/1technophile\/OpenMQTTGateway\" target=\"_blank\" rel=\"noopener\">OpenMQTTGateway<\/a> est une passerelle logicielle infrarouge, Bluetooth Low Energy, LoRa, RS-232 &lt;-&gt; Ethernet, Wi-Fi, GSM\/GPRS, pour microcontr\u00f4leurs.<\/li>\r\n<li><a href=\"https:\/\/enocean.com\/en\/products\/tools-kits-iot-software\/enocean-iot-connector\/\" target=\"_blank\" rel=\"noopener\">EnOcean IoT Connector<\/a> est une passerelle logicielle EnOcean -&gt; Ethernet ou Wi-Fi.<\/li>\r\n<li><a href=\"https:\/\/chirpstack.io\/\" target=\"_blank\" rel=\"noopener\">ChirpStack<\/a> est une passerelle logicielle LoRaWAN -&gt; Ethernet ou Wi-Fi. Elle est utilis\u00e9e par exemple dans la passerelle LoRaWAN d\u2019<a href=\"https:\/\/atim.com\/\" target=\"_blank\" rel=\"noopener\">ATIM<\/a>.<\/li>\r\n<li>Hub de <a href=\"https:\/\/wattsense.com\" target=\"_blank\" rel=\"noopener\">Wattsense<\/a> (filiale de Siemens) est une passerelle LoRaWAN, BACnet, Modbus RTU, Modbus TCP, KNX, M-Bus, Diematic ou LonWorks en entr\u00e9e et BACnet IP, Modbus TCP, Ethernet ou 4G en sortie. Vendue par Siemens sous le nom de <a href=\"https:\/\/www.siemens.com\/fr\/fr\/produits\/buildingtechnologies\/automatisation\/connect-box.html\" target=\"_blank\" rel=\"noopener\">Connect Box<\/a>.<\/li>\r\n<li><a href=\"https:\/\/www.nexcom.com\/Products\/industrial-wireless-solutions\/industrial-wireless-product\/industrial-gateway\" target=\"_blank\" rel=\"noopener\">NEXCOM<\/a> propose une passerelle RS232\/RS485\/LoRa -&gt; Ethernet et des convertisseurs Modbus RTU -&gt; Modbus TCP, RS232\/RS485 -&gt; LoRa, etc. NEXCOM propose aussi des <a href=\"https:\/\/www.nexcom.com\/Products\/industrial-computing-solutions\/machine-automation\/ai-robotics\" target=\"_blank\" rel=\"noopener\">syst\u00e8mes de communications en MQTT ou OPC UA avec des robots industriels<\/a>.<\/li>\r\n<li>Weidmuller commercialise des p<a href=\"https:\/\/catalog.weidmueller.com\/procat\/Group.jsp;jsessionid=720557A4F96C683775ED4292029B82D6?groupId=(%22group3236860920084%22)&amp;page=Group\" target=\"_blank\" rel=\"noopener\">asserelles<\/a> entre ses automates programmables et Ethernet, incluant Node-RED, ainsi qu&rsquo;une <a href=\"https:\/\/catalog.weidmueller.com\/procat\/Product.jsp;jsessionid=91FA8E89FDB2083ADED80A3203B0A2AB?productId=(%5b2666060000%5d)&amp;page=Product\" target=\"_blank\" rel=\"noopener\">maquette didactique avec Node-RED, MQTT<\/a>.<\/li>\r\n<li>Passerelle <a href=\"https:\/\/en.t-firefly.com\/product\/embed\/ihc3308gw\" target=\"_blank\" rel=\"noopener\">Modbus &lt;-&gt; Ethernet, Wi-Fi, LoRaWAN, 4G LTE ou NB-IoT<\/a> de Firefly.<\/li>\r\n<li>Passerelles Modbus &lt;-&gt; LoRaWAN\/NB-IoT ou LoRa &lt;-&gt; Ethernet de <a href=\"https:\/\/dragino.com\" target=\"_blank\" rel=\"noopener\">DRAGINO<\/a>.<\/li>\r\n<li>Passerelles <a href=\"https:\/\/teltonika-networks.com\/products\/gateways\" target=\"_blank\" rel=\"noopener\">Modbus TCP, Modbus RTU &lt;-&gt; Ethernet, 2G\/3G\/4G\/5G<\/a> de Teltonika Networks.<\/li>\r\n<li><a href=\"https:\/\/adfweb.com\" target=\"_blank\" rel=\"noopener\">ADFweb.com<\/a> propose tout type de passerelles.<\/li>\r\n<li>Passerelles <a href=\"https:\/\/www.icpdas.com\/en\/product\/p02.php?root=298&amp;kind=365\" target=\"_blank\" rel=\"noopener\">Modbus TCP, Modbus RTU &lt;-&gt; Ethernet<\/a> d&rsquo;ICP DAS.<\/li>\r\n<li>Passerelle <a href=\"https:\/\/friendtrol.com\/products\/v1\/items\/GW-1205B\" target=\"_blank\" rel=\"noopener\">Modbus RTU &lt;-&gt; Wi-Fi<\/a> de Friendtrol.<\/li>\r\n<li>Passerelles <a href=\"https:\/\/www.moxa.com\/en\/spotlight\/industrial-computing\/solution-iiot\/index.htm\" target=\"_blank\" rel=\"noopener\">Modbus RTU ou TCP &lt;-&gt; Ethernet<\/a> de Moxa.<\/li>\r\n<li>Passerelle <a href=\"https:\/\/www.weintek.com\/globalw\/Product\/Product_Gateway.aspx\" target=\"_blank\" rel=\"noopener\">Weintek<\/a> avec plus de 300 protocoles support\u00e9s &lt;-&gt; Ethernet ou Wi-Fi.<\/li>\r\n<li><a href=\"https:\/\/bevywise.com\/modbus-gateway\/\" target=\"_blank\" rel=\"noopener\">Agate<\/a> de Bevywise est une passerelle logicielle Modbus TCP, Modbus RTU &lt;-&gt; Ethernet ou Wi-Fi.<\/li>\r\n<li>Passerelles Modbus TCP, HART, PROFIBUS, PROFINET &lt;-&gt; Ethernet (OPC UA et MQTT) d&rsquo;<a href=\"https:\/\/industrial.softing.com\" target=\"_blank\" rel=\"noopener\">Industrial<\/a>.<\/li>\r\n<li>Passerelles Modbus TCP et diff\u00e9rents API (Beckhoff, Mitsubishi, Modicon, Phoenix Contact, Rockwell Automation, Schneider Electric, Siemens, Wago&#8230;) &lt;-&gt; Ethernet (OPC UA et MQTT) de <a href=\"https:\/\/industrial.softing.com\/products\/gateways\/gateways-for-access-of-controller-data.html\" target=\"_blank\" rel=\"noopener\">Softing Industrial Automation<\/a>.<\/li>\r\n<li>Passerelles entre diff\u00e9rents bus terrain &lt;-&gt; Ethernet, Wi-Fi ou cellulaire (OPC UA et MQTT) d&rsquo;<a href=\"https:\/\/www.hms-networks.com\" target=\"_blank\" rel=\"noopener\">HMS Industrial Networks<\/a>.<\/li>\r\n<li><a href=\"https:\/\/www.sauter.fr\/services\/ecos504-iot-mqtt-lautomate-connecte\/\" target=\"_blank\" rel=\"noopener\">Serveur BACnet<\/a> ou <a href=\"https:\/\/www.sauter.fr\/produit\/unite-modulaire-de-gestion-locale-bacnet-et-serveur-web-modu680-as\" target=\"_blank\" rel=\"noopener\">unit\u00e9 modulaire de gestion locale BACnet<\/a> de SAUTER, avec passerelle BACnet &lt;-&gt; Ethernet.<\/li>\r\n<li><a href=\"https:\/\/www.anybus.com\/products\/gateway-index\" target=\"_blank\" rel=\"noopener\">Anybus<\/a> et <a href=\"https:\/\/www.ixxat.com\/products\/bridges-and-gateways-overview\" target=\"_blank\" rel=\"noopener\">Ixxat<\/a> de HMS NETWORKS sont des passerelles Modbus RTU, Modbus TCP, PROFIBUS, PROFINET, CANopen, EtherCAT, CC-Link, PowerLink, InterBus&#8230; &lt;-&gt; Ethernet (OPC UA et MQTT).<\/li>\r\n<li>Passerelles <a href=\"https:\/\/www.hilscher.com\/products\/edge-gateways\" target=\"_blank\" rel=\"noopener\">Hilscher<\/a>, <a href=\"https:\/\/www.netmodule.com\/en\/products\/router\" target=\"_blank\" rel=\"noopener\">NetModule<\/a>, <a href=\"https:\/\/www.option.com\/\" target=\"_blank\" rel=\"noopener\">CloudGate<\/a> d&rsquo;OPTION, <a href=\"https:\/\/www.multitech.com\/products\/gateways-routers-modems\/gateways\" target=\"_blank\" rel=\"noopener\">Multi-Tech Systems<\/a>, <a href=\"https:\/\/www.inhandnetworks.com\/products\/edge-computing-gateway.html\" target=\"_blank\" rel=\"noopener\">InHand<\/a>&#8230;<\/li>\r\n<li><a href=\"https:\/\/www.freewave.com\/products\/edge\/\" target=\"_blank\" rel=\"noopener\">FreeWave Edge<\/a> est une passerelle logicielle Modbus TCP, Modbus RTU, Bluetooth et autres protocoles &lt;-&gt; Ethernet, Wi-Fi, radio 900 MHz ou satellite.<\/li>\r\n<li>Passerelle logicielle pour API Siemens, API Allen Bradley, OPC UA, Modbus ASCII, Modbus RTU ou Modbus TCP &lt;-&gt; Ethernet ou Wi-Fi : <a href=\"https:\/\/openautomationsoftware.com\/\" target=\"_blank\" rel=\"noopener\">Open Automation Software<\/a>. Peut s&rsquo;<a href=\"https:\/\/openautomationsoftware.com\/knowledge-base\/getting-started-node-red\/\" target=\"_blank\" rel=\"noopener\">utiliser avec Node-RED<\/a>.<\/li>\r\n<li><a href=\"https:\/\/wut.de\/e-55990-ww-daus-000.php\" target=\"_blank\" rel=\"noopener\">MQTT.box<\/a> utilise Mosquitto pour permettre \u00e0 des clients MQTT d&rsquo;\u00e9changer au sein d&rsquo;un r\u00e9seau priv\u00e9 ou entre deux r\u00e9seaux Ethernet.<\/li>\r\n<\/ul>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h3>f) Clients MQTT pour s&rsquo;abonner \u00e0 des topics MQTT<\/h3>\r\n<p>&nbsp;<\/p>\r\n<p><a href=\"https:\/\/github.com\/gsampallo\/mqtt2excel\" target=\"_blank\" rel=\"noopener\">MQTT2Excel<\/a> permet de s&rsquo;abonner \u00e0 des topics MQTT et d&rsquo;enregistrer les donn\u00e9es dans un fichier Excel. <a href=\"https:\/\/github.com\/eclipse\/streamsheets\" target=\"_blank\" rel=\"noopener\">Streamsheets<\/a> est un tableur qui peut s\u2019abonner \u00e0 des topics MQTT et afficher les donn\u00e9es dans ses feuilles de calcul.\u00a0<a href=\"https:\/\/github.com\/facontidavide\/PlotJuggler\" target=\"_blank\" rel=\"noopener\">PlotJuggler<\/a> affiche les courbes de s\u00e9ries temporelles publi\u00e9es en MQTT. Si le serveur MQTT propose le protocole de communication WebSocket, on peut utiliser un navigateur web pour publier ou pour s\u2019abonner \u00e0 un topic MQTT en int\u00e9grant un client MQTT dans une page web<a class=\"sdfootnoteanc\" href=\"#sdfootnote3sym\" name=\"sdfootnote3anc\"><sup>3<\/sup><\/a>. Exemple de clients MQTT int\u00e9grables dans une page web :<\/p>\r\n<ul>\r\n<li><a href=\"https:\/\/mqttx.app\/web\" target=\"_blank\" rel=\"noopener\">MQTTX Web<\/a>.<\/li>\r\n<li><a href=\"https:\/\/eclipse.org\/paho\/index.php?page=clients\/js\/index.php\" target=\"_blank\" rel=\"noopener\">Eclipse Paho JavaScript Client<\/a>, utilis\u00e9 par <a href=\"https:\/\/github.com\/hivemq\/hivemq-mqtt-web-client\" target=\"_blank\" rel=\"noopener\">hivemq-mqtt-web-client<\/a>. Voir <a href=\"https:\/\/hivemq.com\/blog\/build-javascript-mqtt-web-application\/\" target=\"_blank\" rel=\"noopener\">MQTT Web Applications: How to build your own!<\/a>\u00a0et <a href=\"https:\/\/highvoltages.co\/iot-internet-of-things\/how-to-make-mqtt-web-app-using-html-and-javascript\/\" target=\"_blank\" rel=\"noopener\">How to make MQTT web app using HTML and Javascript<\/a>.<\/li>\r\n<li><a href=\"https:\/\/github.com\/mqttjs\/MQTT.js\" target=\"_blank\" rel=\"noopener\">MQTT.js<\/a><\/li>\r\n<\/ul>\r\n<p><a href=\"https:\/\/play.google.com\/store\/search?q=mqtt&amp;c=apps\" target=\"_blank\" rel=\"noopener\">Diverses applications Android<\/a> permettent de d\u00e9velopper facilement des interfaces pour publier ou s&rsquo;abonner \u00e0 des topics MQTT. Vous pouvez aussi d\u00e9velopper une application web ou pour smartphone avec <a href=\"https:\/\/appinventor.mit.edu\" target=\"_blank\" rel=\"noopener\">MIT App Inventor<\/a>, <a href=\"https:\/\/www.editions-eni.fr\/livre\/python-raspberry-pi-et-flask-capturez-des-donnees-telemetriques-et-realisez-des-tableaux-de-bord-web-2e-edition-9782409029882\" target=\"_blank\" rel=\"noopener\">Flask<\/a>.<\/p>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h3>g) Ressources<\/h3>\r\n<p>&nbsp;<\/p>\r\n<ul>\r\n<li>Les <a href=\"https:\/\/mqtt.org\/mqtt-specification\/\" target=\"_blank\" rel=\"noopener\">sp\u00e9cifications du protocole MQTT<\/a> sont publi\u00e9es par l\u2019organisme de normalisation OASIS. MQTT for Sensor Networks (MQTT-SN) est une version de MQTT adapt\u00e9e aux r\u00e9seaux de capteurs sans fil. Les sp\u00e9cifications de MQTT sont compl\u00e9t\u00e9es par les <a href=\"https:\/\/sparkplug.eclipse.org\/\" target=\"_blank\" rel=\"noopener\">sp\u00e9cifications d\u2019Eclipse Sparkplug<\/a>.<\/li>\r\n<li><a href=\"http:\/\/www.steves-internet-guide.com\/blog\/\" target=\"_blank\" rel=\"noopener\">Steve&rsquo;s Internet Guide<\/a>.<\/li>\r\n<li><a href=\"https:\/\/boutique.ed-diamond.com\" target=\"_blank\" rel=\"noopener\">Hackable Magazine<\/a>.<\/li>\r\n<li>Discussions sur le <a href=\"https:\/\/reddit.com\/r\/MQTT\/\" target=\"_blank\" rel=\"noopener\">canal reddit\u00a0r\/MQTT<\/a>, sur le <a href=\"https:\/\/libera.chat\/\" target=\"_blank\" rel=\"noopener\">canal IRC #mqtt<\/a>.<\/li>\r\n<li>Sch\u00e9ma Plateforme IdO (<a href=\"https:\/\/infolib.re\/blog\/wp-content\/uploads\/2025\/05\/Plateforme-IdO.odg\">Fichier LibreOffice<\/a>).<\/li>\r\n<\/ul>\r\n<hr \/>\r\n<p id=\"sdfootnote2\"><a class=\"sdfootnotesym\" href=\"#sdfootnote2anc\" name=\"sdfootnote2sym\">2<\/a> Andy Stanford-Clark (IBM) et Arlen Nipper (Arcom Control Systems) cr\u00e9ent le protocole <em>MQ Telemetry Transport<\/em>\u00a0en 1999 pour transmettre par satellite les donn\u00e9es de capteurs install\u00e9s sur des ol\u00e9oducs. MQ faisait r\u00e9f\u00e9rence au logiciel IBM MQSeries. Le protocole a ensuite \u00e9t\u00e9 renomm\u00e9 MQTT (Message Queuing Telemetry Transport).<\/p>\r\n<p id=\"sdfootnote3\"><a class=\"sdfootnotesym\" href=\"#sdfootnote3anc\" name=\"sdfootnote3sym\">3<\/a> Exemple d\u2019utilisation de MQTT + WebSocket\u00a0: <a href=\"http:\/\/steves-internet-guide.com\/mqtt-websockets\/\" target=\"_blank\" rel=\"noopener\">http:\/\/steves-internet-guide.com\/mqtt-websockets\/<\/a><\/p>\r\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>1) Glossaire &nbsp; IdO ou Internet des objets (IoT ou Internet of Things\u00a0en anglais) : interconnexion d\u2019objets aux usages vari\u00e9s comme l\u2019e-sant\u00e9, la domotique, la t\u00e9l\u00e9gestion, via un r\u00e9seau public (Internet, t\u00e9l\u00e9phonie mobile, radio, satellite). R\u00e9seau local (local area network ou LAN\u00a0en anglais) : r\u00e9seau permettant \u00e0 des machines de communiquer entre elles sans passer par un r\u00e9seau public. R\u00e9seau priv\u00e9 : r\u00e9seau informatique local dans lequel on attribue une adresse IP priv\u00e9e \u00e0 chaque machine et une adresse IP&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/infolib.re\/blog\/plateforme-internet-des-objets\/\">Lire la suite<span class=\"screen-reader-text\"> Lire la suite<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[612,632,634,637,633,545,636,635],"class_list":["post-13199","post","type-post","status-publish","format-standard","hentry","category-articles-publics","tag-acquisition-de-donnees","tag-ido","tag-internet-des-objets","tag-internet-of-things","tag-iot","tag-mqtt","tag-node-red","tag-opc-ua"],"_links":{"self":[{"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/posts\/13199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/comments?post=13199"}],"version-history":[{"count":0,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/posts\/13199\/revisions"}],"wp:attachment":[{"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/media?parent=13199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/categories?post=13199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infolib.re\/blog\/wp-json\/wp\/v2\/tags?post=13199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}