IoT Toulouse : introduction à mqtt

3,719 views

Published on

Courte introduction à MQTT (MQ Telemetry Transport), protocole pour l'internet des objets.

Protocole publish subscribe léger, à utiliser au dessus de TCP et de SSL/TLS.

Il permet de connecter facilement des objets où la légèreté du code et du protocole est primordiale.

Published in: Technology

IoT Toulouse : introduction à mqtt

  1. 1. Introduction à MQTT
  2. 2. Agenda Internet of Things ? M2M? Les protocoles de l’IoT MQTT C’est quoi MQTT? Fonctionnalités Briques Démo Questions
  3. 3. Machine-to-Machine? Internet of Things?
  4. 4. Technology that supports wired or wireless communication between devices ❝
  5. 5. IoT protocols … les objets sont limités … les réseaux sont limités … les applications sont différentes
  6. 6. Des besoins différents Device Management Statistiques interface radio, configuration de l’objet, mise à jour du logiciel (Firmware et application)… OMA-DM, TR-069, LWM2M… Réseau local de capteurs Transmettre des données, souvent sans-fil ou courant porteur Zigbee, X10, Bluetooth Smart, … Interface homme-machine Afficher des données sur une application mobile, dashboards, HTTP, Websockets, ...
  7. 7. MQTT?
  8. 8. MQTT? MQ Telemetry Transport
  9. 9. MQTT? M is for Messaging… (mmmmaybe!) Q is not for Queue ☺ Publish/Subscribe Léger (bande passante, batterie, …)
  10. 10. PUB / e e232/ emp SUB / e e232/ / e e232/ emp 21.3 21.3
  11. 11. MQTT history … c’est pas neuf Inventé en 1999 (Andy Stanford-Clark, Arlen Nipper) Royalty-free depuis 2010 En cours de standardisation à l’OASIS depuis 2013
  12. 12. Principales fonctionnalités Wildcards Quality of Service Last Will & Testament Retained Messages Web sockets
  13. 13. MQTT Wildcards ● Le signe (#) remplace n’importe quel nombre de niveau de topic. ● Le signe (+) remplace seulement un niveau de topic. Exemples mygreenhouse/sensors/# +/sensors/temperature
  14. 14. MQTT Topics : bonnes pratiques Photo Credit:oskay ● La bonne organisation des topics vous permet d’utiliser les wildcards Ex: sensorID/temp plutôt que temp/sensorID ● Pas besoin de commencer par un ‘/’ ● Persistez vos topics si vous le pouvez
  15. 15. MQTT Quality-of-Service L’option QoS permet de contrôler le niveau de qualité de l’acheminement du message par le broker.
  16. 16. MQTT QoS 0 Un message publié avec QoS=0 sera reçu, par les client souscrits au topic, au mieux une fois (“fire & forget”).
  17. 17. MQTT QoS 1 Un message publié avec QoS=1 sera reçu au moins une fois. (simple accusé de réception)
  18. 18. MQTT QoS 2 Un message publié avec QoS=2 sera reçu exactement une fois par les clients (double accusé).
  19. 19. MQTT Last will & Testament Les client peuvent se connecter et se déconnecter du réseau fréquemment de façon inattendue. Last Will & Testament permet de notifier une déconnexion anormale. Last Will & Testament défini lors de la connexion.
  20. 20. MQTT Retained messages L’option de publication Retained permet à un message publié d’être stocké par le broker. Lors d’une souscription tardive le message est publié de nouveau.
  21. 21. MQTT Sécurité: TLS (PSK ou non). Transport sur websockets
  22. 22. Photo Credit:oskay Boîte à outils!
  23. 23. MQTT @ Eclipse IoT
  24. 24. Eclipse Paho Clients MQTT Open-source. Choisissez votre langage ! Java, JavaScript, C/C++, Go, Obj C, Lua, Python … http://eclipse.org/paho https://dev.eclipse.org/mailman/listinfo/paho-dev
  25. 25. Eclipse Mosquitto Implementation serveur de MQTT (MQTT-SN à venir), écrit en C Léger? Le binaire fait ~120kB ~3MB RAM pour 1000 clients connectés http://eclipse.org/mosquitto https://dev.eclipse.org/mailman/listinfo/mosquitto-dev
  26. 26. MQTT pour Arduino! ● Supporte seulement QoS 0 ● Taille max d’un message limité Code: https://github. com/knolleary/pubsubclient Plus d’info sur Nick O’Leary’s blog.
  27. 27. Node-RED Outil visuel pour “cabler” l’IoT Supporte MQTT http://nodered.org
  28. 28. Questions?
  29. 29. N’oubliez pas.. Eclipsecon France 18-19 Juin Centre des congrès Pierre Baudis MQTT et plus encore! CoAP, LWM2M, Lua, Espruino, people counter …
  30. 30. Merci! Questions supplémentaires? Julien Vermillard Twitter @vrmvrm jvermillard@sierrawireless.com

×