1NCE FreeRTOS BluePrint demonstra o uso de vários protocolos IoT, incluindo CoAP, LwM2M e UDP com conectividade celular. Este repositório apresenta exemplos de integração do SDK 1NCE para aproveitar as ferramentas do sistema operacional 1NCE, como autenticação de dispositivo e recursos de economia de energia, usando a (Biblioteca Wakaama LWM2M).
Este repositório fornece exemplos dos seguintes protocolos:
Cada demonstração inclui um recurso opcional de economia de energia que pode ser ativado para teste.
A pasta Binários contém binários pré-construídos para aplicativos de demonstração UDP e CoAP.
Configure o recurso de economia de energia no sistema operacional 1NCE
Usando este modelo.
Conecte a placa P-L496G-CELL02
Quando conectada via USB, a placa deverá aparecer como uma unidade de armazenamento no seu computador.
Atualize o binário
Basta arrastar e soltar o arquivo binário desejado da pasta Binaries
na unidade de armazenamento. A placa piscará automaticamente o binário.
Nota: Se o flash falhar, consulte Flashing usando STM32CubeProgrammer.
Ver registros de demonstração
Use o Serial Monitor no Visual Studio Code para visualizar os logs de demonstração.
É necessária uma atualização de firmware STLink. O plugin STM32 VSCode inclui um botão para isso, mas se não funcionar, a atualização pode ser iniciada manualmente executando o arquivo .bat
da pasta STM32 instalada: ST/STM32CubeCLTxx/STLinUpgrade.bat
Certifique-se de que o seu modem BG96 tenha a versão de firmware mais recente. Você pode baixar o pacote de atualização de firmware e as instruções em (página X-Cube Cellular da ST) (v6.0.0 recomendado).
Para atualizar o modem, a ferramenta QFlash agora pode ser baixada do site oficial da Quectel: (Download QFlash (V7.1))
Para configurar a demonstração que deseja usar, modifique o arquivo nce_demo_config.h
localizado em Application/Config/
: (por padrão CONFIG_COAP_DEMO_ENABLED
)
CONFIG_COAP_DEMO_ENABLED
CONFIG_UDP_DEMO_ENABLED
CONFIG_LwM2M_DEMO_ENABLED
O 1NCE FreeRTOS BluePrint permite que os clientes se comuniquem com endpoints 1NCE via UDP e usem todos os recursos como parte do sistema operacional 1NCE.
Application/Config/nce_demo_config.h
#define CONFIG_UDP_DEMO_ENABLED
#define CONFIG_UDP_DATA_UPLOAD_FREQUENCY_SECONDS 60
O 1NCE FreeRTOS BluePrint permite que os clientes se comuniquem com endpoints 1NCE via CoAP e usem todos os recursos como parte do sistema operacional 1NCE.
Solicitação COAP POST: Nesta seção, são executadas as seguintes etapas:
Registre-se na rede.
Execute uma resolução DNS.
Crie um soquete e conecte-se ao servidor
Criar CoAP POST confirmável com opção de consulta
Crie interação com o cliente e analise a resposta (ACK)
Valide a resposta.
Configure o Demo runner no arquivo 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 o suporte DTLS a porta padrão é 5684 e define automaticamente ENABLE_DTLS
como uma definição adicional
O CoAP DTLS executa 3 tarefas principais do 1NCE IoT C SDK:
O suporte LWM2M é fornecido usando a biblioteca Eclipse Wakaama comunicando-se com um servidor Leshan LWM2M. Este modo permite que o dispositivo atue como um cliente LwM2M, facilitando a comunicação com um servidor LwM2M para casos de uso como gerenciamento de dispositivos, atualizações de firmware e coleta de dados de sensores. Por padrão, o cliente se registra no servidor 1NCE LwM2M e a comunicação segura é garantida por meio de suporte DTLS opcional.
#define CONFIG_LwM2M_DEMO_ENABLED
Os parâmetros a seguir são essenciais para ativar e personalizar o modo cliente LwM2M no 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 ""
O recurso Energy Saver está disponível para demonstrações UDP e CoAP. Ele permite que os usuários otimizem o consumo de energia do dispositivo ao se comunicarem com endpoints 1NCE.
Para ativar o recurso Energy Saver, adicione o seguinte sinalizador em nce_demo_config.h
:
#define CONFIG_NCE_ENERGY_SAVER
Nota: Para usar o recurso Energy Saver para demonstrações UDP e CoAP, certifique-se de que o modelo de tradução correto seja aplicado no sistema operacional 1NCE. e o protocolo correto selecionado e o modelo usado.
O Device Controller é uma API que permite interagir com dispositivos integrados à API 1NCE. Você pode usar esta API para enviar solicitações aos dispositivos e os dispositivos responderão de acordo. Para mais detalhes você pode visitar nosso DevHub
Para enviar uma solicitação para um dispositivo específico, você pode consultar nossa documentação no 1NCE DevHub
Para lidar com a solicitação recebida da API 1NCE, a configuração de determinados parâmetros é necessária 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 é o número da porta onde seu dispositivo escutará as solicitações recebidas. Deve corresponder ao parâmetro de porta usado na solicitação.NCE_RECEIVE_BUFFER_SIZE_BYTES
: Este é o tamanho do buffer que será usado para receber os dados recebidos da API 1NCE.Nota: C2D (Cloud to Device) é compatível com todos os três protocolos: UDP, CoAP e LwM2M. O cliente LwM2M está totalmente integrado às solicitações C2D e, para UDP e CoAP, também abre uma porta de segundo plano para comunicação C2D.
Se o dispositivo se conectar apenas a redes 2G ou não conseguir se conectar em algumas regiões, pode ser necessário ajustar o RAT (Radio Access Technology) e as configurações de banda em 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 obter mais detalhes sobre as configurações de banda, consulte o Manual de Comandos AT do BG96.
O detalhamento dos logs pode ser definido definindo a macro LIBRARY_LOG_LEVEL
no arquivo Core/Inc/iot_config.h
. Essa configuração controla o nível de detalhes de registro em log para fins de depuração e solução de problemas.
Os níveis de log disponíveis para LIBRARY_LOG_LEVEL
são:
IOT_LOG_NONE
: desativa todos os registros. IOT_LOG_ERROR
: Habilita apenas mensagens de erro. IOT_LOG_WARN
: Habilita avisos e erros. IOT_LOG_INFO
: permite mensagens informativas, avisos e erros. IOT_LOG_DEBUG
: permite informações detalhadas de depuração, avisos, erros e mensagens informativas.
Exemplo de configuração em iot_config.h
:
#define LIBRARY_LOG_LEVEL IOT_LOG_DEBUG
Esta configuração gera todas as informações de depuração, o que é útil durante o desenvolvimento ou solução de problemas.
A comunicação mais eficaz com nossa equipe é através do GitHub. Basta criar um novo problema e selecionar entre uma variedade de modelos que abrangem relatórios de bugs, solicitações de recursos, problemas de documentação ou perguntas gerais.