1NCE FreeRTOS BluePrint demuestra el uso de varios protocolos de IoT, incluidos CoAP, LwM2M y UDP con conectividad celular. Este repositorio muestra ejemplos que integran el SDK de 1NCE para aprovechar las herramientas del sistema operativo 1NCE, como la autenticación de dispositivos y las funciones de ahorro de energía, utilizando la (Biblioteca Wakaama LWM2M).
Este repositorio proporciona ejemplos de los siguientes protocolos:
Cada demostración incluye una función opcional de ahorro de energía que se puede habilitar para realizar pruebas.
La carpeta Binarios contiene archivos binarios prediseñados para aplicaciones de demostración UDP y CoAP.
Configure la función de ahorro de energía en 1NCE OS
Usando esta plantilla.
Conecte la placa P-L496G-CELL02
Cuando se conecta a través de USB, la placa debería aparecer como una unidad de almacenamiento en su computadora.
Flashear el binario
Simplemente arrastre y suelte el archivo binario deseado desde la carpeta Binaries
a la unidad de almacenamiento. La placa mostrará automáticamente el binario.
Nota: Si falla el flasheo, consulte Flasheo usando STM32CubeProgrammer.
Ver registros de demostración
Utilice Serial Monitor en Visual Studio Code para ver los registros de demostración.
Se requiere una actualización del firmware STLink. El complemento STM32 VSCode incluye un botón para esto, pero si no funciona, la actualización se puede iniciar manualmente ejecutando el archivo .bat
desde la carpeta STM32 instalada: ST/STM32CubeCLTxx/STLinUpgrade.bat
Asegúrese de que su módem BG96 tenga la última versión de firmware. Puede descargar el paquete de actualización de firmware y las instrucciones desde (página X-Cube Cellular de ST) (se recomienda v6.0.0).
Para flashear el módem, la herramienta QFlash ahora se puede descargar desde el sitio web oficial de Quectel: (Descarga QFlash (V7.1))
Para configurar la demostración que desea utilizar, modifique el archivo nce_demo_config.h
ubicado en Application/Config/
: (por defecto CONFIG_COAP_DEMO_ENABLED
)
CONFIG_COAP_DEMO_ENABLED
CONFIG_UDP_DEMO_ENABLED
CONFIG_LwM2M_DEMO_ENABLED
1NCE FreeRTOS BluePrint permite a los clientes comunicarse con los puntos finales de 1NCE a través de UDP y utilizar todas las funciones como parte del sistema operativo 1NCE.
Application/Config/nce_demo_config.h
#define CONFIG_UDP_DEMO_ENABLED
#define CONFIG_UDP_DATA_UPLOAD_FREQUENCY_SECONDS 60
1NCE FreeRTOS BluePrint permite a los clientes comunicarse con los puntos finales de 1NCE a través de CoAP y utilizar todas las funciones como parte del sistema operativo 1NCE.
Solicitud COAP POST: En esta Sección se ejecutan los siguientes pasos:
Regístrese en la Red.
Realice una resolución DNS.
Cree un socket y conéctese al servidor
Crear POST CoAP confirmable con opción de consulta
Crear interacción con el cliente y analizar la respuesta (ACK)
Validar la respuesta.
Configure el corredor de demostración en el archivo Application/Config/nce_demo_config.h
#define CONFIG_COAP_DEMO_ENABLED
#define CONFIG_COAP_URI_QUERY "t=test"
#define CONFIG_COAP_DATA_UPLOAD_FREQUENCY_SECONDS 60
#define CONFIG_NCE_ENERGY_SAVER
Para el soporte DTLS, el puerto predeterminado es 5684 y define automáticamente ENABLE_DTLS
como una definición adicional.
CoAP DTLS realiza 3 tareas principales desde 1NCE IoT C SDK:
El soporte LWM2M se proporciona mediante la biblioteca Eclipse Wakaama que se comunica con un servidor Leshan LWM2M. Este modo permite que el dispositivo actúe como un cliente LwM2M, lo que facilita la comunicación con un servidor LwM2M para casos de uso como administración de dispositivos, actualizaciones de firmware y recopilación de datos de sensores. De forma predeterminada, el cliente se registra en el servidor 1NCE LwM2M y la comunicación segura se garantiza mediante soporte DTLS opcional.
#define CONFIG_LwM2M_DEMO_ENABLED
Los siguientes parámetros son críticos para habilitar y personalizar el modo de cliente LwM2M en el blueprint:
#define LWM2M_ENDPOINT "lwm2m.os.1nce.com"
#define LWM2M_CLIENT_MODE
#define LWM2M_BOOTSTRAP
#define LWM2M_SUPPORT_SENML_JSON
#define LWM2M_SUPPORT_JSON
#define LWM2M_LITTLE_ENDIAN
#define LWM2M_SUPPORT_TLV
#define LWM2M_COAP_DEFAULT_BLOCK_SIZE 1024
#define LWM2M_SINGLE_SERVER_REGISTERATION
#define LWM2M_OBJECT_SEND "/3/0"
#define CONFIG_NCE_ICCID ""
#define CONFIG_LWM2M_BOOTSTRAP_PSK ""
La función Energy Saver está disponible para demostraciones de UDP y CoAP. Permite a los usuarios optimizar el consumo de energía del dispositivo cuando se comunican con los puntos finales de 1NCE.
Para habilitar la función de ahorro de energía, agregue la siguiente marca en nce_demo_config.h
:
#define CONFIG_NCE_ENERGY_SAVER
Nota: Para utilizar la función de ahorro de energía para demostraciones de UDP y CoAP, asegúrese de que se aplique la plantilla de traducción correcta en el sistema operativo 1NCE. y el protocolo correcto seleccionado y la plantilla utilizada.
El Controlador de Dispositivo es una API que le permite interactuar con dispositivos integrados en la API de 1NCE. Puede utilizar esta API para enviar solicitudes a dispositivos y los dispositivos responderán en consecuencia. Para más detalles puedes visitar nuestro DevHub
Para enviar una solicitud a un dispositivo específico, puede consultar nuestra documentación en 1NCE DevHub
Para manejar la solicitud entrante de la API de 1NCE, se necesita la configuración de ciertos parámetros Application/Config/nce_demo_config.h
/* C2D Parameters */
/* This port is used for both UDP and CoAP communication. */
#define NCE_RECV_PORT 3000
#define NCE_RECEIVE_BUFFER_SIZE_BYTES 200
NCE_RECV_PORT
: este es el número de puerto donde su dispositivo escuchará las solicitudes entrantes. Debe coincidir con el parámetro de puerto utilizado en la solicitud.NCE_RECEIVE_BUFFER_SIZE_BYTES
: este es el tamaño del búfer que se utilizará para recibir los datos entrantes de la API 1NCE.Nota: C2D (Cloud to Device) es compatible con los tres protocolos: UDP, CoAP y LwM2M. El cliente LwM2M está estrechamente integrado con las solicitudes C2D y para UDP y CoAP también abre un puerto en segundo plano para la comunicación C2D.
Si el dispositivo se conecta solo a redes 2G o no puede conectarse en algunas regiones, es posible que deba ajustar la RAT (tecnología de acceso de radio) y la configuración de la banda en Application/Config/nce_demo_config.h
:
#define CELLULAR_CONFIG_DEFAULT_RAT 8 // Example for CAT M1
#define CELLULAR_CONFIG_DEFAULT_RAT_2 0 // Example for GSM
#define CELLULAR_CONFIG_DEFAULT_RAT_3 9 // Example for NBIOT
#define CUSTOM_BAND_BG96 "AT+QCFG="band",F,80004,80008" // Example for Germany CATM1
// Values
/**
* The GSM RATs network 0
* The CAT M1 RATs network 8
* The NBIOT RATs network 9
**/
Para obtener más detalles sobre la configuración de la banda, consulte el Manual de comandos AT del BG96.
La detalle de los registros se puede configurar definiendo la macro LIBRARY_LOG_LEVEL
en el archivo Core/Inc/iot_config.h
. Esta configuración controla el nivel de detalles de registro para fines de depuración y solución de problemas.
Los niveles de registro disponibles para LIBRARY_LOG_LEVEL
son:
IOT_LOG_NONE
: deshabilita todos los registros. IOT_LOG_ERROR
: solo habilita mensajes de error. IOT_LOG_WARN
: habilita advertencias y errores. IOT_LOG_INFO
: habilita mensajes informativos, advertencias y errores. IOT_LOG_DEBUG
: habilita información detallada de depuración, advertencias, errores y mensajes informativos.
Configuración de ejemplo en iot_config.h
:
#define LIBRARY_LOG_LEVEL IOT_LOG_DEBUG
Esta configuración genera toda la información de depuración, que es útil durante el desarrollo o la resolución de problemas.
La comunicación más efectiva con nuestro equipo es a través de GitHub. Simplemente cree un nuevo problema y seleccione entre una variedad de plantillas que cubren informes de errores, solicitudes de funciones, problemas de documentación o preguntas generales.