Aller au contenu principal

3. Protocole MQTT


3.1 Principes

Il s'agit d'un acronyme celui de Message Queue Telemetry Transport . La définition de ce protocole sur le site anglais de Wikipedia http://en.wikipedia.org/wiki/MQTT et le site du référentiel de ce protocole est http://mqtt.org/

  • un site superbe qui explique tout ce qu'il faut savoir et ne pas hesiter à visiter toutes les rubriques de l'onglet à https://www.hivemq.com/mqtt/

Le principe est basé sur un middleware : ou Broker (terme anglais pour désigner un serveur qui joue le role de distributeur de message et gère une file d'information qui arrive : personnelement je nomme ce type d'intergiciel "répartiteur") Le mécanisme est basé sur 2 volets indépendants de la notion d'adressage : un "publisher" qui envoie des data sur un "topic" au broker; et un ou de nombreux "subscriber" ou abonnés qui s'inscrivent à un "topic" : c'est le meme principe qu'une revue papier, ou un journal !!

3.2 Serveur MQTT

Les 2 brokers testés et que je mets habituellement en oeuvre :

3.3 Clients

Pour s'abonner, il y a de nombreuses possibilités

  1. Les "connecteurs" pour la programmation : ils existent dans tous les langages !! voir la mise en oeuvre sur les Pycom par exemple (rubrique enseignement)
  2. Une application dans votre navigateur : exemple de l'application MQTTBox pour Chrome il y en d'autres.. mais j'ai testé celle-ci qui fonctionne simplement
  3. Une application sur smartphone
  4. Un client local, il y en a plusieurs, ma preférée en 2022 : MQTTX à https://mqttx.app/ je l'utilise sous WIndows, linux..

3.4 Utilisation

Exemple de NodeRed qui possède un connecteur..

3.4.1 Messages

de préference envoi de messages formattés en Json.. si toutefois le réseau radio le supporte, faire un bilan energétique et latence dans les autres cas..