MQTT son las siglas del protocolo "Message Queue Telemetry Transport". Es un protocolo diseñado por IBM para llevar a cabo el intercambio de información entre diferentes máquinas donde se requiera un consumo muy bajo de ancho de banda y pocos recursos para implementarlo. Por este motivo ha tenido muy buena acogida en los sistemas de control que necesitan conectarse con sensores de diferentes tipos y, especialmente, en el mundo del internet de las cosas.
La topología del sistema es del tipo estrella. Es decir, se utilizar un equipo haciendo las veces de nodo central (al que denominamos 'broker') que gobierna los accesos a la red de un número variable de nodos periféricos.
El protocolo MQTT configura también la posibilidad de utilizar cifrado para las comunicaciones en la red lo que le hace más interesante aún para su utilización en el mundo del internet de la cosas.
El protocolo utiliza el concepto de 'topic' para articular las comunicaciones entre un emisor y sus receptores. Todos los nodos que quieran participar en un intercambio de datos entre ellos deben estar suscritos a un mismo 'topic'. Una vez que los nodos se han suscrito a un determinado 'topic' es posible llevar a cabo una comunicación del tipo nodo a nodo o del tipo nodo a todos (multidifusión).
Los 'topic' se estructuras de forma jerárquica. De esta manera se establecen diversas relaciones padre-hijo entre los distintos 'topic' existentes, de tal manera que si un nodo se suscribe a un determinado 'topic' recibimos la información de todos los 'topic' hijos que cuelgan de él. Por ejemplo, en la estructura mostrada a continuación si un nodo se suscribe al 'topic' Plata1 recibe la información de todos los equipos que se encuentran por debajo: Ardunino0, Arduino1 y los sensores de temperatura y ruido.
Proteus incluye el modelo para simular la utilizacion de un módulo ESP8266 enlazado con alguna de las placas bases de Arduino. Si lo utilizamos en nuestro proyecto, tendremos disponibles para su uso en nuestros proyectos de un amplio rango de funciones que hacen que usar el protocolo MQTT sea muy sencillo.
Si utilizamos la herramienta de dominio público 'mosquitto' podemos simular el funcionamiento completo de nuestro equipo Arduino comunicándose con un nodo de la red simulando todo el proceso en nuestro PC sin necesidad de ningún otro tipo de hardware.