La clave de la tecnología de Internet de las Cosas (IoT) es la comunicación, y varios protocolos desempeñan un papel importante en la conexión del enorme número de "cosas" a Internet. Este artículo presenta dos protocolos IoT complementarios: Message Queuing Telemetry Transport (MQTT), un protocolo de Internet escalable que soporta la comunicación global en el IoT, y Modbus, un protocolo local para conexiones de dispositivos a corta distancia, ofreciéndole una comprensión detallada de las diferencias entre ellos. la diferencia.
Protocolo MQTT
MQTT is an open, lightweight machine-to-machine protocol designed for IoT interactions. The MQTT network contains an MQTT broker, which is responsible for coordinating interactions between MQTT brokers. Agents are publishers responsible for publishing information for use by users.
MQTT tiene muy pocos requisitos, ya que está diseñado para dispositivos integrados con recursos limitados. Además de su reducido tamaño, MQTT ofrece una excelente eficiencia de comunicación (incluso en redes con poco ancho de banda) y muy poca sobrecarga (en comparación con protocolos como HTTP). En redes 3G, la velocidad de transmisión de MQTT es 93 veces superior a la de Representational State Transfer (REST) mediante HTTP.
MQTT implements a publish/subscribe pattern by using minimal methods to indicate the operations to be performed on a specific topic. Agents connect to brokers before publishing or subscribing to topics. Once completed, the agent will disconnect from the broker. MQTT method definition:
- Conectar - Establecer una conexión con el broker MQTT.
- Desconectar - Desconectar del broker MQTT.
- Publicar - Publicar un tema en el broker MQTT.
- Suscribirse - Suscribirse a un tema desde un broker MQTT.
- Darse de baja - Darse de baja del tema en el broker MQTT.
MQTT allows defining quality of service (QoS). There are three levels of QoS in MQTT:
QoS 0: Este nivel representa la entrega "como mucho una vez" (en el mejor de los casos). El mensaje no se confirmará, por lo que se trata de una entrega única.
QoS 1: Este nivel indica la entrega "al menos una vez". Los usuarios pueden recibir mensajes más de una vez, pero se permite al destinatario acusar recibo.
QoS 2: The slowest but most guaranteed quality of service level is level 2. QoS2 stands for “just once” and consists of a four-phase delivery handshake. This level is the slowest, but the safest.
El nivel de calidad de servicio que elijas dependerá de la importancia de los datos y de su entrega.
Protocolo Modbus
Modbus is a serial communication protocol that has evolved into a comprehensive set of protocols supporting multiple physical links (such as RS-485). The core of Modbus is a serial communication protocol using master-slave mode. The master sends a request to the slave, and the slave replies. In a standard Modbus network, there is one master and up to 247 slaves (however, if 2-byte addressing is used, this limit can be increased significantly).
MQTT Con RS-485, la comunicación entre maestro y esclavo se produce en tramas que indican códigos de función. Este código de función identifica la función que se va a operar, como la lectura de una entrada independiente; la lectura de una cola de primeras entradas primeras salidas; o la ejecución de una función de diagnóstico. A continuación, el esclavo responde basándose en el código de función recibido, que es una respuesta simple indicada por un conjunto de bytes. Por lo tanto, los esclavos pueden ser dispositivos inteligentes o dispositivos simples con un solo sensor.
A partir de esta descripción, se puede ver que el protocolo Modbus es muy simple, pero su apertura como protocolo lo convierte en el protocolo de comunicación de facto para industrias enteras o sistemas SCADA.
MQTT y Modbus pueden complementarse para mejorar el rendimiento del Internet de las cosas. El uso de Modbus como interfaz local para gestionar dispositivos y el uso de MQTT como protocolo global para ampliar el alcance del dispositivo desempeñan ambos un papel importante.