{"id":386575,"date":"2022-01-11T11:00:28","date_gmt":"2022-01-11T10:00:28","guid":{"rendered":"https:\/\/iotworlds.com\/el-significado-de-mqtt-para-conectar-dispositivos-iot-con-aplicaciones-web\/"},"modified":"2022-01-11T11:00:51","modified_gmt":"2022-01-11T10:00:51","slug":"el-significado-de-mqtt-para-conectar-dispositivos-iot-con-aplicaciones-web","status":"publish","type":"post","link":"https:\/\/iotworlds.com\/es\/el-significado-de-mqtt-para-conectar-dispositivos-iot-con-aplicaciones-web\/","title":{"rendered":"El significado de MQTT para conectar dispositivos IoT con aplicaciones web"},"content":{"rendered":"\n<p>Con todos los protocolos de mensajer\u00eda disponibles, puede ser dif\u00edcil elegir solo uno. Y con tantas opciones disponibles, es muy f\u00e1cil encontrarse en una situaci\u00f3n en la que pruebe una que no funcione para usted o su equipo. Mqtt es un protocolo liviano que solo requiere clientes y corredores, por lo que es perfecto para situaciones en las que no desea problemas. \u00a1Este art\u00edculo explorar\u00e1 de qu\u00e9 es capaz este protocolo y c\u00f3mo logra estas cosas!<\/p>\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es MQTT?<\/h2>\n\n<p>Mqtt es un protocolo de mensajer\u00eda ligero que solo requiere clientes y corredores. Es perfecto para situaciones en las que no desea problemas ni problemas, ya que requiere muy poco de usted.<\/p>\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es un protocolo de mensajer\u00eda?<\/h2>\n\n<p>Un protocolo de mensajer\u00eda es un conjunto de reglas que se utilizan para permitir que las aplicaciones en diferentes m\u00e1quinas se comuniquen. Mqtt fue dise\u00f1ado espec\u00edficamente para Internet de las cosas (IoT). Con una gama tan amplia de otros protocolos disponibles, puede parecer extra\u00f1o crear otro para este prop\u00f3sito. Pero, dado que tantos dispositivos y servicios dependen de este campo, \u00a1es probable que veamos m\u00e1s y m\u00e1s de ellos con el tiempo!<\/p>\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 tiene de bueno MQTT?<\/h2>\n\n<p>Mqtt es verdaderamente \u00fanico, porque te ofrece mucho con casi nada. No necesita un servidor o reenviador dedicado como muchos otros protocolos, lo que significa que tampoco tendr\u00e1 problemas de infraestructura. Todo lo que necesita es un corredor ya existente y cualquier hardware con conexi\u00f3n a Internet. Gracias a la calidad de su trabajo y lo ligero que es, este protocolo se ha ido haciendo cada vez m\u00e1s popular. Debido a que es de c\u00f3digo abierto y de uso gratuito, puede comenzar f\u00e1cilmente sin tener que pagar ninguna tarifa o costo de suscripci\u00f3n. Y con el soporte de intermediario integrado en la biblioteca MQTT para Arduino, estamos emocionados de ver qu\u00e9 excelentes productos vendr\u00e1n en nuestro camino.<\/p>\n\n<h2 class=\"wp-block-heading\">\u00bfCu\u00e1les son las caracter\u00edsticas de MQTT?<\/h2>\n\n<p>Mqtt es uno de los mejores ejemplos de un protocolo de mensajer\u00eda simple y liviano que encontrar\u00e1. Su principal punto de venta es lo f\u00e1cil que es de usar: cualquier dispositivo con conexi\u00f3n a Internet puede aprovechar lo que este protocolo tiene para ofrecer. Pero hay algo m\u00e1s que la facilidad de uso de este protocolo. \u00a1Exploremos qu\u00e9 m\u00e1s puedes esperar de \u00e9l!<\/p>\n\n<h2 class=\"wp-block-heading\">Ejemplos de uso de MQTT<\/h2>\n\n<p>una. Dispositivos IoT en una f\u00e1brica que controla bombas y v\u00e1lvulas<\/p>\n\n<p>B. Una estaci\u00f3n meteorol\u00f3gica con un sensor que informa a una base de datos en la nube<\/p>\n\n<p>C. Un sistema de alarma que informa cuando las puertas se abren o cierran<\/p>\n\n<p>D. Algunas luces en una oficina se encienden cuando se detecta movimiento<\/p>\n\n<h2 class=\"wp-block-heading\">1. \u00bfQu\u00e9 es MQTT y cu\u00e1les son sus caracter\u00edsticas?<\/h2>\n\n<p>MQTT son las siglas de Message Queuing Telemetry Transport, que puede sonar complicado pero simplemente significa que es una forma en que los dispositivos IoT se comunican entre s\u00ed a trav\u00e9s de Internet. Se ejecuta sobre TCP\/IP como HTTP, SMTP, etc., pero a diferencia de HTTP, que es para comunicarse a trav\u00e9s de Internet, MQTT se usa con dispositivos que est\u00e1n conectados entre s\u00ed con una red, generalmente una red IP. Se usa m\u00e1s com\u00fanmente en IoT con dispositivos integrados de baja potencia que se conectan a cosas como placas Raspberry Pi o Arduino.<\/p>\n\n<h2 class=\"wp-block-heading\">2. \u00bfC\u00f3mo funciona?<\/h2>\n\n<p>Funciona como un correo electr\u00f3nico. Un dispositivo IoT publica un mensaje en un tema. Es como enviar un correo electr\u00f3nico a alguien, pero en lugar de una persona, es un nombre de tema. El mensaje puede tener hasta 2 kb de datos y se env\u00eda como un paquete.<\/p>\n\n<p>Un segundo suscriptor de MQTT escucha paquetes con su propia ID \u00fanica o ID de cliente. Entonces hace algo con el mensaje. Es como cuando alguien recibe un correo electr\u00f3nico, hace algo con \u00e9l; leerlo, enviarlo a otro lugar, etc.<\/p>\n\n<p>MQTT tiene un nivel de calidad de servicio (QoS), lo que significa que puede haber diferentes niveles de prioridad para los mensajes. El cliente establece el nivel de QoS y cada paquete enviado tiene ese nivel de prioridad.<\/p>\n\n<h2 class=\"wp-block-heading\">3. Beneficios de MQTT<\/h2>\n\n<p>Es liviano, se ejecuta en TCP\/IP, menos sobrecarga que HTTP<\/p>\n\n<p>Los mensajes se almacenan en una cola hasta que puedan enviarse a su dispositivo de destino<\/p>\n\n<p>Tiene soporte de reconexi\u00f3n incorporado.<\/p>\n\n<p>Cada cliente puede tener su propia configuraci\u00f3n de seguridad para autenticaci\u00f3n y encriptaci\u00f3n<\/p>\n\n<p>QoS permite que los diferentes tipos de mensajes tengan diferentes niveles de prioridad<\/p>\n\n<h2 class=\"wp-block-heading\">4. Aplicaciones de MQTT<\/h2>\n\n<p>Algunos ejemplos de c\u00f3mo se est\u00e1 utilizando en el mundo real es con M2M Alliance, un proyecto que tiene como objetivo conectar \u00abcosas\u00bb con una plataforma segura para transferir datos entre dispositivos. Otro caso de uso es con el proyecto CEPH. Este es un sistema de almacenamiento en la nube que puede almacenar y compartir archivos simult\u00e1neamente con m\u00faltiples usuarios. Utiliza MQTT para asegurar el acceso distribuido mediante el cifrado de datos, lo que permite transferirlos entre dispositivos IoT utilizando varias puertas de enlace sin tener que preocuparse por la seguridad de los datos.<\/p>\n\n<h2 class=\"wp-block-heading\">5. Primeros pasos con MQTT<\/h2>\n\n<p>Lo primero que se necesita es un cliente MQTT; esta es la aplicaci\u00f3n que env\u00eda y recibe mensajes. La fundaci\u00f3n Raspberry Pi tiene una gu\u00eda para comenzar con MQTT en su dispositivo Pi. Tambi\u00e9n hay otras gu\u00edas disponibles, como esta de Hackster, que le brinda el c\u00f3digo para ejecutar en el lenguaje de programaci\u00f3n Python.<\/p>\n\n<h2 class=\"wp-block-heading\">Los mejores cursos en l\u00ednea de MQTT<\/h2>\n\n<ol class=\"wp-block-list\"><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmastering-mqtt%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Dominar MQTT<\/a><\/strong><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-protocol%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Protocolo maestro MQTT<\/a><\/strong><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fdevelop-mqtt-client-android-app%2F\" target=\"_blank\" rel=\"noreferrer noopener\">Desarrollar la aplicaci\u00f3n de Android del cliente MQTT<\/a><\/strong><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-masterclass%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Clase magistral de MQTT<\/strong><\/a><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmastering-mqtt-protocol%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Dominar el protocolo MQTT: una gu\u00eda de nivel principiante a avanzado<\/strong><\/a><\/li><li><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fiot-mqtt-esp8266%2F\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>IoT: MQTT con Adafruit, App Inventor y ESP8266<\/strong><\/a><\/li><li><strong><a href=\"https:\/\/click.linksynergy.com\/deeplink?id=kJzl6XhnZWo&amp;mid=39197&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmqtt-nodemcu-esp8266-node-red-android%2F\" target=\"_blank\" rel=\"noreferrer noopener\">MQTT Nodemcu (ESP8266) con Nodered, Wifi y Bluetooth<\/a><\/strong><\/li><\/ol>\n<h2 class=\"wp-block-heading\">TLS frente a SSL para crear un br\u00f3ker MQTT<\/h2>\n\n<h3 class=\"wp-block-heading\">Ventajas de usar TLS:<\/h3>\n\n<p>-Seguridad: TLS proporciona una conexi\u00f3n segura entre el cliente y el corredor. Esto ayuda a proteger contra los ataques de intermediarios y las escuchas.<\/p>\n\n<p>-Autenticaci\u00f3n: TLS proporciona autenticaci\u00f3n del corredor y del cliente, lo que ayuda a garantizar que solo los clientes autorizados puedan conectarse al corredor.<\/p>\n\n<p>-Cifrado: TLS proporciona cifrado de datos entre el cliente y el corredor, lo que ayuda a proteger la informaci\u00f3n para que no sea vista por personas no autorizadas.<\/p>\n\n<h3 class=\"wp-block-heading\">Contras de usar TLS:<\/h3>\n\n<p>-Rendimiento: TLS puede agregar sobrecarga a las comunicaciones, lo que puede reducir el rendimiento.<\/p>\n\n<p>-Certificados: Para usar TLS, necesita certificados tanto para el cliente como para el corredor. Estos certificados pueden ser dif\u00edciles de obtener y su uso puede ser costoso, lo que puede aumentar el costo del uso de TLS.<\/p>\n\n<h3 class=\"wp-block-heading\">Ventajas de usar SSL:<\/h3>\n\n<p>-Seguridad: SSL proporciona una conexi\u00f3n segura entre el cliente y el corredor, al igual que TLS. Tambi\u00e9n ayuda a proteger contra los ataques de intermediarios y las escuchas.<\/p>\n\n<p>-Certificados: dado que SSL se basa en TLS, puede usar los mismos certificados para cifrar el tr\u00e1fico.<\/p>\n\n<h3 class=\"wp-block-heading\">Contras de usar SSL:<\/h3>\n\n<p>-Rendimiento: el cifrado entre el cliente y el intermediario agregar\u00e1 una sobrecarga a las comunicaciones, lo que reduce el rendimiento.<\/p>\n\n<p>-Uso de memoria: el protocolo SSL utilizar\u00e1 m\u00e1s memoria que otros protocolos porque mantiene una sesi\u00f3n de cifrado\/descifrado con el intermediario.<\/p>\n\n<p>-Problemas de versi\u00f3n: SSL es un protocolo m\u00e1s antiguo y no es compatible con algunas de las caracter\u00edsticas que proporciona TLS (por ejemplo, cifrados m\u00e1s nuevos).<\/p>\n\n<p>Como puede ver, TLS y SSL brindan seguridad, autenticaci\u00f3n y encriptaci\u00f3n para la comunicaci\u00f3n entre clientes y corredores; sin embargo, lo hacen de maneras ligeramente diferentes. No hay un claro ganador cuando se trata de decidir si debe usar TLS o SSL para su MQTT Broker, ya que la decisi\u00f3n depender\u00e1 de lo que necesite de su infraestructura y cu\u00e1nto tiempo\/dinero tenga disponible para gastar.<\/p>\n\n<p>En conclusi\u00f3n, dir\u00eda que hay una respuesta correcta dependiendo de las necesidades del proyecto. En este caso es mejor utilizar TLS, ya que aporta m\u00e1s ventajas que SSL.<\/p>\n\n<h2 class=\"wp-block-heading\">Las 5 razones principales para usar el protocolo MQTT en sus proyectos de IoT<\/h2>\n\n<p>MQTT es un protocolo de mensajer\u00eda de m\u00e1quina a m\u00e1quina (M2M), dise\u00f1ado para dispositivos con recursos limitados, que conecta los dispositivos a la nube.<\/p>\n\n<p>1. Es liviano y f\u00e1cil de usar: MQTT es un protocolo de mensajer\u00eda de publicaci\u00f3n\/suscripci\u00f3n que est\u00e1 dise\u00f1ado para ser liviano y f\u00e1cil de usar.<\/p>\n\n<p>2. Ocupa poco espacio: MQTT utiliza aproximadamente 1\/10 del ancho de banda de HTTP, lo que lo hace ideal para aplicaciones IoT con recursos de red limitados.<\/p>\n\n<p>3. Admite QoS: MQTT admite Quality of Service (QoS), lo que garantiza la entrega de mensajes con la latencia o calidad deseada.<\/p>\n\n<p>4. Puede ejecutarse en cualquier red: MQTT es un protocolo multiplataforma que puede ejecutarse en WiFi, Bluetooth Low Energy (BLE) o redes celulares 2G\/3G.<\/p>\n\n<p>5. Tiene varias bibliotecas cliente disponibles en muchos lenguajes de programaci\u00f3n: Hay bibliotecas cliente para C, C++, JavaScript, Arduino IDE, Python y Java.<\/p>\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo configurar un Broker MQTT usando un Contenedor Docker en su PC o un servidor VPS?<\/h2>\n\n<p>MQTT es un protocolo de mensajer\u00eda de m\u00e1quina a m\u00e1quina (M2M)\/\u00bbIoT\u00bb, dise\u00f1ado como un transporte de mensajer\u00eda de publicaci\u00f3n\/suscripci\u00f3n extremadamente ligero. Es \u00fatil para conexiones con ubicaciones remotas donde se requiere una huella de c\u00f3digo peque\u00f1a y\/o el ancho de banda de la red es escaso.<\/p>\n\n<p>En este art\u00edculo, le mostraremos c\u00f3mo configurar un agente MQTT utilizando un contenedor Docker en su PC o un servidor VPS.<\/p>\n\n<p>Docker es un motor de creaci\u00f3n de contenedores que lo ayuda a implementar f\u00e1cilmente sus aplicaciones con todas sus dependencias. Proporciona un entorno coherente en cada host de Docker, le permite ahorrar tiempo y mejorar la portabilidad de su c\u00f3digo entre varias distribuciones de Linux. Por ejemplo, si alguna aplicaci\u00f3n depende de una gran cantidad de bibliotecas del sistema o de algunas versiones de bibliotecas raras y, por lo tanto, no es f\u00e1cil de transportar, simplemente puede empaquetarlo todo e implementarlo como un contenedor de Docker.<\/p>\n\n<h3 class=\"wp-block-heading\">1) Instalaci\u00f3n de Docker para Windows\/Mac<\/h3>\n\n<p>Docker est\u00e1 disponible para usuarios de Microsoft Windows y Mac OS X. Puede descargar la versi\u00f3n adecuada desde aqu\u00ed: https:\/\/docs.docker.com\/docker-for-windows\/install\/.<\/p>\n\n<h3 class=\"wp-block-heading\">2) Instalar Docker-compose en su host<\/h3>\n\n<p>Para implementar f\u00e1cilmente nuestro agente MQTT casero, utilizaremos la herramienta docker-compose. Le permite definir y ejecutar aplicaciones Docker de m\u00faltiples contenedores utilizando un archivo YAML simple. Puede obtener m\u00e1s informaci\u00f3n sobre docker-compose aqu\u00ed: https:\/\/docs.docker.com\/compose\/.<\/p>\n\n<p>Puede descargar la herramienta docker-compose desde aqu\u00ed: https:\/\/github.com\/docker\/compose\/releases\/. Una vez hecho esto, deber\u00eda poder ejecutar el comando &#8216;docker-compose&#8217; en su terminal y verificar su versi\u00f3n o usar cualquiera de sus subcomandos.<\/p>\n\n<h3 class=\"wp-block-heading\">Terminolog\u00eda b\u00e1sica de Docker para este art\u00edculo:<\/h3>\n\n<p>1) El \u00abcontenedor Docker\u00bb es el proceso que se ejecuta en segundo plano cuando ejecuta una imagen con el comando de ejecuci\u00f3n docker. Una instancia en ejecuci\u00f3n de una imagen se denomina \u00abcontenedor\u00bb, con respecto a su creaci\u00f3n en la construcci\u00f3n de la ventana acoplable.<\/p>\n\n<p>2) \u00abImagen acoplable\u00bb es una plantilla de solo lectura con instrucciones para crear un contenedor acoplable. Est\u00e1 compuesto por una serie de capas del sistema de archivos que representan diferentes estados de la imagen final que queremos crear.<\/p>\n\n<p>3) El comando copy at docker build construye una imagen leyendo su descripci\u00f3n de un Dockerfile en el directorio de trabajo actual y luego ejecutando el comando apropiado en una nueva capa encima de la imagen actual.<\/p>\n\n<p>4) Los \u00abvol\u00famenes\u00bb son carpetas que le permiten asignar carpetas locales en su m\u00e1quina host a directorios dentro de sus contenedores docker. Esto es \u00fatil si, por ejemplo, desea almacenar algunos datos sobre su contenedor o archivos de configuraci\u00f3n. Puede crear un volumen especificando la ruta de la carpeta desde su sistema host mediante la ejecuci\u00f3n de la ventana acoplable.<\/p>\n\n<p>El archivo YAML es un archivo de configuraci\u00f3n que contiene informaci\u00f3n para conectarse a una base de datos externa, un servidor MQTT, etc., as\u00ed como informaci\u00f3n sobre c\u00f3mo y qu\u00e9 contenedores se deben crear. Crearemos un archivo YAML para configurar nuestro corredor en la siguiente secci\u00f3n.<\/p>\n\n<h3 class=\"wp-block-heading\">3) Creando el archivo YAML para configurar su MQTT Broker<\/h3>\n\n<p>Los archivos YAML suelen estar compuestos por varios pares clave-valor, que est\u00e1n conectados por dos puntos (\u00ab:\u00bb). Puede obtener m\u00e1s informaci\u00f3n sobre YAML desde aqu\u00ed: https:\/\/en.wikipedia.org\/wiki\/YAML#Syntax.<\/p>\n\n<p>En nuestro caso, crearemos un archivo YAML para configurar el broker MQTT de la siguiente manera:<\/p>\n\n<p>versi\u00f3n: \u00ab3\u00bb<\/p>\n\n<p>En esta secci\u00f3n de YAML, definimos el nombre del contenedor como \u00abhomer-mqtt\u00bb y especificamos la imagen que debe usarse para crearlo. En este caso elegiremos la imagen \u201cdavidtgoldblatt\/homer-mqtt\u201d de Docker Hub desde aqu\u00ed: https:\/\/hub.docker.com\/_\/homer-mqtt\/.<\/p>\n\n<p>En nuestro archivo YAML, tambi\u00e9n declaramos un par de vol\u00famenes de la siguiente manera:<\/p>\n\n<p>vol\u00famenes:<\/p>\n\n<p>&#8211; \/var\/run\/docker.sock:\/var\/run\/docker.sock<\/p>\n\n<p>Estos vol\u00famenes nos permitir\u00e1n tener almacenamiento persistente para el contenedor docker, lo que permitir\u00e1 que nuestra configuraci\u00f3n persista a trav\u00e9s de reinicios y bloqueos del servidor. Puede obtener m\u00e1s informaci\u00f3n sobre los vol\u00famenes aqu\u00ed: https:\/\/docs.docker.com\/engine\/userguide\/dockervolumes\/.<\/p>\n\n<p>Para especificar los detalles de nuestra base de datos, agregamos una secci\u00f3n \u00abdb_addresses\u00bb con las siguientes entradas:<\/p>\n\n<p>direcciones_db:<\/p>\n\n<p>&#8211; \u00abhost=172.17.0.2 puerto=3306 usuario=homer dbname=homer\u00bb<\/p>\n\n<p>En el ejemplo anterior, especificamos un host y un puerto para nuestra instancia de base de datos. Tenga en cuenta que al especificar un usuario, debe agregar un s\u00edmbolo \u00ab@\u00bb antes del nombre de usuario. Esto se debe a que el nombre de usuario consta de letras y n\u00fameros en los sistemas Unix. Si omite eso, Docker se queja con errores como este:<\/p>\n\n<p>tienes que escapar de caracteres especiales como @ o *<\/p>\n\n<p>Para especificar las credenciales de nuestra base de datos, agregamos una secci\u00f3n \u00abdatabase_password\u00bb de la siguiente manera:<\/p>\n\n<p>base de datos_contrase\u00f1a: \u00abhomerun1\u00bb<\/p>\n\n<p>En el ejemplo anterior, debe utilizar la contrase\u00f1a de su elecci\u00f3n. En caso de que desee configurar una contrase\u00f1a de base de datos por primera vez, puede ver nuestra gu\u00eda sobre c\u00f3mo crear un nuevo usuario ra\u00edz sin contrase\u00f1a aqu\u00ed: https:\/\/homer-mqtt.readthedocs.io\/en\/latest\/configure_database_and_create_new_root_user .html<\/p>\n\n<p>Para especificar los detalles de nuestro servidor MQTT, agregamos una secci\u00f3n \u00abmqtt_server\u00bb con las siguientes entradas:<\/p>\n\n<p>servidor_mqtt:<\/p>\n\n<p>&#8211; nombre: host mqtt: 172.17.0.1 puerto: 8883 nombre de usuario: \u00abhomerun\u00bb contrase\u00f1a: \u00abhomerun1\u00bb<\/p>\n\n<p>En el ejemplo anterior, ejecutamos el intermediario en el puerto 8883 y usamos el nombre de usuario de \u00abhomerun\u00bb y la contrase\u00f1a de \u00abhomerun1\u00bb, que hemos creado en nuestra base de datos.<\/p>\n\n<h3 class=\"wp-block-heading\">4) Ejecute su agente MQTT con Docker<\/h3>\n\n<p>En este paso, crearemos un contenedor docker a partir de nuestro archivo YAML y lo ejecutaremos.<\/p>\n\n<p>Para hacer esto, cd al directorio donde tiene el archivo YAML y ejecute \u00abdocker-compose up\u00bb de la siguiente manera:<\/p>\n\n<p>$ ventana acoplable-componer<\/p>\n\n<p>Este comando crear\u00e1 un nuevo contenedor docker basado en la descripci\u00f3n de su archivo YAML y lo iniciar\u00e1.<\/p>\n\n<p>Si desea iniciar esto en segundo plano, use \u00abdocker-compose up -d\u00bb en su lugar. Si desea imprimir los registros de su contenedor docker, ejecute \u00abdocker-compose logs mqttclient\u00bb de la siguiente manera:<\/p>\n\n<p>$ docker-compose logs mqttclient<\/p>\n\n<p>Tambi\u00e9n puede ver el contenedor docker en vivo en tiempo real usando \u00abdocker-compose ps\u00bb de la siguiente manera:<\/p>\n\n<p>$ ventana acoplable-componer ps<\/p>\n\n<h3 class=\"wp-block-heading\">5) Ejecutar su cliente MQTT con Docker<\/h3>\n\n<p>En este paso, crearemos un contenedor docker a partir de nuestro archivo YAML y lo ejecutaremos.<\/p>\n\n<p>Para hacer esto, cd al directorio donde tiene el archivo YAML y ejecute \u00abdocker-compose up\u00bb de la siguiente manera:<\/p>\n\n<p>$ ventana acoplable-componer<\/p>\n\n<p>Este comando crear\u00e1 un nuevo contenedor docker basado en la descripci\u00f3n de su archivo YAML y lo iniciar\u00e1.<\/p>\n\n<p>Si desea iniciar esto en segundo plano, use \u00abdocker-compose up -d\u00bb en su lugar. Tambi\u00e9n puede ver el contenedor docker en vivo en tiempo real usando \u00abdocker-compose ps\u00bb de la siguiente manera:<\/p>\n\n<p>$ ventana acoplable-componer ps<\/p>\n\n<h3 class=\"wp-block-heading\">6) Usando su cliente MQTT con Docker<\/h3>\n\n<p>Ahora que nuestro archivo YAML est\u00e1 configurado, ahora podemos comenzar a usar nuestro cliente MQTT con Docker.<\/p>\n\n<p>Para hacer esto, vaya al directorio donde tiene su archivo YAML y ejecute \u00abdocker exec\u00bb de la siguiente manera:<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>Ahora deber\u00eda ver un directorio llamado \u00ab\/home\/homerun\u00bb (que es el directorio de inicio de nuestro contenedor docker) y deber\u00eda estar dentro de ese directorio.<\/p>\n\n<p>Ahora puede ver sus bases de datos escribiendo \u00abmysql -uroot -proot\u00bb de la siguiente manera:<\/p>\n\n<p>$ mysql-uroot-proot<\/p>\n\n<p>Deber\u00eda ver todas sus bases de datos en la pantalla. Puede ver c\u00f3mo crear un nuevo usuario ra\u00edz sin contrase\u00f1a para la instancia de MySQL aqu\u00ed: https:\/\/homer-mqtt.readthedocs.io\/en\/latest\/configure_database_and_create_new_root_user.html<\/p>\n\n<p>Para ejecutar el comando del cliente MQTT en Docker, debe escribir \u00absbin\/mqtt\u00bb de la siguiente manera:<\/p>\n\n<p>$ sbin\/mqtt -c \/home\/homerun\/config.yaml<\/p>\n\n<p>En el ejemplo anterior, especificamos un archivo de configuraci\u00f3n con el indicador -c, que lee nuestra configuraci\u00f3n de MQTT del archivo de configuraci\u00f3n que hemos creado en este tutorial.<\/p>\n\n<p>Para verificar si su cliente MQTT est\u00e1 en funcionamiento, puede usar \u00abdocker-compose ps\u00bb de la siguiente manera:<\/p>\n\n<p>$ ventana acoplable-componer ps<\/p>\n\n<p>En el ejemplo anterior, nuestro cliente MQTT se inici\u00f3 correctamente. Ahora deber\u00eda ver todas sus bases de datos en la pantalla.<\/p>\n\n<p>Para ejecutar el comando del cliente MQTT en Docker, debe escribir \u00absbin\/mqtt\u00bb de la siguiente manera:<\/p>\n\n<p>$ sbin\/mqtt -c \/home\/homerun\/config.yaml<\/p>\n\n<p>En el ejemplo anterior, especificamos un archivo de configuraci\u00f3n con el indicador -c, que lee nuestra configuraci\u00f3n de MQTT del archivo de configuraci\u00f3n que hemos creado en este tutorial.<\/p>\n\n<p>Para verificar si su cliente MQTT est\u00e1 en funcionamiento, puede usar \u00abdocker-compose ps\u00bb de la siguiente manera:<\/p>\n\n<p>$ ventana acoplable-componer ps<\/p>\n\n<p>En el ejemplo anterior, nuestro cliente MQTT se inici\u00f3 correctamente. Ahora deber\u00eda ver todas sus bases de datos en la pantalla y puede intentar publicar algunos mensajes para comprobar si todo funciona bien:<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>$ sbin\/mqtt publicar -t &#8216;prueba&#8217; -h 172.17.0.1 -m &#8216;\u00a1hola mundo!&#8217;<\/p>\n\n<p>$ docker exec -it mqttclient \/bin\/bash<\/p>\n\n<p>$ sbin\/mqtt suscripci\u00f3n -t &#8216;prueba&#8217; -h 172.17.0.1 -u mqttuser<\/p>\n\n<h3 class=\"wp-block-heading\">7) Limpieza de su cliente MQTT con Docker<\/h3>\n\n<p>Para detener su contenedor docker, debe ejecutar \u00abdocker-compose down\u00bb de la siguiente manera:<\/p>\n\n<p>$ ventana acoplable-componer hacia abajo<\/p>\n\n<h3 class=\"wp-block-heading\">8) Limpieza de su cliente MQTT con Docker Volumes<\/h3>\n\n<p>Para detener la creaci\u00f3n de su base de datos mysql y usuario mqtt, puede usar el indicador -v.<\/p>\n\n<p>$ ventana acoplable-componer abajo -v<\/p>\n\n<p>Tambi\u00e9n puede limpiar su entorno eliminando el directorio que contiene su archivo YAML.<\/p>\n\n<p>\u00a1La base de datos Mysql y el usuario mqtt se crearon con \u00e9xito! Se eliminar\u00e1n autom\u00e1ticamente cuando elimine el contenedor docker. Ahora puede salir de este shell escribiendo \u00absalir\u00bb.<\/p>\n\n<p>En este tutorial hemos visto c\u00f3mo configurar tu cliente MQTT a trav\u00e9s de un contenedor Docker.<\/p>\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n<p>MQTT es un protocolo de conectividad de m\u00e1quina a m\u00e1quina (M2M) o \u00abInternet de las cosas\u00bb. Fue dise\u00f1ado como un transporte de mensajer\u00eda de publicaci\u00f3n\/suscripci\u00f3n extremadamente liviano. MQTT es \u00fatil para conectar sensores de bajo consumo, dispositivos port\u00e1tiles y otras cosas diminutas conectadas a Internet a la nube. Debido a que MQTT usa un modelo de publicaci\u00f3n\/suscripci\u00f3n, es perfecto para dispositivos que necesitan enviar datos con poca frecuencia o donde el ancho de banda de la red es escaso.<\/p>\n\n<h2 class=\"wp-block-heading\">\u00bfEst\u00e1 interesado en desarrollar su soluci\u00f3n MQTT? <a href=\"mailto:info@iotworlds.com\">Contacta con nosotros!<\/a><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Con todos los protocolos de mensajer\u00eda disponibles, puede ser dif\u00edcil elegir solo uno. Y con tantas opciones disponibles, es muy&hellip;<\/p>\n","protected":false},"author":1,"featured_media":386390,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[1746,1796],"tags":[],"class_list":["post-386575","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-es","category-smart-device-es"],"acf":[],"_links":{"self":[{"href":"https:\/\/iotworlds.com\/es\/wp-json\/wp\/v2\/posts\/386575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iotworlds.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iotworlds.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/es\/wp-json\/wp\/v2\/comments?post=386575"}],"version-history":[{"count":0,"href":"https:\/\/iotworlds.com\/es\/wp-json\/wp\/v2\/posts\/386575\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/iotworlds.com\/es\/wp-json\/wp\/v2\/media\/386390"}],"wp:attachment":[{"href":"https:\/\/iotworlds.com\/es\/wp-json\/wp\/v2\/media?parent=386575"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iotworlds.com\/es\/wp-json\/wp\/v2\/categories?post=386575"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iotworlds.com\/es\/wp-json\/wp\/v2\/tags?post=386575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}