Tabla de contenido:

Comunicación inalámbrica SmartHome: los conceptos básicos de MQTT: 3 pasos
Comunicación inalámbrica SmartHome: los conceptos básicos de MQTT: 3 pasos

Video: Comunicación inalámbrica SmartHome: los conceptos básicos de MQTT: 3 pasos

Video: Comunicación inalámbrica SmartHome: los conceptos básicos de MQTT: 3 pasos
Video: Introducción a MQTT (Mosquitto) 2024, Noviembre
Anonim
Comunicación inalámbrica SmartHome: los conceptos básicos de MQTT
Comunicación inalámbrica SmartHome: los conceptos básicos de MQTT
Comunicación inalámbrica SmartHome: los conceptos básicos de MQTT
Comunicación inalámbrica SmartHome: los conceptos básicos de MQTT

Conceptos básicos de MQTT:

** Voy a hacer una serie de domótica, seguiré los pasos que tomé para aprender todo lo que he hecho en el futuro. Este Instructable es la línea de base sobre cómo configurar MQTT para usar en mis Instructables futuros. Sin embargo, las enseñanzas de este contenido serán aplicables a cualquier proyecto que le gustaría emprender. **

Internet de las Cosas:

El Internet de las cosas se está apoderando del mundo, y especialmente en comunidades como la nuestra aquí en Instructables. Desde que me uní a esta comunidad, se ha afianzado con personas que construyen

Dispositivos conectados y controlados a través de Internet. Cuando se trabaja con Internet de las cosas, es difícil no seguir el protocolo MQTT. Este es un protocolo de comunicaciones como otros que se utilizan en Internet hoy en día, como HTTP o FTP, sin embargo, la forma en que funciona es diferente, lo que lo hace ideal para aplicaciones de Internet de las cosas.

¿Qué es MQTT?

MQTT (El transporte de telemetría de Message Queue Server es un protocolo de comunicación ligero que utiliza una arquitectura de publicación / suscripción. HTTP, que es lo que utiliza la mayoría de Internet, se basa en un sistema de solicitud / respuesta. Esto significa que recibe una solicitud de un cliente y envía una respuesta a ese cliente. MQTT también tiene un servidor (llamado intermediario), así como muchos clientes. A diferencia de HTTP, MQTT permite que los clientes publiquen o se suscriban a "temas" específicos. Lo que esto permite es una comunicación más amplia a través de un punto centralizado, el corredor. Cada nodo puede publicar en un tema en el corredor, y cualquier nodo suscrito a ese tema recibirá el mensaje. Los clientes también pueden suscribirse a múltiples temas y luego pueden recibir múltiples directivas o actualizaciones.

Todo el sistema está controlado por eventos y permite que los mensajes del corredor se envíen a cada cliente suscrito. Entonces, en lugar de HTTP, donde el cliente solicita la información, el cliente recibe la información directamente del corredor al recibirla. También hay servicios integrados que permiten varias salvaguardas, como las especificaciones de QOS. Una especificación QOS permite que un corredor determine si un mensaje debe entregarse como máximo una vez, al menos una vez o exactamente una vez. Esto asegura que los datos se entreguen de la manera requerida a cada cliente. Los clientes también pueden solicitar que los mensajes publicados en su tema se almacenen en el intermediario en caso de que se desconecten de él por cualquier motivo. Una vez que vuelva a estar en línea, esos datos se enviarán al cliente.

Un tema no es nada especial, es solo una variedad de cadenas que se combinan y separan con barras. El formato del ejemplo que se utilizará a continuación es el siguiente: hogar / dormitorio / luz_del_ techo. Cada barra se coloca después de un tema para indicar un subtema. Por lo tanto, se podría publicar un mensaje en casa, donde todos los dispositivos de la casa lo recibirán. Podría publicarse directamente en casa / dormitorio, donde todos los dispositivos del dormitorio recibirán el mensaje. Y puede ir al dispositivo específico como se muestra por primera vez en casa / dormitorio / luz de techo, donde solo la luz de techo en el dormitorio recibirá el mensaje. La forma en que podemos abstraer dispositivos individuales como este hasta un ecosistema completo es extremadamente útil, especialmente cuando se trata de domótica. Hay otras formas de desglosar los temas, y los profundizaré en futuros Instructables donde la aplicación tenga más sentido.

Suministros

Solo se necesita uno de los siguientes:

Ubuntu:

Subsistema de Windows para Linux: https://ubuntu.com/wsl (solo si no tiene Linux / MacOS)

MacOS: requiere una MacBook

Esto es requerido:

Broker Mosquitto MQTT - Descargado usando apt-get (Documentación:

Paso 1: Configuración inicial (según su sistema operativo)

MacOS / Linux:

¡No es necesario realizar ninguna configuración, solo abre tu terminal y pasa a Configuración de Mosquitto!

Ventanas:

Si está en Windows, deberá instalar el Subsistema de Windows para Linux. Esta es una herramienta muy fácil de usar y extremadamente valiosa que le permite ejecutar una terminal de Ubuntu dentro de Windows. ¡No es necesario instalar Ubuntu y realizar un arranque dual solo para probar el desarrollo en la terminal!

Pasos de instalación:

1. Vaya a la Tienda Windows y busque ubuntu.

2. Descargue e instale el subsistema de Windows para Linux

3. Abra la aplicación y siga las instrucciones para completar la configuración y estará listo para continuar.

Paso 2: Configuración de Mosquitto:

Configuración de Mosquitto
Configuración de Mosquitto
Configuración de Mosquitto
Configuración de Mosquitto
Configuración de Mosquitto
Configuración de Mosquitto

Entonces, como se discutió en la introducción sobre MQTT, el protocolo requiere un intermediario (servidor). Este corredor es el punto base para todas las conexiones establecidas con cada cliente. Todos los mensajes se pasan y se ponen en cola en este intermediario. Hay muchas opciones para elegir para un corredor, y puede encontrarlas en línea, pero la que usaremos probablemente sea la más común: Mosquitto.

Mosquitto es un Broker MQTT basado en Linux con un montón de funcionalidades. No entraré en los detalles específicos de esa funcionalidad en este momento, pero algunos requisitos básicos que cumple son la autenticación de usuario / contraseña y el soporte de cifrado TLS, todos los cuales son útiles en el desarrollo de dispositivos de Internet de las cosas.

Pasos:

Todos estos pasos deben completarse en una ventana de terminal.

1. Instale los clientes Mosquitto y MQTT

sudo apt-get install mosquitto mosquitto-clients

2. Suscríbete a un tema

mosquitto_sub -t "prueba"

Lo que hace esto es suscribirse a un tema. Este tema se indica con "-t" y el valor del tema es "prueba". Este valor que sigue a la "-t" puede ser cualquier valor que desee guardar para algunas reservas especiales.

3. Abra una nueva ventana de terminal y publique un mensaje en el tema "prueba".

mosquitto_pub -t "prueba" -m "¡Hola mundo con MQTT!"

Esto publica un mensaje para el tema "prueba", lo que permite que nuestra otra instancia de terminal reciba el mensaje en el lado de la suscripción. El mensaje publicado se indica con una "-m" y el valor del mensaje es "Hola mundo con MQTT". Este mensaje, al igual que el tema, se puede cambiar a lo que desee.

4. ¡Vaya a la primera ventana de terminal para ver sus resultados! Debería recibir un mensaje que diga "Hola mundo con MQTT". Si no ve esto, asegúrese de haber escrito el tema correcto. Si lo ha completado con éxito, siga jugando con él. ¡Pruebe diferentes temas, con subtemas y diferentes mensajes!

Paso 3: ¡Cierre

¡Eso es todo! Una vez que lo haya completado, comprenderá los conceptos básicos de cómo funciona MQTT. Este es un tutorial muy rudimentario que solo muestra lo mínimo del protocolo MQTT. Future Instructables explicará con más profundidad cómo funciona el protocolo en la práctica con el Internet de las cosas, particularmente con los módulos ESP8266 que ejecutan Arduino. Mi primera aplicación práctica será la cafetera inteligente que tengo actualmente en mi habitación. Si desea aprender a hacer una cafetera que se pueda controlar tanto desde su teléfono como desde Alexa, asegúrese de seguirme para obtener más tutoriales.

Recomendado: