hwcoap: implementación de un componente del protocolo Coap que requiere muy pocos recursos para conectarse a la plataforma IoT de Huawei

Descripción

El blog anterior presentó el proceso de acoplamiento del protocolo coap de la plataforma IoT de Huawei . Este blog presenta la implementación del código y una implementación del código del uso de coap para acoplar el IoT de Huawei.
¿Por qué me gusta tanto el coap? Creo que el protocolo MQTT todavía es demasiado grande después de todo. Sigue consumiendo muchos recursos ejecutarlo en algunos terminales de IoT, y la mayoría de las plataformas de IoT requieren que MQTT esté en línea en tiempo real, lo que es una gran pérdida de consumo de energía y tráfico. . En muchos lugares, debido a las señales NB deficientes, solo se pueden usar redes 4G y cat1, pero ahora se recomienda que 4G y cat1 usen la plataforma de acoplamiento MQTT, que es difícil de ser compatible con los dispositivos NB anteriores; para ambos, ejecutar SDK en MCU consume demasiados recursos Sí, como algunos STM32F103C8T6 son difíciles de ejecutar. En este caso, viene hwcoap.

hwcoap —— Un componente coap simple para conectarse a la plataforma IoT de Huawei.

Una implementación muy, muy simple del componente coap de la plataforma IoT de Huawei. El usuario solo necesita implementar la función de transceptor UDP y una función de retardo.
El autor analiza el proceso de acoplamiento del protocolo Huawei IoT COAP a través de la captura de paquetes wirehark. El código solo implementa la función de plataforma de acoplamiento simplemente en forma de paquetes UDP. Se esfuerza por ser simple y ligeramente tosco, pero también es suficiente para escenarios generales. Siempre que su plataforma admita la comunicación udp, puede utilizar este código para comunicarse con Huawei IoT. No es necesario utilizar el complicado protocolo MQTT que consume mucho espacio.
El usuario solicita primero el espacio de almacenamiento intermedio de envío y recogida utilizado en la operación de código, y usted puede crear datos de acuerdo con su propia situación. Probé usando solo 1K de RAM, y los búferes de envío y recepción eran de 512B respectivamente. Si la cantidad de datos enviados y recibidos no es grande, la RAM también se puede configurar en 256B. Si el envío y la recepción están en el mismo hilo, el búfer de envío y recepción se puede establecer en el mismo para ahorrar RAM.
El código se puede descargar en github y gitee:
dirección de github : https://github.com/llb126yx/hwcoap
dirección de nube de código : https://gitee.com/libolian/hwcoap

Instrucciones de uso

Descripción del archivo

  • Implementación del código hwcoap.c
  • archivo de encabezado hwcoap.h, incluido en el programa de usuario
  • test.c Un programa de prueba implementado bajo linux
  • testapplication La aplicación compilada en Raspberry Pi

Instrucciones

  1. Agregue hwcoap.c al proyecto del usuario e incluya el archivo de encabezado hwcoap.h en la aplicación.
  2. Las tres interfaces definidas en hwcoap.h se implementan en el programa de usuario: la función de transceptor udp y una función de retardo.
    /*
    brief: send data through udp.
    paras: data: data to be sent
            len: data length to be sent
    return: 0-success , other -failed
    */
    uint8_t UDP_Send(uint8_t *data,uint16_t len);
    /*
    brief: receive data through udp.
    paras: data,receive buffer
            maxLen, max length of receiving buff.
    return: receiving data length. 
    */
    uint16_t UDP_Receive(uint8_t *data,uint16_t maxLen);
    /*
    brief: delay some time. unit:ms
    */
    void  DelayMs(uint16_t ms);
    
  3. El programa de usuario llama cHWRegisterWithCoap(char *ep,uint8_t epLen)para iniciar el registro en la plataforma, y ​​necesita pasar el IMEI del dispositivo (necesita crear un perfil en la plataforma IoT y agregar el dispositivo) y la longitud del IMEI; reportar datos a la plataforma a
    través de la cHWReportData(uint8_t *data,uint16_t len)interfaz; y recibir los datos enviados
    por la cuint16_t HWProcessRxData(uint8_t *data,uint16_t maxLen)plataforma.

Uso de demostración

test.c es un programa de prueba implementado bajo linux. La aplicación testapp se puede generar ejecutando make en el entorno linux:

./testapp 868681049496159

Entre ellos, 868681049496159 es el número de identificación (IMEI) del dispositivo que registré en la plataforma, que necesita ser modificado de acuerdo con mi propio dispositivo.

El efecto de ejecución de la aplicación de prueba compilada en Raspberry Pi es el siguiente:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/llb19900510/article/details/108665713
Recomendado
Clasificación