Table des matières:
- Fournitures
- Étape 1: configuration initiale (selon votre système d'exploitation)
- Étape 2: Configuration de Mosquitto:
- Étape 3: Concluez
Vidéo: Communication sans fil SmartHome : les bases extrêmes de MQTT : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
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:
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é:
Robot Arduino sans fil utilisant le module sans fil HC12 : 7 étapes
Robot Arduino sans fil utilisant le module sans fil HC12 : Salut les gars, bon retour. Dans mon article précédent, j'ai expliqué ce qu'est un circuit de pont en H, un circuit intégré de pilote de moteur L293D, un circuit de pilote de moteur L293D superposé pour piloter des pilotes de moteur à courant élevé et comment vous pouvez concevoir et fabriquer votre propre carte de pilote de moteur L293D
Communication sans fil utilisant le module émetteur-récepteur NRF24L01 pour les projets basés sur Arduino : 5 étapes (avec photos)
Communication sans fil à l'aide du module émetteur-récepteur NRF24L01 pour les projets basés sur Arduino : il s'agit de mon deuxième tutoriel instructable sur les robots et les micro-contrôleurs. C'est vraiment incroyable de voir votre robot vivant et fonctionner comme prévu et croyez-moi, ce sera plus amusant si vous contrôlez votre robot ou d'autres choses sans fil avec rapidité et
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch: 6 étapes
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch : Raspberry Pi est idéal pour créer des points d'accès sans fil sécurisés mais il n'a pas une bonne portée, j'ai utilisé un adaptateur sans fil USB TP Link WN7200ND pour l'étendre. Je veux partager comment le fairePourquoi est-ce que je veux utiliser un Raspberry Pi au lieu d'un routeur ?T
Système DIY de micro sans fil pour guitare sans fil : 4 étapes
DIY Wireless Mic to Wireless Guitar System: J'ai regardé des vidéos et des groupes et presque tous utilisent un système sans fil à la guitare. Devenir fou, bouger, marcher et faire ce qu'ils veulent sans le cordon alors je rêve d'en avoir un.. Mais.. pour moi maintenant c'est trop cher alors je suis arrivé à ça
Pirater une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : 4 étapes
Piratage d'une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : j'ai récemment construit un système d'alarme et je l'ai installé dans ma maison. J'ai utilisé des interrupteurs magnétiques sur les portes et les ai câblés à travers le grenier. Les fenêtres étaient une autre histoire et leur câblage n'était pas une option. J'avais besoin d'une solution sans fil et c'est