步驟1胎许、移植光敏傳感器代碼葛虐,通過傳感器采集光照亮度
在Keil環(huán)境中右擊“l(fā)oT-Demo"選擇"Manage Project Items
在"Project Items"標簽下的“Groups”中添加"Hardware”,并在該 group下添加光放傳感器代碼
添加 loT Demo-LiteO\stargets\Hareware\BH1750”目錄下的”BH1750.c"文件拘泞,點擊“OK”"
參照實驗5步驟1的方式恨统,添加光敏傳感器代碼的頭文件路徑 loT Demo-LiteO\stargets\Hareware\BH1750
在“mainh"/ USER CODE BEGIN Includes /與/USER CODE END Includes */之間添加引用定義標準擴展整數(shù)類型的頭文件代碼:
在”main h”的/USER CODE BEGIN Private defines "/與/USER CODE END Private defines `之間添加全局變量"msg_ for BH1750“與“BH1750 send“定義的代碼叁扫;
在”mainC“的八USER CODE BEGIN Includes */與/USER CODE END Incudes /Z間添加引用光敏傳感器頭文件的代碼與 BH1750數(shù)據(jù)的全局變量,并根據(jù)1.2.1章節(jié)步驟3中設計的數(shù)據(jù)碼流畜埋,添加光敏傳感器數(shù)據(jù)上報時攜帶 messageld 的代碼:
在“main.c“的/*USER CODE BEGIN O /與/ USER CODE ENDO/之間添加光敏傳感器任務代碼;定義光敏傳感器任務名為“LightSensor_task莫绣,優(yōu)先級為0;通過該任務,對光敏傳感器進行初始化悠鞍,并打印任務信息與光敏傳感器數(shù)據(jù):
基于步驟3在”main "的/USER CODE BEGIN 2“與/USER CODE END 2*/之間生成的代碼对室,添加創(chuàng)建光敏傳感器任務的代碼,并注釋創(chuàng)建task1與task2的代碼:
點擊"Rebuild",編譯工程;
點擊"Download"软驰,下載程序至開發(fā)板:
打開 QCOM串口調(diào)試助手涧窒,根據(jù)對應的串口,選招對應的串口號.按下TMCU-RST锭亏,開發(fā)板運行程序山時在 QCOM上可以看到任務打印的信息纠吴。
步驟2 移植NB入網(wǎng)代碼,通過NB模組將數(shù)據(jù)上報至平臺
登陸 OceanConnect平臺慧瘤,參照實驗三的方式注冊設備(設備名稱自定義戴已,設備驗證碼為NB模組的IMEI號);
打開Keil,在 Keil中右擊”loT-Demo"選擇"Manage Project |tems
在"Project Items"標簽下的"Applcation/User”中添加” loT Demo-LiteOS
Src目錄下的"at-halc”文件(注:“"athal”文件包含用于連接 LiteOS 與HAL 面數(shù)庫控制外設的代碼
在"Project ltems”“標簽下的"Groups"中添加"at_device”,并在該 group下添加基于 LiteOS 的NB模組代碼锅减;添加“l(fā)oT-Demo-LiteOS components\net\at_device\nb\bc95”目錄下的"bc95.c”文件:
在”Project Items”標簽下的"Groups”中添加“at_framework糖儡,并在該 group下添加 LiteOS AT框架實現(xiàn)的代碼:添加“l(fā)oT-Demo-LiteOS.components\net\ at-frame”"目錄下的全部.c文件;
在 Projec liems 標簽下的Goups 中添加nb-iot api,并在該 group下添加基于LiteOS的NB-IoT API的代碼:最加loT-Demo-LnteOS\compenents\ connectivity\nb_iot"目錄下的los_nb api.c文件:
完成NB模組與AT框架相關代碼添加怔匣,點擊OK
在"Option for Target loT-Demo“界面下選擇”CC艸+",在"Define"中添加全局宏定義標識符:“WITH AT FRAMEWORK”每瞒,“USE-NB_NEUL95”;
在"Include Paths”欄添加相應文件的頭文件路徑
頭文件路徑分別為
"loT-Demo-LiteO5components\connectivity\lwm2m\coreler-coap-13
"loT-Demo-LiteOS\components\net\at _device\nb bc95”
在"mainc" 的/” USER CODE BEGIN Includes "/與/* USER CODE END incudes "之間添加調(diào)用AT框架與BC95頭文件的代碼金闽,并聲明 BC95入網(wǎng)的全局變量:
在"mainh”的/ USER CODE BEGIN Private defines 與r USER CODE END Pnvate delines"之間添加" msg sys type bc95_net data”定義的代碼:
在”main.c”"的/ USER CODE BEGIN0與/ USER CODE ENDO/之間添加 BC95模組人網(wǎng)連按平臺發(fā)送數(shù)據(jù)任務代碼;定義該任務名為“”data_ send task”剿骨,優(yōu)先級為1:通過該任務代芜,MCU向BC95發(fā)送平臺ip及port信息和光敏傳感器數(shù)據(jù)并通過串口打印發(fā)送結果:
打開 bc95.h”,在該文件中修改ATUSART_PORT為2(本實驗開發(fā)板MCU過USART2向BC95模組發(fā)送數(shù)據(jù)浓利,不同開發(fā)板根據(jù)實際硬件情況配置):
基于步驟1在”main.c"的/ USER CODE BEGIN 2 /與/”USER CODE END21之間生成的代碼挤庇,添加創(chuàng)建 BC95模組人網(wǎng)連接平臺發(fā)送數(shù)據(jù)任務的代碼
點擊"Rebuild",編譯工程;
點擊"Download"贷掖,下載程序至開發(fā)板:
打開QCOM串口調(diào)試助手嫡秕,根據(jù)對應的串口,選擇對應的串口號羽资,配置相應信息淘菩;通過跳線帽將開發(fā)板上的 UART1 的RX和TX與CH340的TX和RX連接遵班,將開發(fā)板上的UART2 的RX和TX與NB-IoT的TX和RX連接屠升;按下"MCU_RST”,開發(fā)板運行程序狭郑;
此時在QCOM上可以看到任務打印的信息腹暖。
登陸平臺,可以查看到注冊的設備處于己綁定狀態(tài)翰萨,通過”歷史數(shù)據(jù)“可以查看到開發(fā)板上報的數(shù)據(jù):
步驟3 編寫命令響應代碼脏答,通過平臺下發(fā)命令開關光敏傳感器上的LED燈
打開"main.h",添加定義 LED引腳的代碼殖告;
打開 bc95.c阿蝶,在該。c文件中添加接收命令代碼黄绩,根據(jù)命令執(zhí)行控制LED 燈代碼及命令答復代碼
在 bc95c的"nb cmd match 回調(diào)面數(shù)中羡洁,將"nb-handle-data- ind(bu0),”改為nb-handle-data-coap(buf).
在步驟2"main.c"中創(chuàng)建的"data send task"任務中添加回復代碼
點擊"Rebuild",編譯工程;
點擊"Download"爽丹,下載程序至開發(fā)板:
登陸平臺筑煮,在”我的設備”中進行命令下發(fā)
選擇"value"為“ON”,即下發(fā)開燈命令粤蝎,點擊”緩存發(fā)送
點擊”我的設備”中的”歷史命令”真仲,可以看到命已下發(fā)并執(zhí)行,此時光收傳感器上的LED燈點亮
同樣初澎,選擇"value”為“OFF”秸应,即下發(fā)關燈命令,點擊”緩存發(fā)送”碑宴;在”歷史命令“中灸眼,可以看到命令已下發(fā)并執(zhí)行,此時光敏傳感器上的LED燈熄滅墓懂。
1焰宣、在LiteOS基礎上,移植光敏傳感器代碼捕仔,采集光強度數(shù)據(jù)
2匕积、在LiteOS基礎上,移植NB模組代碼榜跌,通過NB模組入網(wǎng)連接平臺上報數(shù)據(jù)
3闪唆、終端開發(fā)板接收下發(fā)命令,執(zhí)行命令并作出響應钓葫,點亮熄滅光敏傳感器上的LED燈悄蕾。