Red de conocimiento informático - Material del sitio web - Cómo utilizar NB-Iot Arduino para cargar datos a la plataforma Alibaba Cloud a través del protocolo MQTT

Cómo utilizar NB-Iot Arduino para cargar datos a la plataforma Alibaba Cloud a través del protocolo MQTT

Hay muchos módulos de comunicación que solo tienen funciones TCP pero no funciones MQTT, como WIFI, W5500 y otros módulos, así como algunos módulos NBIOT. Si desea conectarse a la plataforma Alibaba Cloud IoT, debe trasplantar el funcionamiento oficial. sistema, que es muy problemático y difícil de entender. Me pregunto si existe alguna forma sencilla y segura.

Recordando que MQTT se basa en TCP, puede usar TCP para convertir a MQTT, por lo que desea usar el protocolo TCP y luego convertir al protocolo MQTT para conectarse a la plataforma Alibaba Cloud IoT. demostrado que es posible.

Primero, analicemos cómo iniciar sesión y acceder a la plataforma Onenet.

Primero, comenzamos a analizar su formato de datos. Primero necesitamos sacar tres datos del fondo, usemos esto como ejemplo.

Nos referimos al ID del producto, el nombre del dispositivo y la clave secreta del dispositivo como tres elementos (los específicos dependen de su propio dispositivo)

De hecho, el protocolo MQTT utilizado por Alibaba La plataforma Cloud IoT es estándar, excepto que agrega su propio método de autenticación.

El protocolo MQTT requiere la carga de cuatro parámetros, a saber, hora del informe, ID del cliente, nombre de usuario y contraseña.

Como resultado, Alibaba Cloud ha ajustado el ID del cliente, el nombre de usuario y la contraseña.

El ID del cliente es largo y sigue un formato determinado

Nombre de usuario: nombre y clave del dispositivo

Contraseña: cifrada mediante cadena cifrada sha1 o MD5

Esto es lo que estamos buscando

El acceso MQTT envía datos en hexadecimal.

Cuando enviamos datos, es una cadena de datos como esta

0x74 0x00 0x04 0x4d 0x51 0x54 0x54 0x04 0xC0 0078 0033 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x 72 0x65 0x6d 0x6f 0x64 0x65 0x3d0x33 0x2c 0x73 0x69 0x67

0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x31 0x2 c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d0x31 0x32 0x30 0x7c 0009

0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34 0028 0x32 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x37 0x37 0x34 0x300x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x 36 0x36

Interpretación hexadecimal

Longitud de datos: 0x74

Longitud de datos de protocolo 0x00 0x04

Protocolo tipo: 0x4d 0x51 0x54 0x54

Datos de protocolo: 0x04 0xC0

Datos de keepAlive: 0078

Longitud de ClientID: 0033

ID de cliente: 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67 0x6e 0x6d 0x65 0 x 74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c

Nombre de usuario: 0009

Nombre de usuario: 0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34

Longitud de la contraseña: 0028

Contraseña: 0x32 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x37 0x46 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0 x 37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36 0x36 Copiar código Lo anterior son los datos de conexión para conectarse al servidor.

Paquete

A continuación, hagamos un paquete de liberación (cargar datos al servidor)

0x30 0x1D 0009 2f7379732f706f7374 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d

Interpretación de datos hexadecimales

Encabezado de datos: 0x30

Longitud de datos: 0x1D

Nombre del tema Longitud de datos: 0009

Contenido de datos del nombre del tema: 2f7379732f706f7374

Datos json del asunto: 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 d 0x7d Copiar código Lo anterior son los datos conectados a Alibaba Cloud con respecto a formato del paquete y formato de datos publicados, el análisis del paquete de datos de suscripción no se realizó debido a problemas de tiempo. El contenido de la suscripción se actualizará la próxima vez.