Protocolo MQTT
Protocolo MQTT
Protocolo MQTT
THINGS
Protocolo MQTT
MQTT (Message Queue
Telemetry Transport)
• Protocolo de transmisión de información TCP/IP diseñado para
dispositivos con reducido ancho de banda. Fue Creado Por IBM y
Eurotech que luego fue donado al proyecto eclipse
• Los mensajes son reducidos gracias al pequeño tamaño de las
cabeceras del protocolo y a la carga del mensaje en matriz de bytes
Porque MQTT?
• MQTT es un protocolo abierto, sencillo, ligero y fácil de implantar.
Es ideal para responder a las siguientes necesidades:
• Está especialmente adaptado para utilizar un ancho de banda mínimo
• Es ideal para utilizar redes inalámbricas
• Consume muy poca energía
• Es muy rápido y posibilita un tiempo de respuesta superior al resto de
protocolos web actuales
• Permite una gran fiabilidad si es necesario
• Requiere pocos recursos procesadores y memorias
Arquitectura del Protocolo
MQTT
Encabezado fijo (2 bytes)
Encabezado variable (logitud variable)
Payload del mensaje (hasta 256MB)
La comunicación se basa
en unos "topics"
(temas), que el cliente
que publica el mensaje
crea y los nodos que
deseen recibirlo deben
subscribirse a él. La
comunicación puede ser
de uno a uno, o de uno
a muchos.
FUNCIONAMIENTO
• MQTT es un servicio de publicación/suscripción TCP/IP
sencillo y sumamente ligero. El servidor, llamado broker,
recopila los datos que los publishers (los objetos
comunicantes) le transmiten. Determinados datos recopilados
por el broker se enviarán a determinados publishers que
previamente así se lo hayan solicitado al broker.
• El principio de intercambio se parece mucho al de Twitter.
Los publishers envían los mensajes a un canal llamado topic.
Los subscribers (suscriptores) pueden leer esos mensajes.
Los topics (o canales de información) pueden estar
distribuidos jerárquicamente de forma que se puedan
seleccionar exactamente las informaciones que se desean.
Parámetros MQTT
Android Javascript
Arduino Lua
C Objective-C / iOS
C# PHP
Dart Python
Go Web Components / Polymer
Java
Broker Mosquitto
• Mosquitto es un broker OpenSource ampliamente utilizado debido a
su ligereza lo que nos permite, fácilmente, emplearlo en gran número
de ambientes, incluso si éstos son de pocos recursos.
• Se Puede Instalar en SO LINUX desde la terminal y Tambien en
Windows descargamdo el instalador desde la pagina oficial.
Librería Mqtt Arduino
PubSubclient
• Es una Librería escrita en c++ compatible con la plataforma arduino
• Esta disponible en GitHub, Tambien se Puede descargar directamente
desde el gestor de librerías de Arduino.
• Tiene como característica la ligereza, y puede gestionar
comunicación mqtt de entrada y salida, utiliza es compatible con la
versión 3 del protocolo Mqtt.
Node Red
• Node-RED es una herramienta de programación visual Desarrollada
por IBM. Muestra visualmente las relaciones y funciones, y permite al
usuario programar sin tener que escribir una lengua. Node-RED es un
editor de flujo basado en el navegador donde se puede añadir o
eliminar nodos y conectarlos entre sí con el fin de hacer que se
comuniquen entre ellos
• Node Red nos permite interconectar todos nuestros elementos del
Internet de las Cosas. Estos elementos pueden ser desde dispositivos
hardware a APIs o servicios online
• Esta construido en Base a NodeJS (Javascript) Y utiliza el gestor de
paquetes de node NPM . Puede Instalarse en Linux, Windows,
Android, Raspberry Pi.
Node-RED es…
• Una herramienta de composición de aplicaciones iot.
• Fácil de usar para simples interconexiones de dispositivos.
• Flexible de extender y agregar nuevas capacidades y tipos de
integración.
• Capaz de crear el enlace entre dispositivos físicos, backend, redes
sociales y aplicaciones web.
• Una excelente manera de probar tus ideas de interconexión de
dispositivos entre la capa física y la de software.
Arquitectura de node-red
• NodeJs
• Manejo de eventos asíncronos
• Javascript en front y backend
• Construido usando express
D3, jquery y websockets