衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于RT-Thread的智慧路燈案例實驗分享

RTThread物聯網操作系統 ? 來源:RTThread物聯網操作系統 ? 2020-07-01 14:43 ? 次閱讀

前言

之前在網上看到了很多類似的實踐,都蠻受大家歡迎的。那咱們就再來一個類似的實驗:基于RT-Thread的智慧路燈案例實驗。

實驗框圖

實驗說明:設備終端不斷采集光強數據并上傳至云端進行監控,同時也會把當前LED(路燈)的狀態上傳。LED的狀態會根據光照值進行打開、關閉。

比如當光照值低于(夜晚)我們設置的光照閾值時就會打開LED,當光照高于(白天)光照閾值時就會熄滅LED燈。除此之外,云端可以遠程控制LED的亮滅,達到一個遠程控制的作用。

創建RTT工程

硬件:小熊派開發板。

軟件:基于RT-Thread操作系統的應用開發。

開發工具:RT-Thread Studio V1.1.0。

本實驗我們需要用到RT-Thread的BH1750軟件包、OneNet軟件包及at_device軟件包等。這些軟件包的使用已經在前兩篇筆記中有寫到:

【RT-Thread筆記】BH1750軟件包的使用

【RT-Thread筆記】OneNet軟件包的使用

本次實驗也只是把它們融合在一起來使用。

1、添加相關軟件包、配置:

添加完之后的RT-Thread Settings文件如:

添加軟件包及軟件包的一些詳細配置可查閱上兩篇筆記。這里也大概提一下要點:

(1)設置WiFi信息

(2)設置OneNET信息

(3)配置I2C對接BH1750

這里我用的是RT-Thread Studio V1.1.0,這里的I2C的范例配置有點問題,其它版本的RT-Thread Studio應該可以按范例配置那么配,如果按范例配置編譯不通過的話可以按照I2C2那樣配置。

2、應用代碼

(1)測試函數

左右滑動查看全部代碼>>>

intonenet_upload_example(void) { rt_thread_ttid; /*onenet初始化*/ onenet_mqtt_init(); /*綁定led命令響應回調函數*/ onenet_set_cmd_rsp_cb(onenet_ledcmd_rsp_cb); /*創建onenet數據上傳任務*/ tid=rt_thread_create("onenet_upload", onenet_upload_entry, RT_NULL, 2048, 10, 5); if(tid) rt_thread_startup(tid); return0; } MSH_CMD_EXPORT(onenet_upload_example,senddatatoOneNETcloudcycle);

首先進行一個onenet初始化,這個初始化接口時onenet軟件包提供的。

接著進行一個led命令響應回調函數的綁定,回調函數onenet_ledcmd_rsp_cb里進行的就是接收到onenet下發的led命令之后進行地一些操作。最后就是創建一個onenet數據上傳的線程。

最后把這個函數以命令的形式導出,以便我們可以在命令行輸入onenet_upload_example命令進行測試。

(2)led命令響應回調函數

左右滑動查看全部代碼>>>

staticvoidonenet_ledcmd_rsp_cb(uint8_t*recv_data,size_trecv_size,uint8_t**resp_data,size_t*resp_size) { charres_buf[20]={0}; charrecv_buf[5]={0}; LOG_D("recvdatais%.*s ",recv_size,recv_data); if(!strncmp((char*)recv_data,"ledon",5)) { rt_pin_write(SC1_LED_PIN,SC1_LED_ON); rt_snprintf(res_buf,sizeof(res_buf),"ledison"); rt_kprintf("ledison "); } elseif(!strcmp((char*)recv_data,"ledoff",5)) { rt_pin_write(SC1_LED_PIN,SC1_LED_OFF); rt_snprintf(res_buf,sizeof(res_buf),"ledisoff"); rt_kprintf("ledisoff "); } else { rt_kprintf("ledcmdERROR! "); } /*userhavetomallocmemoryforresponsedata*/ *resp_data=(uint8_t*)rt_malloc(strlen(res_buf)); strncpy((char*)*resp_data,res_buf,strlen(res_buf)); *resp_size=strlen(res_buf); }

我們收到onenet下發的命令之后,所需要做的操作放在這里面。比如當我們的設備接收到ledon字符串時,打開led,并打印提示信息。最后再把led is on信息應答給onenet。

(3)上傳數據的任務

左右滑動查看全部代碼>>>

/*上傳數據至onenet*/ staticvoidonenet_upload_entry(void*parameter) { rt_device_tdev=RT_NULL; structrt_sensor_datadata; rt_size_tres; charled_status=SC1_LED_OFF; charsend_buf[32]={0}; /*設置高亮LED的引腳為輸出模式*/ rt_pin_mode(SC1_LED_PIN,PIN_MODE_OUTPUT); /*查找bh1750傳感器*/ dev=rt_device_find("li_bh1750"); if(dev==RT_NULL) { rt_kprintf("Can'tfinddevice:li_bh1750 "); return; } /*以只讀模式打開bh1750*/ if(rt_device_open(dev,RT_DEVICE_FLAG_RDONLY)!=RT_EOK) { rt_kprintf("opendevicefailed!"); return; } while(1) { /*從傳感器讀取一個數據*/ res=rt_device_read(dev,0,&data,1); if(1!=res) { rt_kprintf("readdatafailed!sizeis%d",res); } else { rt_kprintf("light:%4d.%dlux ",data.data.light/10,data.data.light%10); rt_sprintf(send_buf,"%4d.%d",data.data.light/10,data.data.light%10); } /*高亮LED燈根據光照值自動打開、熄滅*/ if(data.data.light/10<=?40) ????????{ ????????????rt_pin_write(SC1_LED_PIN,?SC1_LED_ON); ????????????led_status?=?SC1_LED_ON; ????????????rt_kprintf("led_status?=?ON "); ????????} ????????else ????????{ ????????????rt_pin_write(SC1_LED_PIN,?SC1_LED_OFF); ????????????led_status?=?SC1_LED_OFF; ????????????rt_kprintf("led_status?=?OFF "); ????????} ????????/*?上傳光照數據至onenet?*/ ????????if?(onenet_mqtt_upload_string("light",?(const?char*)send_buf)?

這是我們的上傳任務:讀取BH1750傳感器采集的光照值,通過onenet軟件包給我們提供的onenet_mqtt_upload_string接口上傳至onenet。

同時,led的狀態根據光照值的結果自動打開/關閉,led的狀態也是通過onenet_mqtt_upload_string接口傳至onenet。

3、OneNET云端web應用

(1)創建一個web應用

為了能更好地、更直觀的展示我們的數據,我們創建一個web應用來管理:

onenet構建web應用的方式與之前我們分享的《智慧農業案例實驗分享》中華為云構建web應用的方式類似,都是通過拖控件的方式。我們創建好的應用如下:

實驗結果

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40386
  • 智慧路燈
    +關注

    關注

    2

    文章

    757

    瀏覽量

    17244

原文標題:基于RT-Thread的智慧路燈案例實驗分享

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RT-Thread上CAN實踐

    開箱測試RT-Thread官方已完成了對英飛凌XMC7200EVK的移植,通過shell可以看到做好了uart3的console。本文將介紹如何進行RT-ThreadCan移植。接下來我們要完成CAN_FD的驅動移植,并正常啟動RT-T
    的頭像 發表于 11-13 01:03 ?1376次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實踐

    開源共生 商業共贏 | RT-Thread 2024開發者大會報名啟動!

    親愛的RT-Thread開發者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread開發者大會)正式啟動報名!2024RT-Threa
    的頭像 發表于 10-29 08:06 ?503次閱讀
    開源共生 商業共贏 | <b class='flag-5'>RT-Thread</b> 2024開發者大會報名啟動!

    【南京】9月21日RT-Thread巡回線下培訓-智慧家居視頻監測系統實戰

    親愛的RT-Thread社區成員們:RT-Thread24年全球巡回培訓將覆蓋超10座城市及國家,為開發者提供一個深入學習RT-Thread嵌入式開發的絕佳機會。2024年RT-Thread
    的頭像 發表于 09-11 08:07 ?418次閱讀
    【南京】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓-<b class='flag-5'>智慧</b>家居視頻監測系統實戰

    2024 RT-Thread全球巡回 線下培訓火熱來襲!

    親愛的RT-Thread社區成員們:我們非常高興地宣布,2024年RT-Thread全球開發者線下培訓即將拉開帷幕!24年全球巡回培訓將覆蓋超10座城市及國家,為開發者提供一個深入學習RT-Thread嵌入式開發的絕佳機會。
    的頭像 發表于 08-07 08:35 ?1500次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓火熱來襲!

    【好書推薦】RT-Thread設備驅動開發指南

    近年來國內芯片產業和物聯網產業的快速崛起,行業發展迫切需要更多人才,尤其需要掌握嵌入式操作系統等底層技術的人才。隨著RT-Thread被更廣泛地應用于行業中,開發者對嵌入式驅動開發的需求越來越
    的頭像 發表于 08-01 08:35 ?727次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設備驅動開發指南

    RT-Thread 新里程碑達成——GitHub Star 破萬!

    RT-Thread實時操作系統開源項目在GitHub上的star數量突破一萬!截止發文,RT-Thread作為實時操作系統在業界Star數量排名第一!倉庫地址:https://github.com
    的頭像 發表于 07-04 08:35 ?514次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達成——GitHub Star 破萬!

    6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發表于 05-28 08:35 ?480次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    2024 RT-Thread 全球技術大會演講議程發布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技術大會)致力于圍繞RT-Thread基礎軟件技術發展、實踐創新、開發者能力
    的頭像 發表于 05-16 08:34 ?617次閱讀
    2024 <b class='flag-5'>RT-Thread</b> 全球技術大會演講議程發布!

    5月16日南京站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    5月16日下午我們將在南京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發表于 05-01 08:35 ?415次閱讀
    5月16日南京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread混合部署Workshop北京站來啦!

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發表于 04-19 08:34 ?472次閱讀
    <b class='flag-5'>RT-Thread</b>混合部署Workshop北京站來啦!

    4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發表于 04-16 08:35 ?462次閱讀
    4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深嵌入式軟件工程師農曉明老師為您講
    的頭像 發表于 03-27 11:36 ?884次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發表于 03-27 08:34 ?576次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread成為恩智浦注冊合作伙伴,共同賦能工業與物聯網應用開發!

    前不久,恩智浦半導體加入RT-Thread全球合作伙伴計劃,成為RT-Thread高級會員合作伙伴。同時,RT-Thread現已成為恩智浦注冊合作伙伴。
    的頭像 發表于 03-15 09:15 ?908次閱讀

    恩智浦半導體正式加入RT-Thread全球合作伙伴計劃!

    前不久,恩智浦半導體正式加入RT-Thread全球合作伙伴計劃,成為RT-Thread高級會員合作伙伴。同時,RT-Thread現已成為恩智浦注冊合作伙伴(RT-Thread| 簡介合
    的頭像 發表于 03-14 10:40 ?672次閱讀
    恩智浦半導體正式加入<b class='flag-5'>RT-Thread</b>全球合作伙伴計劃!
    定制百家乐桌子| 百家乐上海代理| 大家旺娱乐| 至尊百家乐娱乐场开户注册| 皇冠现金网址| 百家乐赢家电子书| 百家乐官网qq游戏| 百家乐官网单跳打法| 幸运水果机下载| 百家乐号论坛博彩正网| 百家乐官网注码技术打法| 山丹县| 威尼斯人娱乐骰宝| 立即博百家乐官网娱乐城| 金木棉蓝盾在线娱乐| 百家乐庄闲的几率| 网上百家乐投注法| 闲和庄百家乐官网娱乐城| 百家乐官网明灯| 大亨百家乐官网娱乐城| 额敏县| 博彩评测网| 百家乐现金网平台排名| 联合百家乐官网的玩法技巧和规则 | 百家乐电子发牌盒| 专业百家乐官网筹码| 西贡区| 金榜娱乐城| 金世豪百家乐的玩法技巧和规则| 唐朝百家乐官网的玩法技巧和规则| 百家乐官网赌场赌场网站| 现场百家乐官网百家乐官网| 百家乐评级网站| 百家乐庄家出千内幕| 百家乐官网视频画面| 百家乐官网信誉平台开户| 本溪市| 今天六合彩开什么| a8娱乐城开户| 95博彩通| 百家乐官网路单打法|