實(shí)驗(yàn)六:基于LiteOS實(shí)現(xiàn)端到端物聯(lián)實(shí)驗(yàn)

步驟一: 移植光敏傳感器代碼所袁,通過(guò)傳感器采集光照亮度

在Keil5環(huán)境中右擊“IOT-Demo”選擇“Manage Project Items...”誊役;


image.png

在“Project Items”在標(biāo)簽下的“Groups”中添加“Hardware”,并在該group下添加光敏傳感器代碼蚕苇;
添加“IOT_Demo-LiteOS\targets\Hareware\BH1750”目錄下的“BH1750.c”文件,點(diǎn)擊OK;


image.png

右擊“IOT-Demo”選擇“Option for Target ‘IOT-Demo’”界面下選擇“C/C++”,在“Include Paths”欄添加光敏傳感器代碼的頭文件路徑(“IOT-Demo-LiteOS\targets\Hardware\BH1750”);
image.png

在"main.h"/USBR CODE BEGIN Includes/與/USBR CODE END Includes/之間添加引用定義標(biāo)準(zhǔn)擴(kuò)展整數(shù)類(lèi)型的頭文件代碼忱详;


image.png

在"main.h"的/USBR CODE BEGIN Private defines/與/USBR CODE END Private defines/之間添加全局變量"msg_for_BH1750"與"BH1750_send"定義的代碼;
image.png

在"main.c"的/USBR CODE BEGIN Includes /與/USBR CODE END Includes/之間添加引用光敏傳感器頭文件的代碼與BH1750數(shù)據(jù)的全局變量跺涤,并根據(jù)1.2.1章節(jié)步驟3中設(shè)計(jì)的數(shù)據(jù)碼流匈睁,添加光敏傳感器數(shù)據(jù)上報(bào)攜帶messageld的代碼;
image.png

在"main.c"的/USBR CODE BEGIN 0 /與/USBR CODE END 0/之間添加光敏傳感器任務(wù)代碼桶错;定義光敏傳感器任務(wù)名為"LightSensor_task",優(yōu)先級(jí)為0航唆;通過(guò)該任務(wù),對(duì)光敏傳感器進(jìn)行初始化院刁,并打印任務(wù)信息與光敏傳感器數(shù)據(jù)糯钙;
image.png

基于步驟3在"main.c"的/USBR CODE BEGIN 2/與/USBR CODE END 2/之間生成地代碼,添加創(chuàng)建光敏傳感器任務(wù)的代碼退腥,并注釋創(chuàng)建task1與task2的代碼任岸;
image.png

點(diǎn)擊"Rebuild",編譯工程;


image.png

點(diǎn)擊"Download",下載程序至開(kāi)發(fā)板狡刘;
image.png

打開(kāi)QCOM串口調(diào)試助手享潜,根據(jù)對(duì)應(yīng)的串口,選擇對(duì)應(yīng)的串口號(hào)嗅蔬,配置相應(yīng)信息剑按,按下"MCU_RST",開(kāi)發(fā)板運(yùn)行程序;
此時(shí)在QCOM上可以看到任務(wù)打印的信息澜术;
image.png
步驟二 移植NB入網(wǎng)代碼吕座,通過(guò)NB模組將數(shù)據(jù)上報(bào)至平臺(tái)

登陸OceanConnect平臺(tái),參考實(shí)驗(yàn)三的方法注冊(cè)設(shè)備(設(shè)備名稱(chēng)自定義瘪板,設(shè)備驗(yàn)證碼為NB模組的IMEI號(hào))吴趴;


image.png

打開(kāi)Keil,在keil中右擊"IoT-Demo"選擇"Manage Project Items...";
在"Project Items"標(biāo)簽下的"Applicatiao/User"中添加"IoT-Demo-LiteOS\targets\Src"目錄下的"at_hal.c"文件,(注:"at_hal.c"文件包含用于鏈接LiteOS與HAL函數(shù)庫(kù)控制外設(shè)的代碼);


image.png

在"Project Items"標(biāo)簽下的"Groups"中添加"at_device"锣枝,并在該group下添加基于LiteOS的NB模組代碼厢拭;
添加"IoT-Demo-LiteOS\components\net\at_device\nb_bc95"目錄下的"bc95.c"文件;
image.png

在"Project Items"標(biāo)簽下的"Groups"中添加"at_framework",并在該group下添加基于LiteOS AT框架實(shí)現(xiàn)的代碼撇叁;
添加"IoT-Demo-LiteOS\components\net\at_frame"目錄下全部.c文件;


image.png

在"Project Items"標(biāo)簽下的"Groups"中添加"nb-iot_api"供鸠,并在該group下添加基于LiteOS的NB-IoT API的代碼;
添加"IoT-Demo-LiteOS\components\connectivity\nb_iot"目錄下"los_nb_api.c"文件陨闹,;


image.png

完成NB模組與AT框架相關(guān)代碼添加楞捂,點(diǎn)擊"OK";
image.png

添加完成后,Keil的Project導(dǎo)航欄出現(xiàn)相關(guān)文件趋厉;
image.png

點(diǎn)擊工具欄中的"Option for Target 'IoT-Demo' ",選擇"C/C++",在"Define"中添加全局宏觀定義標(biāo)識(shí)符:


image.png

在"Include Paths"欄添加相應(yīng)文件的頭文件路徑寨闹;
image.png

在"main.c"的/USBR CODE BEGIN Includes/與/USBR CODE END Includes/之間添加調(diào)用AT框架與BC95頭文件的代碼,并聲明BC95入網(wǎng)的全局變量君账;
image.png

在"main.h"的/USBR CODE BEGIN Private defines/與/USBR CODE END Private defines/之間添加"msg_sys_type bc95_net_data"定義的代碼繁堡;
image.png

在"main.c"的/USBR CODE BEGIN 0 /與/USBR CODE END 0/之間添加BC95模組入網(wǎng)連接平臺(tái)發(fā)送數(shù)據(jù)任務(wù)代碼;定義該任務(wù)名為"data_send_task",優(yōu)先級(jí)為1乡数;通過(guò)該任務(wù)椭蹄,MCU向BC95發(fā)送平臺(tái)ip及port信息和光敏傳感器數(shù)據(jù)并通過(guò)串口打印發(fā)送結(jié)果;
image.png

打開(kāi)"bc95.h"在該文件中修改AT_USART_PORT為2净赴;
image.png

image.png

基于步驟一绳矩,在"main.c"的/USBR CODE BEGIN 2 /與/USBR CODE END 2/之間生成的代碼,添加創(chuàng)建BC95模組入網(wǎng)連接平臺(tái)發(fā)送數(shù)據(jù)任務(wù)的代碼玖翅;


image.png

點(diǎn)擊"Rebuild",編譯工程埋酬;
image.png

點(diǎn)擊"Download",下載程序至開(kāi)發(fā)板;
image.png

打開(kāi)QCOM串口調(diào)試助手烧栋,根據(jù)對(duì)應(yīng)的串口写妥,選擇對(duì)應(yīng)的串口號(hào),配置相應(yīng)信息审姓,通過(guò)跳線(xiàn)帽將開(kāi)發(fā)板上的UART1的RX和TX與CH340的TX和RX連接珍特,UART2的RX和TX與NB-IoT的TX和RX連接;按下"MCU_RST",開(kāi)發(fā)板運(yùn)行程序魔吐;
此時(shí)在QCOM上可以看到任務(wù)打印的信息扎筒;
image.png

登陸平臺(tái),可以查看到注冊(cè)的設(shè)備處于已綁定狀態(tài)酬姆,通過(guò)"歷史數(shù)據(jù)"可以查看到開(kāi)發(fā)板上報(bào)的數(shù)據(jù)嗜桌;
image.png
步驟三 編寫(xiě)命令響應(yīng)代碼,通過(guò)平臺(tái)下發(fā)命令開(kāi)關(guān)光敏傳感器上的LED燈

MCU通過(guò)PA5口控制光敏傳感器上的LED燈辞色;打開(kāi)"gpio.c",在GPIO初始化函數(shù)下添加PIN5的初始化代碼骨宠;


image.png

打開(kāi)"main.h",添加定義LED引腳的代碼;


image.png

打開(kāi)"bc95.c",在該.c文件中添加收命令代碼层亿,根據(jù)命令執(zhí)行控制LED燈代碼及命令答復(fù)代碼桦卒;
image.png

打開(kāi)"bc95.c"的"nb_cmd_match"回調(diào)函數(shù)中,將"nb_handle_data_ind(buf)匿又;";該為"nb_handle_data_coap(buf)方灾;";


image.png

在步驟2"main.c"中創(chuàng)建的"data_send_task"任務(wù)中添加命令回復(fù)代碼碌更;
image.png

點(diǎn)擊"Rebuild",編譯工程裕偿;
image.png

點(diǎn)擊"Download",下載程序至開(kāi)發(fā)板;
image.png

登陸平臺(tái)痛单,在“我的設(shè)備”中進(jìn)行命令下發(fā)嘿棘;

選擇"value"為“ON”,即下發(fā)開(kāi)燈命令桦他,點(diǎn)擊“緩存發(fā)送”;
點(diǎn)擊“我的設(shè)備”中“歷史命令”谆棱,可以看見(jiàn)命令已下發(fā)并執(zhí)行快压,此時(shí)光敏傳感器上的LED燈點(diǎn)亮;
同時(shí)垃瞧,選擇"value"為“OFF”蔫劣,即下發(fā)關(guān)燈命令,點(diǎn)擊“緩存發(fā)送”在“歷史命令”中个从,可以看見(jiàn)命令已下發(fā)并執(zhí)行脉幢,此時(shí)光敏傳感器上的LED燈熄滅。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嗦锐,一起剝皮案震驚了整個(gè)濱河市嫌松,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奕污,老刑警劉巖萎羔,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異碳默,居然都是意外死亡贾陷,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)嘱根,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)髓废,“玉大人,你說(shuō)我怎么就攤上這事该抒』藕椋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蒋譬。 經(jīng)常有香客問(wèn)我割岛,道長(zhǎng),這世上最難降的妖魔是什么犯助? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任癣漆,我火速辦了婚禮,結(jié)果婚禮上剂买,老公的妹妹穿的比我還像新娘惠爽。我一直安慰自己,他們只是感情好瞬哼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布婚肆。 她就那樣靜靜地躺著,像睡著了一般坐慰。 火紅的嫁衣襯著肌膚如雪较性。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天结胀,我揣著相機(jī)與錄音赞咙,去河邊找鬼。 笑死糟港,一個(gè)胖子當(dāng)著我的面吹牛攀操,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播秸抚,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼速和,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了剥汤?” 一聲冷哼從身側(cè)響起颠放,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吭敢,沒(méi)想到半個(gè)月后慈迈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡省有,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年痒留,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蠢沿。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伸头,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舷蟀,到底是詐尸還是另有隱情恤磷,我是刑警寧澤面哼,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站扫步,受9級(jí)特大地震影響魔策,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜河胎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一闯袒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧游岳,春花似錦政敢、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至访锻,卻和暖如春褪尝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背期犬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工河哑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哭懈。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓灾馒,卻偏偏與公主長(zhǎng)得像茎用,于是被迫代替她去往敵國(guó)和親遣总。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容