1NCE FreeRTOS BluePrint 演示了各种 IoT 协议的使用,包括具有蜂窝连接的 CoAP、LwM2M 和 UDP。该存储库展示了使用(Wakaama LWM2M 库)集成 1NCE SDK 以利用 1NCE OS 工具(例如设备身份验证和节能功能)的示例。
该存储库提供了以下协议的示例:
每个演示都包含一个可选的节能功能,可以启用该功能进行测试。
Binaries 文件夹包含 UDP 和 CoAP 演示应用程序的预构建二进制文件。
在 1NCE 操作系统中配置节能功能
使用这个模板。
连接 P-L496G-CELL02 板
通过 USB 连接时,该开发板应在计算机上显示为存储驱动器。
闪存二进制文件
只需将所需的二进制文件从Binaries
文件夹拖放到存储驱动器上即可。该板将自动刷新二进制文件。
注意:如果刷写失败,请参阅使用STM32CubeProgrammer刷写。
查看演示日志
使用 Visual Studio Code 中的串行监视器查看演示日志。
需要升级 STLink 固件。 STM32 VSCode 插件包含一个用于执行此操作的按钮,但如果它不起作用,可以通过运行已安装的 STM32 文件夹中的.bat
文件来手动启动升级: ST/STM32CubeCLTxx/STLinUpgrade.bat
请确保您的 BG96 调制解调器具有最新的固件版本。您可以从(ST的X-Cube Cellular页面)下载固件更新包和说明(推荐v6.0.0)。
对于调制解调器刷机,现在可以从移远通信官方网站下载 QFlash 工具:(QFlash 下载(V7.1))
要配置您要使用的演示,请修改位于Application/Config/
中的nce_demo_config.h
文件:(默认情况下CONFIG_COAP_DEMO_ENABLED
)
CONFIG_COAP_DEMO_ENABLED
CONFIG_UDP_DEMO_ENABLED
CONFIG_LwM2M_DEMO_ENABLED
1NCE FreeRTOS BluePrint 允许客户通过 UDP 与 1NCE 端点进行通信,并使用作为 1NCE 操作系统一部分的所有功能。
Application/Config/nce_demo_config.h
中设置演示运行器 #define CONFIG_UDP_DEMO_ENABLED
#define CONFIG_UDP_DATA_UPLOAD_FREQUENCY_SECONDS 60
1NCE FreeRTOS BluePrint 允许客户通过 CoAP 与 1NCE 端点进行通信,并使用作为 1NCE 操作系统一部分的所有功能。
COAP POST 请求:在本节中,执行以下步骤:
注册到网络。
执行 DNS 解析。
创建套接字并连接到服务器
使用查询选项创建可确认的 CoAP POST
创建客户端交互并分析响应 (ACK)
验证响应。
在文件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
对于 DTLS 支持,默认端口为 5684,并自动将ENABLE_DTLS
定义为附加定义
CoAP DTLS 通过 1NCE IoT C SDK 执行 3 个主要任务:
LWM2M 支持是使用 Eclipse Wakaama 库与 Leshan LWM2M 服务器通信提供的。此模式允许设备充当 LwM2M 客户端,促进与 LwM2M 服务器的通信,以实现设备管理、固件更新和传感器数据收集等用例。默认情况下,客户端向 1NCE LwM2M 服务器注册,并通过可选的 DTLS 支持确保安全通信。
#define CONFIG_LwM2M_DEMO_ENABLED
以下参数对于在蓝图中启用和自定义 LwM2M 客户端模式至关重要:
#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 ""
节能器功能可用于 UDP 和 CoAP 演示。它允许用户在与 1NCE 端点通信时优化设备功耗。
要启用节能功能,请在nce_demo_config.h
中添加以下标志:
#define CONFIG_NCE_ENERGY_SAVER
注意:要使用 UDP 和 CoAP 演示的节能功能,请确保在 1NCE 操作系统中应用正确的转换模板。以及选择的正确协议和使用的模板。
设备控制器是一个 API,允许您与集成到 1NCE API 中的设备进行交互。您可以使用该API向设备发送请求,设备会做出相应的响应。有关更多详细信息,您可以访问我们的 DevHub
要向特定设备发送请求,您可以参考我们在 1NCE DevHub 中的文档
为了处理来自 1NCE API 的传入请求,需要配置某些参数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
:这是您的设备将侦听传入请求的端口号。它应该与请求中使用的端口参数匹配。NCE_RECEIVE_BUFFER_SIZE_BYTES
:这是用于接收来自 1NCE API 的传入数据的缓冲区的大小。注意:所有三种协议均支持 C2D(云到设备):UDP、CoAP 和 LwM2M。 LwM2M客户端与C2D请求紧密集成,对于UDP和CoAP也开放后台端口用于C2D通信。
如果设备仅连接 2G 网络或在某些地区无法连接,您可能需要调整Application/Config/nce_demo_config.h
中的 RAT(无线接入技术)和频段设置:
#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
**/
有关频段设置的更多详细信息,请参阅 BG96 AT 命令手册。
日志的详细程度可以通过在Core/Inc/iot_config.h
文件中定义LIBRARY_LOG_LEVEL
宏来设置。此设置控制用于调试和故障排除目的的日志记录详细信息的级别。
LIBRARY_LOG_LEVEL
的可用日志级别为:
IOT_LOG_NONE
:禁用所有日志记录。 IOT_LOG_ERROR
:仅启用错误消息。 IOT_LOG_WARN
:启用警告和错误。 IOT_LOG_INFO
:启用信息性消息、警告和错误。 IOT_LOG_DEBUG
:启用详细的调试信息、警告、错误和信息性消息。
iot_config.h
中的配置示例:
#define LIBRARY_LOG_LEVEL IOT_LOG_DEBUG
此配置输出所有调试信息,这在开发或故障排除期间很有用。
与我们团队最有效的沟通是通过 GitHub。只需创建一个新问题,然后从一系列涵盖错误报告、功能请求、文档问题或一般问题的模板中进行选择。