本文分享自華為云社區(qū)《智慧路燈實(shí)驗(yàn)手冊(cè)(MQTT+Wi-Fi)-完善版-云社區(qū)-華為云》,作者:華為云社區(qū)精選。
本示例代碼工程基于IoT LINK 2.1.0版本構(gòu)建。
智慧路燈是城市智能化道路上重要一環(huán),智慧路燈的實(shí)施具有節(jié)約公共照明能耗、較少因照明引起的交通事故等多種社會(huì)意義。路燈也是大家在日常生活中可以強(qiáng)烈感知到的公共設(shè)施,更易理解其智能化的場景。
本實(shí)驗(yàn)基于NB-IoT和WIFI實(shí)現(xiàn)智慧路燈案例,實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的采集,實(shí)現(xiàn)命令下發(fā)的響應(yīng),實(shí)現(xiàn)端云互通。
E53_SC1擴(kuò)展板采用了E53標(biāo)準(zhǔn)接口,包含了一個(gè)路燈燈珠,一個(gè)BH1750光照強(qiáng)度傳感器,其中路燈燈珠使用普通GPIO控制,BH1750使用IIC接口通信。
? 已注冊(cè)華為云官方帳號(hào)。未注冊(cè)可點(diǎn)擊注冊(cè)頁面 完成注冊(cè)。
? 已完成實(shí)名制認(rèn)證。未完成可在華為云上點(diǎn)擊實(shí)名認(rèn)證 完成認(rèn)證,否則無法使用設(shè)備接入功能。
? 已開通設(shè)備接入服務(wù)。未開通則訪問設(shè)備接入服務(wù) ,點(diǎn)擊“免費(fèi)試用”后開通該服務(wù)。
? 已下載IDE:Huawei LiteOS Studio 1.45+(含擴(kuò)展插件)
? 已下載編譯燒錄工具包 :包含arm-none-eabi、build、openocd-0.10.0。
? 已下載ST-Link驅(qū)動(dòng)包:ST-Link.zip
? 開發(fā)板:小熊派開發(fā)板(含WIFI通信擴(kuò)展板、E53_SC1案例擴(kuò)展板)
1. 硬件連接
連接好E53_SC1案例擴(kuò)展板和Wi-Fi通信擴(kuò)展板。將串口選擇開關(guān)撥到AT-MCU模式,并用USB線將開發(fā)板與電腦連接,如圖所示。
2. IDE安裝配置
1) 下載并解壓HUAWEI-LiteOS-Studio.zip 。
2) 雙擊運(yùn)行HUAWEI-LiteOS-Studio-Setup-x64-1.45.9.exe,根據(jù)提示步驟完成默認(rèn)安裝。
3) 啟動(dòng)運(yùn)行HUAWEI-LiteOS-Studio,在IDE活動(dòng)欄中,打開擴(kuò)展視圖,點(diǎn)擊更多操作...,在彈出的菜單中選擇從VSIX安裝,然后指定中文語言包MS-CEINTL.vscode-language-pack-zh-hans-1.45.1.vsix文件路徑,即可完成安裝。
4) 根據(jù)提示重啟IDE,即可切換為中文界面。
3. 編譯燒錄工具配置
下載并解壓Tools.zip ,將解壓后的arm-none-eabi、build、openocd-0.10.0全部拷貝到C:\Users\xxx\.huawei-liteos-studio\tools目錄下。
注:xxx為本地PC用戶名,請(qǐng)根據(jù)實(shí)際路徑進(jìn)行配置。
4. 驅(qū)動(dòng)安裝
下載并解壓ST-Link.zip ,根據(jù)操作系統(tǒng)類型,雙擊配套的執(zhí)行文件進(jìn)行安裝。
1. 創(chuàng)建產(chǎn)品
對(duì)于設(shè)備上報(bào)至物聯(lián)網(wǎng)平臺(tái)的數(shù)據(jù),云端物聯(lián)網(wǎng)平臺(tái)要能夠解析設(shè)備上報(bào)的數(shù)據(jù)。故需要在設(shè)備接入服務(wù)側(cè)完成產(chǎn)品模型定義,編解碼插件開發(fā)部署等。
產(chǎn)品模型是用來描述設(shè)備能力的文件,通過JSON的格式定義了設(shè)備的基本屬性、上報(bào)數(shù)據(jù)和下發(fā)命令的消息格式。定義產(chǎn)品模型,即在物聯(lián)網(wǎng)平臺(tái)構(gòu)建一款設(shè)備的抽象模型,使平臺(tái)理解該款設(shè)備支持的屬性信息。
步驟1 進(jìn)入設(shè)備接入服務(wù)控制臺(tái),選擇左側(cè)導(dǎo)航欄“產(chǎn)品”進(jìn)入頁面。
步驟2 單擊右上角的“創(chuàng)建產(chǎn)品”,按照頁面提示填寫信息。
? 所屬資源空間:選擇默認(rèn)資源空間
? 產(chǎn)品名稱:自定義,如MQTT_streetlight
? 協(xié)議類型:MQTT
? 數(shù)據(jù)格式:JSON
? 設(shè)備類型選擇:自定義類型
? 設(shè)備類型:自定義,如MQTT_ streetlight
步驟3 單擊“確定”,創(chuàng)建產(chǎn)品成功。
步驟4 單擊“查看詳情”,進(jìn)入產(chǎn)品詳情頁面。在“模型定義”頁簽下,單擊“上傳模型文件”。
步驟5 添加產(chǎn)品模型文件“Smart_Light_profile.zip ”,并單擊“確定”完成上傳。
模型文件下載鏈接:Smart_Light_profile.zip
查看服務(wù)列表,屬性和命令信息如下:
2. 注冊(cè)設(shè)備
步驟1 進(jìn)入設(shè)備接入服務(wù)控制臺(tái),選擇左側(cè)導(dǎo)航欄“設(shè)備”進(jìn)入設(shè)備列表頁面。
步驟2 單擊右上角的“注冊(cè)設(shè)備”,按照頁面提示填寫相關(guān)參數(shù)。
? 所屬資源空間:選擇上一步創(chuàng)建產(chǎn)品時(shí)選擇的資源空間
? 所示產(chǎn)品:選擇剛創(chuàng)建的產(chǎn)品,如MQTT_streetlight
? 設(shè)備標(biāo)識(shí)碼:自定義,如streetlight012345
? 設(shè)備名稱:自定義,如streetlight_01
? 設(shè)備認(rèn)證類型:選擇“密鑰”
? 密鑰/確認(rèn)密鑰:自定義,如12345678
步驟3 單擊“確定”,添加設(shè)備成功,請(qǐng)保存好設(shè)備ID和密鑰,用于設(shè)備接入平臺(tái)認(rèn)證。
3. 導(dǎo)入代碼工程
步驟1 獲取項(xiàng)目工程代碼包 并解壓(注:路徑不要包含中文、空格)。
獲取項(xiàng)目工程:MQTT_StreetLight_Demo.rar
步驟2 啟動(dòng)HUAWEI LiteOS Studio工具,單擊“Open Project”,打開項(xiàng)目工程。
項(xiàng)目工程預(yù)覽如下:
4. 配置項(xiàng)目工程
步驟3 單擊
打開工程配置,目標(biāo)板選擇STM32L431RC,并“確認(rèn)”。
步驟4 填寫編譯器配置選項(xiàng)后,單擊“確認(rèn)”。
? 編譯器類型:arm-none-eabi
? 編譯器目錄:請(qǐng)根據(jù)實(shí)際路徑配置,例如 c:\Users\xxx\.huawei-liteos-studio\tools\arm-none-eabi\bin
? Make構(gòu)建器:請(qǐng)根據(jù)實(shí)際路徑配置,例如c:\Users\xxx\.huawei-liteos-studio\tools\build\bin\make.exe
? Make腳本:請(qǐng)根據(jù)打開的項(xiàng)目工程進(jìn)行配置,例如targets\STM32L431_BearPi\GCC\Makefile
步驟5 填寫燒錄器配置選項(xiàng)后,單擊“確認(rèn)”。
? 燒錄方式:選擇OpenOCD
? 端口:選擇USB
? 燒錄器配置:請(qǐng)根據(jù)實(shí)際路徑配置,例如.\tools\openocd-0.10.0\bin-x64
? Interface文件:默認(rèn)值
? Target文件:默認(rèn)值
? 燒錄文件:無需配置,待項(xiàng)目工程編譯成功后會(huì)自動(dòng)填充,例如.\targets\STM32L431_BearPi\GCC\build\Huawei_LiteOS.bin
5. 修改配置參數(shù)
步驟1 在代碼中修改設(shè)備信息。
1) 打開文件:*\targets\STM32L431_BearPi\iot_config.h
2) 修改CN_EP_DEVICEID為在物聯(lián)網(wǎng)平臺(tái)注冊(cè)設(shè)備時(shí)生成的設(shè)備ID,修改CN_EP_PASSWD為在物聯(lián)網(wǎng)平臺(tái)注冊(cè)設(shè)備時(shí)填寫的密鑰。
3) 修改完成,請(qǐng)按Ctrl+S保存修改。
步驟2 配置WIFI用戶名和密碼。
此處只能使用用戶名密碼加密方式認(rèn)證的WIFI,不能使用其他加密方式的WIFI。(可以使用手機(jī)開啟WIFI熱點(diǎn),數(shù)據(jù)量不大不會(huì)占用太多個(gè)人流量)
開發(fā)板Wifi模塊僅支持2.4GHz頻段的熱點(diǎn),暫不支持5GHz頻段。
1) 打開文件:*\targets\STM32L431_BearPi\.config
2) 修改CONFIG_ESP8266_SSID為熱點(diǎn)設(shè)備名稱,修改WIFI_ESP8266_PWD為熱點(diǎn)密碼。
3) 修改完成,請(qǐng)按Ctrl+S保存修改。
4) 打開文件:*\targets\STM32L431_BearPi\iot_config.h
5) 修改CONFIG_ESP8266_SSID為熱點(diǎn)設(shè)備名稱,修改WIFI_ESP8266_PWD為熱點(diǎn)密碼。
6) 修改完成,請(qǐng)按Ctrl+S保存修改。
6. 編譯燒錄
步驟1 單擊
進(jìn)行編譯,單擊
進(jìn)行燒錄。
如果修改了.config文件和iot_config.h文件,請(qǐng)單擊
全量重新編譯,否則修改點(diǎn)可能不會(huì)生效。
步驟 2 單擊
打開串口終端,選擇端口,設(shè)置波特率115200,開啟串口,可以在接收區(qū)查看到打印的日志信息。
步驟3 在LCD屏上,可以看到實(shí)時(shí)數(shù)據(jù)顯示。
7. 調(diào)試運(yùn)行
步驟1 在物聯(lián)網(wǎng)平臺(tái)中,可以看到設(shè)備實(shí)時(shí)上報(bào)屬性數(shù)據(jù)。
步驟2 在物聯(lián)網(wǎng)平臺(tái)中下發(fā)控制命令(開啟路燈),查看命令下發(fā)結(jié)果及開發(fā)板的響應(yīng)。
注:當(dāng)前MQTT設(shè)備僅支持同步命令下發(fā),NB設(shè)備僅支持異步命令下發(fā)。
案例程序文件:
"targets\STM32L431_BearPi\Demos\oc_streetlight_template\oc_streetlight_template.c"
詳細(xì)了解IoT設(shè)備接入服務(wù),請(qǐng)參考IoTD A 幫助文檔 。