本文介紹如何快速移植C語言Link SDK,將搭載MCU+蜂窩模組的設備接入阿里云物聯網平臺。
背景信息
無法直接連網的設備,外接MCU+蜂窩模組后,MCU通過AT指令控制蜂窩模組,設備即可實現連網。通過移植阿里云物聯網平臺提供的C Link SDK,設備即可實現快速上云。
本文以搭載通用MCU+蜂窩模組的設備為例,介紹在MCU開發板上移植Link SDK的過程,將設備接入物聯網平臺,實現物聯網平臺管理與分析設備。
開發準備
進行Link SDK移植前,您需準備以下材料。
- 硬件:
硬件類型 說明 MCU開發板 - 名稱:STM32 Nucleo板
- 型號:STM32L476RG
- 系統:FreeRTOS
- 參考文檔:NUCLEO-L476RG
蜂窩通信板 SIM卡 - 接口型號:Micro
- 信號:4G
- 開發工具:
工具名稱 說明 STM32CubeMX 用于生成MCU外設初始化代碼的開發工具,版本為6.1.2。 MDK-Arm 集成開發環境和調試代碼的開發工具,版本為5.26.2.0。 串口調試工具 用于連接和調試設備的工具,其串口波特率為115200。 - C Link SDK:
在物聯網平臺控制臺的SDK定制頁面,獲取SDK。
具體操作,請參見獲取SDK。
說明您可以下載示例工程文件,查看C Link SDK移植到示例工程后的結果,并參考其中的配置,將C Link SDK移植到設備。
- 設備認證信息:
進行Link SDK移植前,您需在物聯網平臺控制臺創建產品和設備,獲取設備認證信息,本文使用一機一密的認證方式。具體操作,請參見獲取一機一密設備認證信息。
開發流程
- 連接硬件。
- 工程移植。
- 調式運行。
- 單擊,編譯工程文件。
- 單擊,將編譯后的Demo可執行文件下載至MCU開發板。
- 單擊,在MCU上,運行Demo可執行文件。
運行結果
- 您可以在設備端,查看設備日志。
- 以下日志說明設備已連接物聯網平臺。
linkkit_init[2.222][LK-0313] MQTT user calls aiot_mqtt_connect api, connect [2.266][LK-0317] stm32l4_mbedtls_cat1&a18wP****** [2.277][LK-0318] B4C45425D73E24B2935D73C1E98B6079A630FBE03F61E2A2031CEE7867****** unknown option, 2 unknown option, 5 [2.377][LK-1000] establish mbedtls connection with server(host='a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com', port=[443]) [7.311][LK-1000] success to establish mbedtls connection,(cost 18686 bytes in total, max used 21294 bytes) [7.500][LK-0313] MQTT connect success in 5286 ms
- 以下日志為設備的時間同步功能。更多信息, 請參見NTP服務。
AIOT_MQTTEVT_CONNECT [7.544][LK-0309] pub: /ext/ntp/a18wP******/stm32l4_mbedtls_cat1/request [LK-030A] > 7B 22 64 65 76 69 63 65 53 65 6E 64 54 69 6D 65 | {"deviceSendTime [LK-030A] > 22 3A 22 37 35 33 39 22 7D | ":"7539"} [7.688][LK-0309] pub: /ext/ntp/a18wP******/stm32l4_mbedtls_cat1/response local time: 1620915828805, 2021/05/13-22:23:48:805 heartbeat response
- 以下為設備的物模型數據。更多信息,請參見什么是物模型。
[1620915829.788][LK-0309] pub: /sys/a18wP******/stm32l4_mbedtls_cat1/thing/config/log/get [LK-030A] > 7B 22 69 64 22 3A 22 31 22 2C 22 76 65 72 73 69 | {"id":"1","versi [LK-030A] > 6F 6E 22 3A 22 31 2E 30 22 2C 22 70 61 72 61 6D | on":"1.0","param [LK-030A] > 73 22 3A 7B 22 67 65 74 54 79 70 65 22 3A 22 63 | s":{"getType":"c [LK-030A] > 6F 6E 74 65 6E 74 22 2C 22 63 6F 6E 66 69 67 53 | ontent","configS [LK-030A] > 63 6F 70 65 22 3A 22 64 65 76 69 63 65 22 7D 7D | cope":"device"}} [1620915830.011][LK-0309] pub: /sys/a18wP******/stm32l4_mbedtls_cat1/thing/config/log/get_reply [1620915830.033][LK-1507] LOGPOST user log config arrived log switch state is: 1 [1620915835.066][LK-0309] pub: /sys/a18wP******/stm32l4_mbedtls_cat1/thing/log/post [LK-030A] > 7B 22 69 64 22 3A 22 32 22 2C 22 76 65 72 73 69 | {"id":"2","versi [LK-030A] > 6F 6E 22 3A 22 31 2E 30 22 2C 22 70 61 72 61 6D | on":"1.0","param [LK-030A] > 73 22 3A 5B 7B 22 75 74 63 54 69 6D 65 22 3A 22 | s":[{"utcTime":" [LK-030A] > 32 30 32 31 2F 35 2F 31 33 20 32 32 3A 32 33 3A | 2021/5/13 22:23: [LK-030A] > 35 35 22 2C 22 6C 6F 67 4C 65 76 65 6C 22 3A 22 | 55","logLevel":" [LK-030A] > 44 45 42 55 47 22 2C 22 6D 6F 64 75 6C 65 22 3A | DEBUG","module": [LK-030A] > 22 41 50 50 22 2C 22 63 6F 64 65 22 3A 22 32 30 | "APP","code":"20 [LK-030A] > 30 22 2C 22 74 72 61 63 65 43 6F 6E 74 65 78 74 | 0","traceContext [LK-030A] > 22 3A 22 30 22 2C 22 6C 6F 67 43 6F 6E 74 65 6E | ":"0","logConten [LK-030A] > 74 22 3A 22 6C 6F 67 20 69 6E 20 77 68 69 6C 65 | t":"log in while [LK-030A] > 28 31 29 22 7D 5D 7D | (1)"}]} [1620915836.855][LK-0309] pub: /sys/a18wP******/stm32l4_mbedtls_cat1/thing/event/property/post [LK-030A] > 7B 22 69 64 22 3A 22 33 22 2C 22 76 65 72 73 69 | {"id":"3","versi [LK-030A] > 6F 6E 22 3A 22 31 2E 30 22 2C 22 70 61 72 61 6D | on":"1.0","param [LK-030A] > 73 22 3A 7B 22 4C 69 67 68 74 53 77 69 74 63 68 | s":{"LightSwitch [LK-030A] > 22 3A 20 30 7D 2C 22 73 79 73 22 3A 7B 22 61 63 | ": 0},"sys":{"ac [LK-030A] > 6B 22 3A 31 7D 7D | k":1}} [1620915837.099][LK-0309] pub: /sys/a18wP******/stm32l4_mbedtls_cat1/thing/event/Error/post [1620915837.122][LK-0309] pub: /sys/a18wP******/stm32l4_mbedtls_cat1/thing/event/property/post_reply [1620915837.177][LK-0A08] DM recv generic reply demo_dm_recv_handler, type = 0 msg_id = 3, code = 200, data = {}, message = success [1620915837.311][LK-0309] pub: /sys/a18wP******/stm32l4_mbedtls_cat1/thing/event/Error/post_reply [1620915837.344][LK-0A08] DM recv generic reply demo_dm_recv_handler, type = 0 msg_id = 4, code = 200, data = {}, message = success
- 以下日志說明設備已連接物聯網平臺。
-
您可以在物聯網平臺控制臺,查看設備的狀態和運行日志。
- 左側導航欄,選擇在線,則表示設備與物聯網平臺成功連接。 ,找到設備,查看設備狀態。設備狀態顯示為
- 在左側導航欄,選擇 ,選擇產品后,查看設備的日志信息。