Tabla de contenido:

MQTT en placas Armtronix: 3 pasos
MQTT en placas Armtronix: 3 pasos

Video: MQTT en placas Armtronix: 3 pasos

Video: MQTT en placas Armtronix: 3 pasos
Video: Flashear SonOff tasmota👍 Home Assistant ✅ [METODO NO FALLA 2019] 2024, Noviembre
Anonim
MQTT en placas Armtronix
MQTT en placas Armtronix

En este instructivo, nos gustaría mostrarle inicialmente cómo puede usar un sistema basado en Linux (Debian o Ubuntu) e instalar Mosquitto (Mqtt Broker) en él, también mostrarle cómo usar el cliente Mqtt en su teléfono (Android) / basado en Linux. sistema, envío y recepción de mensajes a través de Mqtt. Después de familiarizarse con esto, nos gustaría mostrarle cómo puede configurar y conectar nuestra placa con este broker Mqtt instalado. También me gustaría mostrarle cómo puede agregar autenticación al corredor Mqtt y algunos consejos y trucos básicos para depurar. Entonces empecemos ………..

Paso 1: Instalación de Mqtt Broker:

Instalación de Mqtt Broker
Instalación de Mqtt Broker
Instalación de Mqtt Broker
Instalación de Mqtt Broker
Instalación de Mqtt Broker
Instalación de Mqtt Broker
Instalación de Mqtt Broker
Instalación de Mqtt Broker

Hay varios corredores de Mqtt que puede instalar. Algunos conocidos son los que se mencionan a continuación. Algunos de ellos son servicios basados en la nube.

  • HiveMQ
  • MosquittoCloud
  • MQTT
  • Adafruit.io

Le mostraremos cómo instalar Mosquitto en un sistema basado en Linux (Ubuntu 18.04). Para hacer esto, primero agregue Mosquitto a la lista de fuentes de ubuntu. Una vez que Mosquitto esté disponible en los repositorios de Ubuntu, podrá instalarlo con apt-get.

Solo abre una Terminal. Para abrir una Terminal, vaya a la esquina inferior izquierda del escritorio de Ubuntu, haga clic en Mostrar aplicación (cuadrícula de 3X3 con puntos). Se abrirá una ventana. Allí busca Terminal. Haga clic en el terminal, debería poder ver una ventana abierta como se muestra en las siguientes imágenes.

  • Mostrar aplicación (Imagen 1).
  • Busque Terminal (Imagen 2).
  • Ventana de terminal (Imagen 3).

Ingrese los siguientes comandos después de abrir la Terminal

sudo apt-add-repository ppa: mosquitto-dev / mosquitto-ppa

sudo apt-get update

sudo apt-get install mosquitto

También puede instalar el cliente Mqtt. El comando para hacer eso será

sudo apt-get install mosquitto-clients

Algunas imágenes para su referencia.

  • Añadiendo ppa (Imagen 4).
  • Actualización del repositorio (Imagen 5).
  • Instalación de Mosquitto (Imagen 6).
  • Instalación de Mosquitto Client (Imagen 7).

Paso 2: Prueba de MQTT (Mosquitto)

Prueba de MQTT (Mosquitto)
Prueba de MQTT (Mosquitto)
Prueba de MQTT (Mosquitto)
Prueba de MQTT (Mosquitto)
Prueba de MQTT (Mosquitto)
Prueba de MQTT (Mosquitto)

Para probar mqtt a través de ubuntu (mismo sistema u otro sistema), debe instalar el cliente mqtt que se instaló anteriormente con el comando sudo apt-get install mosquitto-clients. En caso de que desee probarlo con un teléfono móvil (Android), puede instalar la aplicación MyMqtt desde Play Store.

Mqtt trabaja en algo llamado Temas. Para facilitar su comprensión, considere estos temas como una carpeta en el disco duro de una computadora. Tratemos esta computadora como un servidor de computadora (que en el mundo mqtt es un Broker Mqtt). En este servidor, consideremos tener una carpeta.

Nombre de carpeta: / Folder_one /

Ahora consideremos a dos personas de dos sistemas diferentes (PC / Laptop) accediendo a este servidor para leer archivos o para enviar / volcar archivos o para realizar ambas operaciones.

Llamaremos a las dos personas / sistema como Sistema X, Sistema Y (Estos son Clientes Mqtt en el Mundo Mqtt).

Ahora, digamos que System X envía / vuelca algún archivo (nombre de archivo: temperatura) en la carpeta “/ Folder_one /”, esto en el mundo mqtt lo podemos llamar publicación (enviamos algún mensaje / carga útil en lugar de archivo).

Ahora, digamos que el Sistema Y desea obtener / leer este archivo o cualquier archivo nuevo o actualizar en esta carpeta, lo primero que necesita es saber el nombre de la carpeta y la ruta, que en nuestro caso es “/ Folder_one /”. Así que ahora irá a esta carpeta y leerá / recibirá ese archivo (nombre de archivo: temperatura). Conocer la ruta / Tema y verificar cambios en el archivo / archivos nuevos en el mundo Mqtt es suscripción a ese tema.

Considerando el ejemplo anterior, El sistema X publica en "/ Folder_one" y el sistema Y se suscribe a "/ Folder_one"

También tenga en cuenta que System X también puede suscribirse a “/ Folder_one” y System Y también puede publicar en “/ Folder_one”. Asimismo, incluso el sistema del servidor (The Mqtt Broker) puede publicar / suscribirse a “/ Folder_one” instalando el cliente Mqtt en él como lo hemos hecho actualmente. La otra cosa que debe recordar es que para publicar o suscribirse a un tema, necesitará conocer la dirección IP del Mqtt Broker.

Primero lo probaremos a través del cliente ubuntu que está instalado en el mismo sistema que el broker. Abriremos dos ventanas de terminal, una de ellas publicará y la otra se suscribirá. Para el ejemplo, usaremos / Folder_one como tema. Antes de publicar / sub a un tema, deberá encontrar la dirección IP de ubuntu. Para hacer esto, haga clic en la esquina superior derecha de la pantalla, seleccione la configuración de wifi, desde allí podrá encontrar la dirección IP del sistema ubuntu (actualmente la IP del corredor). Screenshort compartido como referencia (Imagen 8).

O para encontrar la dirección IP del corredor, puede encontrar la dirección IP instalando herramientas de red usando el siguiente comando en la terminal

sudo apt instalar herramientas de red

Instalación de net-tools (Imagen 9). Después de eso, simplemente escriba el comando ipconfig. Obtendrá una lista de la interfaz de red con la dirección mac e IP.

sudo ipconfig

La dirección IP de mi sistema es 192.168.1.67 (Imagen 10)

A publicar

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m pub_to_folderone

Aquí, mosquitto_pub es el comando, seguido del elemento identificador de parámetro -h que es la dirección IP del host / broker (en nuestro caso 192.168.1.67), seguido de -t que es el nombre del tema para el editor (en nuestro caso / Folder_one), seguido de -m que significa el mensaje / carga útil que se enviará (en nuestro caso es pub_to_folderone).

Suscribirse

mosquitto_sub -h 192.168.1.67 -t / Folder_one

Mensaje enviado por el editor: pub_to_folderone

Ejemplo de publicación

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m “hola prueba mqtt”

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m “mqtt en funcionamiento”

Ejemplo de respuesta recibida al suscribirse al tema

mosquitto_sub -h 192.168.1.67 -t / Folder_one

Mensaje enviado por el editor:

  • pub_to_folderone
  • hola prueba mqtt
  • mqtt trabajando

Pub Sub en dos ventanas de terminal separadas una al lado de la otra (Imagen 11)

Probando Mqtt en Android (mi mqtt)

Instale la aplicación mymqtt de Play Store en su teléfono Android (Imagen 12)

Abra la aplicación y haga clic en la esquina superior izquierda (Imagen 13, Imagen 14).

Haga clic en Configuración e ingrese la dirección IP del corredor, el puerto por defecto será 1883. Actualmente no estamos usando un corredor mqtt autenticado, por lo que el nombre de usuario y la contraseña estarán en blanco. Simplemente guárdelo y vuelva a hacer clic en la esquina superior izquierda de la aplicación (<Configuración) y el cajón se volverá a abrir (Imagen 15).

En la parte superior del cajón, le mostrará la dirección IP del corredor y el puerto al que está conectada la aplicación (Imagen 16).

Ahora agregue el tema al que desea suscribirse haciendo clic en Suscribirse. Aquí agregaremos el tema como / Folder_one (Imagen 17, Imagen 18).

Luego de hacer esto, desde el sistema ubuntu usando terminal publicaremos en el tema. Al publicar, debe publicar la carga útil / mensaje en esta aplicación móvil. Por ejemplo, publicar la carga útil como "ARM -Automation Robotics & Mechatronics". El comando es como se mencionó anteriormente.

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m “ARM -Automation Robotics & Mechatronics”

publicación desde el sistema ubuntu (Imagen 19).

Mensaje publicado recibido en el tablero (Imagen 20).

Ahora publiquemos desde un teléfono Android (Mi mqtt) y suscríbase en el sistema ubuntu. Para este ejemplo usamos el tema “/ mymqtt_to_pub”.

Para hacer esto, primero abra una terminal desde su sistema ubuntu y suscríbase al tema "/ mymqtt_to_pub" usando el siguiente comando (Imagen 21)

mosquitto_sub -h 192.168.1.67 -t / mymqtt_to_pub

Ahora vaya al cajón de la aplicación mymqtt y haga clic en publicar. Agregue el tema de publicación (en nuestro caso es “/ mymqtt_to_pub”) y envíe algún mensaje como enviaremos “hola Ubuntu”, presione el botón enviar (Imagen 22, Imagen 23).

El mensaje debería aparecer en la ventana de su terminal del sistema ubuntu (Imagen 24).

Tenga en cuenta que tanto el sistema ubuntu como el teléfono Android deben estar en la misma red o el puerto 1883 debe estar expuesto y debe conocer la dirección IP de su enrutador / puerta de enlace para que mqtt funcione. Si desea agregar autenticación a su corredor de mqtt, puede hacerlo siguiendo el enlace del blog que se menciona a continuación https://medium.com/@eranda/setting-up-authenticat … Siga el paso dos de este blog. Hemos habilitado la autenticación de nuestro corredor y usaremos un corredor autenticado para nuestros tableros.

Paso 3: Trabajar con Armtronix Board y Mqtt

Trabajar con Armtronix Board y Mqtt
Trabajar con Armtronix Board y Mqtt
Trabajar con Armtronix Board y Mqtt
Trabajar con Armtronix Board y Mqtt
Trabajar con Armtronix Board y Mqtt
Trabajar con Armtronix Board y Mqtt

Actualmente, para este instructable, estamos utilizando nuestra placa de atenuación única Wifi que usa Triac para cortar la onda sinusoidal y, a su vez, atenúa la bombilla o controla la velocidad del ventilador. También lo hemos conectado a través del tipo de autenticación mqtt.

Inicialmente hemos configurado la placa. Los pasos para configurarlo son los que se mencionan a continuación.

Encienda la placa, comenzará a alojar un punto de acceso Wifi.

Con un teléfono Android o una computadora portátil, conéctese a este AP (Imagen 25).

Una vez conectado a este AP, escriba 192.168.4.1 abriendo un navegador (chrome / firefox) desde el sistema / teléfono conectado al AP. Asegúrate de no estar usando tu conexión de datos (3G / 4G).

Al escribir la IP se abrirá una página web donde se debe ingresar lo siguiente (Imagen 26).

  • SSID: nombre del AP Wifi.
  • Contraseña: contraseña SSID.
  • Modo IoT Mqtt o Http (seleccione Mqtt).
  • Mqtt Broker IP (en nuestro caso es 192.168.1.67).
  • Nombre de usuario y contraseña de Mqtt, ya que estamos usando el tipo de autenticación, hemos usado Naren, xxxx
  • Tema de publicación de Mqtt: Este será el tema en el que también se publica la junta, hemos usado / testpub.
  • Tema de suscripción de Mqtt: este será el tema en el que la placa escuchará los comandos para activar el triac, hemos usado / testsub.
  • Nombre del dispositivo: es el nombre que le pides a alexa por activar el tablero, hemos usado corvi.

Después de ingresar los detalles, presione el botón enviar, al hacer esto obtendrá una pantalla como se muestra en la Imagen 27, espere un tiempo hasta que la placa deje de albergar el AP.

Tenga en cuenta que hemos conectado nuestra placa a través de Uart al monitor en serie de Arduino IDE. Entonces, en el lado izquierdo, verá los mensajes de depuración que imprime a través de Uart (esto es solo para su referencia).

Una vez hecho esto, puede ver la pantalla de depuración. La mayoría de los detalles estarán visibles allí. Después de esto, se conectará con éxito al corredor en la pantalla de depuración (serie). Puede ver esto.

Conectado al broker MQTT con autenticación. Suscrito al tema 1.

Después de que imprima esto, ahora puede comenzar a enviarle comandos a través de mqtt sobre el tema al que se ha suscrito, es decir, / testsub /

Para esta placa, los comandos son:

  • R13_ON: Para encender el triac al 100%.
  • R13_OFF: Para apagar el triac al 0%.
  • Atenuador: xx: Donde, xx es el valor de atenuación y se puede variar de 0 a 99.
  • Reset: Para borrar la configuración de la placa.
  • Estado: imprime el estado del atenuador de la placa en el tema de publicación de la placa.

Para enviar este comando desde un sistema basado en ubuntu donde está instalado el cliente mqtt, simplemente escríbalo como se muestra a continuación. Aquí se agregan dos parámetros adicionales debido a la autenticación, es decir, -u, que es el nombre de usuario y -P, la contraseña, tenga en cuenta que distinguen entre mayúsculas y minúsculas.

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m R13_OFF

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m Atenuador: 50

Nota: 50 es el valor de atenuación

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m Estado

Para obtener el estado más reciente, el estado se imprime en el tema de publicación del tablero, que en nuestro caso es / testpub. En nuestro tablero, cualquier cambio en el dispositivo se imprime en el tema de publicación del tablero. Por ejemplo, si pasamos Dimmer: 50 en el tema suscrito de la pizarra en lugar de ejecutarlo físicamente, la pizarra enviará un mensaje indicando el nivel atenuado en el tema de publicación. A continuación se muestra un ejemplo, Para suscribirse desde su sistema ubuntu al tema de publicación del tablero, ingrese el siguiente comando

mosquitto_sub -h 192.168.1.67 -u Naren -P xxxx -t / testpub

el mensaje que recibimos es

AtenuadorIS50

A continuación se muestran algunos cortos de pantalla del mismo (Imagen 28, Imagen 29)

Recomendado: