Table des matières:

Communication sans fil SmartHome : les bases extrêmes de MQTT : 3 étapes
Communication sans fil SmartHome : les bases extrêmes de MQTT : 3 étapes

Vidéo: Communication sans fil SmartHome : les bases extrêmes de MQTT : 3 étapes

Vidéo: Communication sans fil SmartHome : les bases extrêmes de MQTT : 3 étapes
Vidéo: SONOFF ZBCurtain - zigbee привод для управления шторами на обычных карнизах 2024, Novembre
Anonim
Communication sans fil SmartHome: les bases extrêmes de MQTT
Communication sans fil SmartHome: les bases extrêmes de MQTT
Communication sans fil SmartHome: les bases extrêmes de MQTT
Communication sans fil SmartHome: les bases extrêmes de MQTT

Bases de MQTT:

** Je vais faire une série sur la domotique, je vais suivre les étapes que j'ai suivies pour apprendre tout ce que j'ai fait à l'avenir. Ce Instructable est la base de référence sur la façon de configurer MQTT pour une utilisation dans mes futurs Instructables. Cependant, les enseignements de ce contenu seront applicables à tout projet que l'on souhaite entreprendre.**

Internet des objets:

L'Internet des objets envahit le monde, et en particulier dans des communautés comme la nôtre ici à Instructables. Depuis que j'ai rejoint cette communauté, elle s'est enracinée avec des gens qui construisent

Appareils connectés et contrôlés via Internet. Lorsque vous travaillez avec l'Internet des objets, il est difficile de ne pas utiliser le protocole MQTT. Il s'agit d'un protocole de communication comme d'autres utilisés sur Internet aujourd'hui, tels que HTTP ou FTP, mais son fonctionnement est différent, ce qui le rend idéal pour les applications de l'Internet des objets.

Qu'est-ce que MQTT:

MQTT (Message Queuing Telemetry Transport est un protocole de communication léger utilisant une architecture de publication/abonnement. HTTP, qui est utilisé par la plupart des utilisateurs d'Internet, est construit sur un système de demande/réponse. Cela signifie qu'il reçoit une demande d'un client et envoie une réponse à ce client. MQTT dispose également d'un serveur (appelé courtier) ainsi que de nombreux clients. Contrairement à HTTP, MQTT permet aux clients de publier ou de s'abonner à des « sujets » spécifiques. Cela permet une communication plus large via un point centralisé, le courtier. Chaque nœud peut publier dans une rubrique sur le courtier, et tout nœud abonné à cette rubrique recevra le message. Les clients peuvent également s'abonner à plusieurs rubriques et peuvent ensuite recevoir plusieurs directives ou mises à jour.

L'ensemble du système est piloté par les événements et permet aux messages du courtier d'être transmis à chaque client abonné. Ainsi, plutôt que HTTP, où le client demande les informations, le client reçoit les informations directement du courtier dès réception. Il existe également des services intégrés permettant diverses sauvegardes, telles que les spécifications QOS. Une spécification QOS permet à un courtier de déterminer si un message doit être remis au plus une fois, au moins une fois ou exactement une fois. Cela garantit que les données sont fournies de la manière requise à chaque client. Les clients peuvent également demander que les messages publiés dans leur rubrique soient mis en mémoire tampon dans le courtier au cas où ils en seraient déconnectés pour une raison quelconque. Une fois de retour en ligne, ces données seront transmises au client.

Un sujet n'a rien de spécial, c'est juste une variété de chaînes qui sont combinées et séparées par des barres obliques. Le format dans l'exemple qui sera utilisé ci-dessous est le suivant: home/chambre/plafonnier. Chaque barre oblique est placée après un sujet pour signifier un sous-sujet. Ainsi, un message pourrait être publié à domicile, où tous les appareils de la maison le recevront. Il peut être publié directement dans la maison/la chambre, où tous les appareils de la chambre recevront le message. Et cela peut descendre jusqu'à l'appareil spécifique comme indiqué pour la première fois home/chambre/plafonnier où seul le plafonnier de la chambre recevra le message. La façon dont nous pouvons extraire des appareils individuels comme celui-ci jusqu'à un écosystème entier est extrêmement pratique, surtout en ce qui concerne la domotique. Il existe d'autres façons de décomposer les sujets, et je les approfondirai dans les futurs Instructables où l'application a le plus de sens.

Fournitures

Un seul des éléments suivants est nécessaire:

Ubuntu:

Sous-système Windows pour Linux: https://ubuntu.com/wsl (uniquement si vous n'avez pas Linux/MacOS)

MacOS: nécessite un MacBook

Ceci est nécessaire:

Broker Mosquitto MQTT - Téléchargé à l'aide d'apt-get (Documentation:

Étape 1: configuration initiale (selon votre système d'exploitation)

MacOS/Linux:

Aucune configuration nécessaire, ouvrez simplement votre terminal et passez à la configuration de Mosquitto !

Les fenêtres:

Si vous utilisez Windows, vous devrez installer le sous-système Windows pour Linux. Il s'agit d'un outil très facile à utiliser et extrêmement précieux qui vous permet d'exécuter un terminal Ubuntu dans Windows. Pas besoin d'installer et de dual booter Ubuntu juste pour tester le développement dans le terminal !

Étapes d'installation:

1. Accédez au Windows Store et recherchez ubuntu

2. Téléchargez et installez le sous-système Windows pour Linux

3. Ouvrez l'application et suivez les instructions pour terminer la configuration et vous êtes prêt à continuer !

Étape 2: Configuration de Mosquitto:

Configuration du moustique
Configuration du moustique
Configuration du moustique
Configuration du moustique
Configuration du moustique
Configuration du moustique

Ainsi, comme indiqué dans l'introduction à propos de MQTT, le protocole nécessite un courtier (serveur). Ce courtier est le point de base de toutes les connexions établies avec chaque client. Tous les messages sont transmis et mis en file d'attente dans ce courtier. Il existe de nombreuses options pour un courtier, et vous pouvez les trouver en ligne, mais celle que nous utiliserons est probablement la plus courante: Mosquitto.

Mosquitto est un courtier MQTT basé sur Linux avec une tonne de fonctionnalités. Je n'entrerai pas dans les détails de cette fonctionnalité pour le moment, mais quelques exigences de base qu'elle remplit sont l'authentification utilisateur/mot de passe et la prise en charge du cryptage TLS, qui sont toutes utiles dans le développement d'appareils Internet des objets.

Pas:

Toutes ces étapes doivent être effectuées dans une fenêtre de terminal.

1. Installer les clients Mosquitto et MQTT

sudo apt-get install mosquitto mosquitto-clients

2. Abonnez-vous à un sujet

mosquitto_sub -t "test"

Ce que cela fait, c'est s'abonner à un sujet. Ce sujet est désigné par "-t" et la valeur du sujet est "test". Cette valeur après le "-t" peut être tout ce que vous voulez sauf pour quelques réservations spéciales.

3. Ouvrez une nouvelle fenêtre de terminal et publiez un message dans le sujet "test"

mosquitto_pub -t "test" -m "Bonjour tout le monde avec MQTT !"

Cela publie un message dans le sujet "test", permettant à notre autre instance de terminal de recevoir le message du côté de l'abonnement. Le message publié est indiqué par un "-m" et la valeur du message est "Hello World With MQTT". Ce message, tout comme le sujet, peut être changé en ce que vous voulez !

4. Allez dans la première fenêtre du terminal pour voir vos résultats ! Vous devriez recevoir un message indiquant "Hello World With MQTT" affiché. Si vous ne le voyez pas, assurez-vous d'avoir tapé le bon sujet. Si vous l'avez terminé avec succès, continuez à jouer avec. Essayez différents sujets, avec des sous-thèmes et des messages différents !

Étape 3: Concluez

C'est ça! Une fois que vous avez tout terminé, vous comprenez les bases du fonctionnement de MQTT. Il s'agit d'un tutoriel très rudimentaire qui ne montre que le strict minimum du protocole MQTT. Future Instructables expliquera plus en détail comment le protocole fonctionne dans la pratique avec l'Internet des objets, en particulier avec les modules ESP8266 exécutant Arduino. Ma première application pratique sera la cafetière intelligente que j'ai actuellement dans ma chambre. Si vous souhaitez apprendre à fabriquer une cafetière pouvant être contrôlée à la fois à partir de votre téléphone et d'Alexa, assurez-vous de me suivre pour plus de tutoriels.

Conseillé: