Installer votre propre broker MQTT: Mosquitto

Pour faire suite à l’article  « Quels protocoles applicatifs pour l’Internet des Objets? » d’Ali Benfattoum, mettons en pratique le protocole MQTT en installant votre propre broker MQTT: Mosquitto

Ce broker, Mosquitto, vous permettra d’interconnecter facilement vos applications, objets, pages web entre-eux, grâce au protocole MQTT. Ce petit tutoriel vous permettra donc d’installer ce broker sur une machine Ubuntu ou Debian et de ses variantes comme Raspbian (le système d’exploitation le plus répandu sur le Raspberry pi). A la fin de ce tutoriel, je vous proposerai une première configuration pour pouvoir profiter des WebSockets et donc d’utiliser le protocole MQTT sur vos pages web au travers de clients JavaScript.

Installation de Mosquitto compatible WebSockets

On est sous Linux, donc on commence par ouvrir le Terminal. Ensuite, choisissez votre version de Linux:

Ubuntu 14.04.2 LTS – Trusty Tahr

 

Debian 8.3.0 & Raspbian – Jessie

 

Configuration de Mosquitto pour utiliser les WebSockets

Pour utiliser la partie WebSocket du broker Mosquitto, il faut modifier légèrement la configuration. Je vous propose donc ici une première configuration de ce broker. Je ferai d’autres articles pour aller plus loin: certificats, login, restriction, etc.

Il suffit d’ajouter un fichier avec l’extension .conf dans le dossier de configuration de mosquitto /etc/mosquitto/conf.d :

ou en graphique

et ajouter les lignes suivantes:

On sauvegarde la configuration et on relance ensuite le serveur pour que la configuration soit prise en compte avec la commande:

Nous voilà prêts à utiliser notre broker MQTT, avec le support des WebSockets. Vous pouvez l’essayer en vous connectant à l’adresse suivante: http://mqtt.frugalprototype.com

Pour la partie host vous mettez l’adresse locale de votre poste (127.0.0.1) ou celle du serveur sur lequel vous avez installé votre serveur

Capture du 2016-04-15 14:30:08

Cet article présente la première étape pour utiliser le protocole MQTT, des exemples vous seront proposés par la suite pour utiliser ce protocole dans vos projets avec différents langage (Arduino, Python, JavaScript, Java, etc).

Si des erreurs se sont glissées dans l’article, n’hésitez pas à nous en faire part.

Merci, et à très vite sur Frugal Prototype

Frugal Newsletter

Apprenez les rudiments du prototypage frugal !
Votre adresse email
Partagez cet article !
Share on LinkedInTweet about this on TwitterShare on FacebookShare on Google+
Romain Tribout

Romain Tribout

J'ai soif de prototypage!

4 réponses

  1. F dit :

    Bonjour,

    Je crois qu’il manque quelques détails, notamment le chemin de la page web pour y acceder ( 127.0.0.1:61614 ??)

    De plus, mon mosquitto est installé sur un orangepi (ubuntu server, sans écran), du coup je peux y acceder uniquement d’une autre machine (adresse IP de mon orange pi au lieu de 127.0.0.1).

    Pour l’instant, je n’accede pas à la page websockets

    • Bonjour,

      Il faut que tu utilises l’adresse IP de ton orangepi. De plus, il te faut développer une page HTML avec un client javascript à l’intérieur qui se connectera au serveur MQTT de ton orangepi (port 61614 – vu que nous serons ici en websockets).

      Je te propose le code suivant, qui utilise la bibliothèque paho-mqtt – il faut que tu modifies l’adresse ip (127.0.0.1) par celle de ton orangepi: http://pastebin.com/ZJyeE1dW

      Au plaisir

      Romain

  2. Lo dit :

    Bonjour,

    Comment gerer les acces (enregistrer les comptes utilsateurs pour Mosquitto)?

  3. Lo dit :

    Bonjour,

    Je precise la question car elle etait vague, je gere les acces utilisateurs depuis le serveur debian 8 via le fichier passwd de mosquitto, la question est : comment ajouter des utilsateurs dans ce fichier depuis un client (app swift et Javafx), Mosquitto est sur un serveur vps debian 8 limité en ressources (64M ram), pour le moment il est installé seul (pas de serveur http), existe t’il un systeme simple de gestion des credentials (register et verification pour login) qui eviterai d’avoir a installer un serveur http? j’ai vu l’API Google Firebase qui semble pouvoir convenir ici, je me demande si l’implementation de cette solution coté serveur sera consommatrice en ressource, et si il existe une meileure approche.

    Merci.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.