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。只需建立新問題,然後從一系列涵蓋錯誤報告、功能請求、文件問題或一般問題的範本中進行選擇。