2019-11-19

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

實(shí)驗(yàn)任務(wù)配置

步驟1 移植光敏傳感器代碼迁客,通過傳感器采集光照亮度

在Keil環(huán)境中右擊“IoT-Demo”選擇“Manage Project Items…”刷晋;

在“Project Items”標(biāo)簽下的“Groups”中添加“Hardware”赏殃,并在該group下添加光敏傳感器代碼;添加“IoT-Demo-LiteOS\targets\Hareware\BH1750”目錄下的“BH1750.c”文件系宫,點(diǎn)擊“OK”掰派;
QQ截圖20191112201736.png
參照實(shí)驗(yàn)5步驟1的方式怔毛,添加光敏傳感器代碼的頭文件路徑(“IoT-Demo-LiteOS\targets\Hardware\BH1750”);
QQ截圖20191112202015.png

在“main.h” /* USER CODE BEGIN Includes */與 / * USER CODE END Includes */之間添加引用定義標(biāo)準(zhǔn)擴(kuò)展整數(shù)類型的頭文件代碼;
QQ截圖20191112202436.png
在“main.h”的/ *USER CODE BEGIN Private defines */與/ *USER CODE END Private defines */之間添加全局變量“msg_for_BH1750”與“BH1750_send”定義的代碼促王;
QQ截圖20191112202909.png
在“main.c”的/ *USER CODE BEGIN Includes */與/ *USER CODE END Includes */之間添加引用光敏傳感器頭文件的代碼與BH1750數(shù)據(jù)的全局變量犀盟,并根據(jù)1.2.1章節(jié)步驟3中設(shè)計(jì)的數(shù)據(jù)碼流,添加光敏傳感器數(shù)據(jù)上報(bào)時(shí)攜帶messageld的代碼蝇狼;
QQ截圖20191112203147.png
在“main.c”的/ * USER CODE BEGIN 0 */與/ * USER CODE END 0 */之間添加光敏傳感器任務(wù)代碼阅畴;定義光敏傳感器任務(wù)名為“LightSenssor_task”,優(yōu)先級(jí)為0;通過該任務(wù)题翰,對(duì)光敏傳感器進(jìn)行初始化恶阴,并打印任務(wù)信息與光敏傳感器數(shù)據(jù);
QQ截圖20191112204804.png
基于步驟3在“main.c”的/ * USER CODE BEGIN 2 */與/ *USER CODE END 2 */之間生成的代碼豹障,添加創(chuàng)建光敏傳感器任務(wù)的代碼冯事,并注釋創(chuàng)建task1與task2的代碼;
QQ截圖20191112205445.png

點(diǎn)擊“Rebuild”血公,編譯工程昵仅;
QQ截圖20191119191549.png
點(diǎn)擊“Download”,下載程序至開發(fā)板;
QQ截圖20191119193147.png
打開QCOM串口調(diào)試助手摔笤,根據(jù)對(duì)應(yīng)的串口够滑,選擇對(duì)應(yīng)的串口號(hào),配置相應(yīng)信息吕世,按下“MCU_RST”彰触,開發(fā)板運(yùn)行程序;
此時(shí)在QCOM上可以看到任務(wù)打印的信息命辖。
QQ截圖20191119194930.png
步驟2 移植NB入網(wǎng)代碼况毅,通過NB模組將數(shù)據(jù)上報(bào)至平臺(tái)

登錄OceanConnect平臺(tái),參照實(shí)驗(yàn)三的方式注冊設(shè)備(設(shè)備名稱自定義尔艇,設(shè)備驗(yàn)證碼為NB模組的IMEI號(hào))尔许;
QQ截圖20191119203955.png

打開Keil,在Keil中右擊“IoT-Demo”選擇“Manage Project Items…”终娃;

在“Project Items”標(biāo)簽下的“Application/User”中添加“IoT-Demo-LiteOS\targets\Src”目錄下的“at_hal.c”文件(注:“at_hal.c”文件包含用于連接LiteOS與HAL函數(shù)庫控制外設(shè)的代碼)味廊;
QQ截圖20191119195431.png
在“Project Items”標(biāo)簽下的“Groups”中添加“at_device”,并在該group下添加基于LiteOS的NB模組代碼棠耕;添加“IoT-Demo-LiteOS\components\net\at_device\nb_bc95”目錄下的“bc95.c”文件余佛;
QQ截圖20191119195558.png
在“Project Items”標(biāo)簽下的“Groups”中添加“at_framework”,并在該group下添加LiteOS AT框架實(shí)現(xiàn)的代碼昧辽;添加“IoT-Demo-LiteOS\components\net\at_frame”目錄下的全部.c文件衙熔;
QQ截圖20191119195636.png

在“Project Items”標(biāo)簽下的“Groups”中添加“nb-iot_api”,并在該group下添加基于LiteOS的NB-IoT API的代碼搅荞;添加“IoT-Demo-LiteOS\components\connectivity\nb_iot”目錄下的“l(fā)os_nb_api.c”文件红氯;
QQ截圖20191119195708.png
完成NB模組與AT框架相關(guān)代碼添加,點(diǎn)擊“OK”;
QQ截圖20191119195732.png
添加完成后咕痛,Keil的Project導(dǎo)航欄出現(xiàn)相應(yīng)文件痢甘;
QQ截圖20191119195836.png
在“Option for Target 'IoT-Dome' ”界面下選擇“C/C++”,在“Define”中添加全局宏定義標(biāo)識(shí)符:“WITH_AT_FRAMEWORK”茉贡,“USE_NB_NEUL95”塞栅;
QQ截圖20191119200002.png
QQ截圖20191119200100.png
在“Include Paths”欄添加相應(yīng)文件的頭文件路徑;
頭文件路徑分別為:
“IoT-Demo-LiteOS\components\connectivity\lwm2m\core\er-coap-13”
“IoT-Demo-LiteOS\components\net\at_device\nb_bc95”
QQ截圖20191119200154.png
QQ截圖20191119200225.png

在“main.c”的/ *USER CODE BEGIN Includes */與/ *USER CODE END Includes */之間添加調(diào)用AT框架與BC95頭文件的代碼腔丧,并聲明BC95入網(wǎng)的全局變量放椰;
QQ截圖20191119200404.png
在“main.h”的/ *USER CODE BEGIN Private defines */與/ *USER CODE END Private defines */之間添加“msg_sys_type bc95_net_data”定義的代碼;
QQ截圖20191119200642.png
在“main.c”的/ *USER CODE BEGIN 0 */與/ *USER CODE END 0 */之間添加BC95模組入網(wǎng)連接平臺(tái)發(fā)送數(shù)據(jù)任務(wù)代碼愉粤;定義該任務(wù)名為“data_send_task”砾医,優(yōu)先級(jí)為1;通過該任務(wù)衣厘,MCU向BC95發(fā)送平臺(tái)ip及port信息和光敏傳感器數(shù)據(jù)并通過串口打印發(fā)送結(jié)果如蚜;
QQ截圖20191119201242.png
打開“bc95.h”压恒,在該文件中修改AT_USART_PORT為2(本實(shí)驗(yàn)開發(fā)板MCU通過USART2向BC95模組發(fā)送數(shù)據(jù),不同開發(fā)板根據(jù)實(shí)際硬件情況配置)错邦;
QQ截圖20191119201412.png
QQ截圖20191119201727.png
基于步驟1在“main.c”的/ *USER CODE BEGIN 2 */與/ *USER CODE END 2 */之間生成的代碼探赫,添加創(chuàng)建BC95模組入網(wǎng)連接平臺(tái)發(fā)送數(shù)據(jù)任務(wù)的代碼;
QQ截圖20191119202051.png
點(diǎn)擊“Rebuild”撬呢,編譯工程伦吠;
QQ截圖20191119202155.png
點(diǎn)擊“Download”,下載程序至開發(fā)板倾芝;
QQ截圖20191119202346.png
打開QCOM串口調(diào)試助手讨勤,根據(jù)對(duì)應(yīng)的串口,選擇對(duì)應(yīng)的串口號(hào)晨另,配置相應(yīng)信息;通過跳線帽將開發(fā)板上的UART1的RX和TX與CH340的TX和RX連接谱姓,將開發(fā)板上的UART2的RX和TX與NB-IoT的TX和RX連接借尿;按下“MCU_RST”,開發(fā)板運(yùn)行程序屉来;
此時(shí)在QCOM上可以看到任務(wù)打印的信息路翻。
QQ截圖20191119202507.png
登陸平臺(tái),可以查看到注冊的設(shè)備處于在線狀態(tài)茄靠,通過“歷史數(shù)據(jù)”可以查看到開發(fā)板上報(bào)的數(shù)據(jù)茂契;
QQ截圖20191119203955.png
QQ截圖20191119204050.png
步驟3 編寫命令響應(yīng)代碼,通過平臺(tái)下發(fā)命令開關(guān)光敏傳感器上的LED燈

MCU通過PA5口控制光敏傳感器上的LED燈慨绳;打開“gpio.c”掉冶,在GPIO初始化函數(shù)下添加PIN5的初始化代碼;
QQ截圖20191119204148.png

打開“main.h”脐雪,添加定義LED引腳的代碼厌小;
QQ截圖20191119204301.png
打開“bc95.c”,在該.c文件中添加接收命令代碼战秋,根據(jù)命令執(zhí)行控制LED燈代碼及命令答復(fù)代碼璧亚;
QQ截圖20191119204659.png
在“bc95.c”的“nb_cmd_match”回調(diào)函數(shù)中,將“nb_handle_data_ind(buf);”改為“nb_handle_data_coap(buf);”脂信;
QQ截圖20191119204816.png

在步驟2“main.c”中創(chuàng)建的“data_send_task”任務(wù)中添加命令回復(fù)代碼癣蟋;
QQ截圖20191119204903.png
點(diǎn)擊“Rebuild”,編譯工程狰闪;
QQ截圖20191119204942.png
點(diǎn)擊“Download”疯搅,下載程序至開發(fā)板;
QQ截圖20191119205009.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尝哆,一起剝皮案震驚了整個(gè)濱河市秉撇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖琐馆,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件规阀,死亡現(xiàn)場離奇詭異,居然都是意外死亡瘦麸,警方通過查閱死者的電腦和手機(jī)谁撼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滋饲,“玉大人厉碟,你說我怎么就攤上這事⊥犁裕” “怎么了箍鼓?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長呵曹。 經(jīng)常有香客問我款咖,道長,這世上最難降的妖魔是什么奄喂? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任铐殃,我火速辦了婚禮,結(jié)果婚禮上跨新,老公的妹妹穿的比我還像新娘富腊。我一直安慰自己,他們只是感情好域帐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布赘被。 她就那樣靜靜地躺著,像睡著了一般俯树。 火紅的嫁衣襯著肌膚如雪帘腹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天许饿,我揣著相機(jī)與錄音阳欲,去河邊找鬼。 笑死陋率,一個(gè)胖子當(dāng)著我的面吹牛球化,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓦糟,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼筒愚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了菩浙?” 一聲冷哼從身側(cè)響起巢掺,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤句伶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后陆淀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體考余,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年轧苫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了楚堤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡含懊,死狀恐怖身冬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岔乔,我是刑警寧澤酥筝,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站重罪,受9級(jí)特大地震影響樱哼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜剿配,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阅束。 院中可真熱鬧呼胚,春花似錦、人聲如沸息裸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽年扩。三九已至,卻和暖如春访圃,著一層夾襖步出監(jiān)牢的瞬間厨幻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國打工腿时, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留况脆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓批糟,卻偏偏與公主長得像格了,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子徽鼎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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

  • django 在anacoda+pycharm環(huán)境下的配置 用conda搭建虛擬環(huán)境 進(jìn)入conda搭建的虛擬環(huán)境...
    宣翛閱讀 261評(píng)論 0 0
  • 1.昨天扣吃飯的時(shí)候說:我恨死我們班魏悅格了盛末,我:怎么了弹惦?扣:她這周是班長,我拿紙巾她說我玩紙悄但,非要讓我站起來棠隐,我...
    扣扣住幸福閱讀 179評(píng)論 0 0
  • 孤獨(dú)而自由是真實(shí)的 漫長而無盡頭
    多愁善感大少爺閱讀 149評(píng)論 0 0
  • 2 次查看 行為參數(shù)化本質(zhì)上是一塊代碼并使其可用而不執(zhí)行它。例如算墨,它可以傳遞給方法宵荒。由于Java 8引入了lamb...
    Java架構(gòu)學(xué)習(xí)者閱讀 424評(píng)論 0 0
  • 愛情的套路 作者:金小貝 我一向以情感大師自居,其實(shí)身邊的哥們兒總說我是情場高手净嘀,但我不喜歡他們這么說我报咳,因?yàn)檫@個(gè)...
    金小貝127閱讀 360評(píng)論 0 3