IoT-Wifi-MQTT

Que es IoT

El Internet de las cosas (Internet of Thing IoT) describe objetos físicos —o grupos de estos— con sensores, capacidad de procesamiento, software y otras tecnologías que se conectan e intercambian datos con otros dispositivos y sistemas a través de internet u otras redes de comunicación.​ El Internet de las cosas se ha considerado un término erróneo porque los dispositivos no necesitan estar conectados a la Internet pública. Sólo necesitan estar conectadas a una red y ser direccionables individualmente

Fuente Wikipedia IoT Internet de las cosas CC-BY-SA

De Drawed by Wilgengebroed on FlickrTranslated by Prades97 CC BY-SA 3.0

Estamos hablando de dispositivos que se conectan a internet de forma desatendida, por vía hardware (o mejor dicho firmware) a diferencia de un ordenador, tablet o móvil, donde tienes que configurar por software el dispositivo y hay un diálogo entre usuario y dispositivo sobre el uso de Internet (el software solicita tal página web, tales datos etc por voluntad del usuario o por diálogo con el usuario) Aquí los dispositivos están ya configurados de los datos que se comunican. Es decir "conectar y olvidar". 

Piensa en la diferencia entre un enchufe inteligente y un ordenador, el primero es lo que se considera dentro de IoT

Las formas "desatendidas" son un avance en la sociedad pero también puede generar problemas muy serios a nivel mundial, ver el caso Mirai

Las cosas claras. ¿asíncrono o síncrono?

Hay muchas herramientas IoT

MQTT

MQTT es un protocolo dentro de los protocolos entre máquina a máquina M2M. MQ significa Message Queue, son mensajes que se publican y otros se suscriben. Llegan a un servidor que también se llama Broker o Router, los va almacenando en una cola y se eliminan cuando son entregados. Un ejemplo fácil de entender son los mensajes SMS, que mientras no estas conectado, tus mensajes están en un servidor, y cuando te conectas, se descargan tus mensajes en tu móvil. Las últimas siglas TT significa Telemetry Transport

protocolos-rRPC.png

Fuente Luis Llamas CC-NC-BY-SA https://www.luisllamas.es/protocolos-de-comunicacion-para-iot/

Los clientes inician una conexión TCP/IP con el broker, el cual mantiene un registro de los clientes conectados. Esta conexión se mantiene abierta hasta que el cliente la finaliza. Por defecto, MQTT emplea el puerto 1883 y el 8883 cuando funciona sobre TLS.

Fuente Luis Llamas CC-NC-BY-SA https://www.luisllamas.es/protocolos-de-comunicacion-para-iot/

TCP/IP son los protocolos de comunicación en Internet. TLS Transport Layer Security es un protocolo que se añade para asegurar la privacidad y seguridad de los datos. Por eso hay que enviar un usuario y una contraseña para conseguir esta seguridad.

En los mensajes, se añade un texto que haga de filtro, que se llama topic, este topic permite al broker filtrar de todos los mensajes que se reciben a qué clientes hay que entregar estos mensajes. Estos topic suelen estar jerarquizados, por ejemplo Casa/Cocina/Temperatura y un cliente puede estar suscrito a Casa/+/Temperatura por lo que recibiría los datos de Casa/Cocina/Temperatura pero también los de Casa/Salon/Temperatura, etc... Si quieres saber más de los tópic te recomendamos la página https://www.luisllamas.es/que-son-y-como-usar-los-topics-en-mqtt-correctamente/

El MQTT se ha hecho muy popular en los dispositivos electrónicos, porque:

Para saber más te recomendamos la página de Luis Llamas https://www.luisllamas.es/protocolos-de-comunicacion-para-iot/

Y el broker ¿de donde?

Puedes montarte tu propio broker en un ordenador, pues es código abierto, por ejemplo instalar Mosquitto https://mosquitto.org/ en una raspberry.

O bien usar brokers MQTT gratuitos y públicos en Internet, con sus limitaciones de anchos de banda o número de conexiones... como HIVEMQ Info: http://www.mqtt-dashboard.com/ con la dirección Broker.hivemq.com o también el propio Mosquito https://mosquitto.org/ con la dirección test.mosquitto.org

Tenemos que tener en cuenta que los servidores MQTT públicos gratuitos no son seguros, cualquiera puede suscribirse a nuestros mensajes y publicar en ellos por lo tanto enviar órdenes. Evitar usar estos brokers en sistemas que no sean educativos y de pruebas.

El protocolo MQTT también se usa en Domótica, por ejemplo aquí en el curso de Raspberry apartado domótica

Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU

logo.png

HiveMQ crear credenciales

Entramos en https://www.mqtt-dashboard.com/ y nos abrimos una nueva cuenta en Sign Up

mqtt1.jpg

Una vez dentro tenemos que abrir unas credenciales para que nuestra placa pueda usar este broker, en Cluster-Manage cluster y luego Access Management, creamos un usuario y contraseña que luego usaremos en Arduinoblocks

Una vez creado sale en el cuadro de Active MQTT Credentials

mqtt2.jpg

 

 

En Arduinoblocks

En Inicio 

mqtt3.jpg

En bucle

mqtt4.jpg


En cliente: Las APPs posibles

Vamos a usar una APP como cliente tanto para visualizar los valores que nos envía la TDR-STEAMaker como para enviarle desde la APP. Hay varias APP para trabajar los MQTT, vamos a ver varias

MyMQTT

Muy didáctica pero no muy visual https://play.google.com/store/apps/details?id=at.tripwire.mqtt.client 

Se trabaja de forma artesanal que viene bien para entender los mecanismos del protocolo MQTT:

mqtt5.jpg

MQTT Dash

https://play.google.com/store/apps/details?id=net.routix.mqttdash

Está orientada a la domótica, tiene buena visualización pero no tiene todos los gadgets deseables para nuestra STEAM Maker

mqtt6.jpg

IoT MQTT Panel

https://play.google.com/store/apps/details?id=snr.lab.iotmqttpanel.prod

Tiene buena visualización y buenos gadgets. Nos quedamos con esta para las siguientes páginas, pero recomendamos también practicar la MyMQTT

mqtt7.jpg


Actividad 17 APP IoT MQTT Panel

Conexión

Creamos una nueva conexión rellenando el nombre de nuestro usuario en hivemq creado en Active MQTT Credentials (ver https://libros.catedu.es/books/esp32-en-el-aula/page/hivemq-crear-credenciales) y de broker : broker.hivemq.com

mqtt8.jpg

En Add Dashboard creamos nuestro panel de control. Puede haber varios paneles de control para la misma conexión-

Si te has fijado NO PIDE LA CONTRASEÑA cualquiera que tenga tu nombre de usuario puede interactuar con tu dispositivo. Por eso tal y como se ha dicho en https://libros.catedu.es/books/esp32-en-el-aula/page/mqtt no son seguros, sólo utilizarlo para fines educativos y de pruebas

Dashboard

Vamos añadiendo en el botón + los gadgets que queramos, son muy intuitivos, en la figura se ha puesto:

mqtt9.jpg

El resultado