亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

3天內(nèi)不再提示

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

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 2020-07-01 14:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

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

實驗框圖

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

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

創(chuàng)建RTT工程

硬件:小熊派開發(fā)板。

軟件:基于RT-Thread操作系統(tǒng)的應用開發(fā)。

開發(fā)工具:RT-Thread Studio V1.1.0。

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

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

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

本次實驗也只是把它們?nèi)诤显谝黄饋硎褂谩?/p>

1、添加相關(guān)軟件包、配置:

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

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

(1)設置WiFi信息:

(2)設置OneNET信息

(3)配置I2C對接BH1750

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

2、應用代碼

(1)測試函數(shù)

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

intonenet_upload_example(void) { rt_thread_ttid; /*onenet初始化*/ onenet_mqtt_init(); /*綁定led命令響應回調(diào)函數(shù)*/ onenet_set_cmd_rsp_cb(onenet_ledcmd_rsp_cb); /*創(chuàng)建onenet數(shù)據(jù)上傳任務*/ 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命令響應回調(diào)函數(shù)的綁定,回調(diào)函數(shù)onenet_ledcmd_rsp_cb里進行的就是接收到onenet下發(fā)的led命令之后進行地一些操作。最后就是創(chuàng)建一個onenet數(shù)據(jù)上傳的線程。

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

(2)led命令響應回調(diào)函數(shù)

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

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

(3)上傳數(shù)據(jù)的任務

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

/*上傳數(shù)據(jù)至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) { /*從傳感器讀取一個數(shù)據(jù)*/ 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燈根據(jù)光照值自動打開、熄滅*/ 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 "); ????????} ????????/*?上傳光照數(shù)據(jù)至onenet?*/ ????????if?(onenet_mqtt_upload_string("light",?(const?char*)send_buf)?

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

同時,led的狀態(tài)根據(jù)光照值的結(jié)果自動打開/關(guān)閉,led的狀態(tài)也是通過onenet_mqtt_upload_string接口傳至onenet。

3、OneNET云端web應用

(1)創(chuàng)建一個web應用

為了能更好地、更直觀的展示我們的數(shù)據(jù),我們創(chuàng)建一個web應用來管理:

onenet構(gòu)建web應用的方式與之前我們分享的《智慧農(nóng)業(yè)案例實驗分享》中華為云構(gòu)建web應用的方式類似,都是通過拖控件的方式。我們創(chuàng)建好的應用如下:

實驗結(jié)果

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

    關(guān)注

    32

    文章

    1514

    瀏覽量

    43991
  • 智慧路燈
    +關(guān)注

    關(guān)注

    3

    文章

    917

    瀏覽量

    18301

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

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    首搭RT-Thread程翧車控平臺| RT-Thread程翧 S32K344 快速原型開發(fā)平臺正式上市!| 產(chǎn)品動態(tài)

    在智能汽車邁向高集成與高安全的時代,VCU/ECU開發(fā)正面臨效率與可靠性的雙重考驗。依賴單一硬件或拼湊軟件方案的傳統(tǒng)模式,已成為制約創(chuàng)新的瓶頸。為此,RT-Thread帶來里程碑式的解決方案
    的頭像 發(fā)表于 10-31 11:53 ?252次閱讀
    首搭<b class='flag-5'>RT-Thread</b>程翧車控平臺| <b class='flag-5'>RT-Thread</b>程翧 S32K344 快速原型開發(fā)平臺正式上市!| 產(chǎn)品動態(tài)

    2025年RT-Thread開發(fā)者巡回培訓報名正式啟動!

    親愛的RT-Thread社區(qū)成員們:新程再啟,共赴熱愛!2025年RT-Thread開發(fā)者巡回培訓正式啟動報名!今年,我們選擇了西安、武漢、北京、杭州、深圳、上海、成都這7座城市,為大家?guī)?/div>
    的頭像 發(fā)表于 09-27 10:39 ?836次閱讀
    2025年<b class='flag-5'>RT-Thread</b>開發(fā)者巡回培訓報名正式啟動!

    rt-thread studio 2.2.9如何使用最新的RT-Thread v5.2.0 released?

    rt-thread studio2.2.9如何使用最新的RT-Thread v5.2.0 released? 原先以為修改index_all.json,發(fā)現(xiàn)聯(lián)網(wǎng)的時候,會自動覆蓋 另lastet版本
    發(fā)表于 09-16 06:06

    在Ubuntu上開發(fā)基于先楫MCU的RT-Thread應用指南

    1、前言RT-ThreadEnv是RT-Thread推出的開發(fā)輔助工具,針對基于RT-Thread操作系統(tǒng)的項目工程,提供編譯構(gòu)建環(huán)境、圖形化系統(tǒng)配置及軟件包管理功能。其內(nèi)置的menuconfig
    的頭像 發(fā)表于 08-29 12:22 ?1084次閱讀
    在Ubuntu上開發(fā)基于先楫MCU的<b class='flag-5'>RT-Thread</b>應用指南

    【好書推薦】RT-Thread第20本相關(guān)書籍!《嵌入式實時操作系統(tǒng)RT-Thread原理與應用》| 技術(shù)集結(jié)

    01內(nèi)容簡介ContentSummary本書為讀者提供了一個全面、系統(tǒng)的RT-Thread學習指南,旨在幫助初學者及有經(jīng)驗的開發(fā)者掌握RT-Thread實時操作系統(tǒng)和STM32嵌入式微控制器的核心
    的頭像 發(fā)表于 08-24 10:05 ?598次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>第20本相關(guān)書籍!《嵌入式實時操作系統(tǒng)<b class='flag-5'>RT-Thread</b>原理與應用》| 技術(shù)集結(jié)

    RT-Thread 遇上 Rust:安全內(nèi)核 RusT-Thread 的誕生

    大家好,我們是中國科學技術(shù)大學操作系統(tǒng)原理與設計(H)課oooooS小組。這個項目是我們的課程大作業(yè):參考RT-Thread架構(gòu),使用Rust搭建一個原生的嵌入式操作系統(tǒng)內(nèi)核。初識Rust是因為xk
    的頭像 發(fā)表于 08-02 11:03 ?2989次閱讀
    <b class='flag-5'>RT-Thread</b> 遇上 Rust:安全內(nèi)核 RusT-<b class='flag-5'>Thread</b> 的誕生

    RT-Thread榮獲2025優(yōu)秀開源項目 | 新聞速遞

    6月底,RT-Thread睿賽德受邀參與由上海開源信息技術(shù)協(xié)會主辦的2025上海開源創(chuàng)新精英薈。上海市商委副主任張杰出席會議并致辭。RT-Thread嵌入式操作系統(tǒng)項目憑借其卓越的技術(shù)創(chuàng)新與開源生態(tài)
    的頭像 發(fā)表于 07-04 09:04 ?2295次閱讀
    <b class='flag-5'>RT-Thread</b>榮獲2025優(yōu)秀開源項目 | 新聞速遞

    深度剖析 RT-Thread 線程調(diào)度流程

    RT-Thread調(diào)度第一個線程的主要流程分如下:rtthread_startup:RTT的啟動函數(shù),主要負責板級驅(qū)動,調(diào)度器,系統(tǒng)線程初始化,啟動調(diào)度的工作
    的頭像 發(fā)表于 06-25 18:24 ?1300次閱讀
    深度剖析 <b class='flag-5'>RT-Thread</b> 線程調(diào)度流程

    揭秘RT-Thread上的AUTOSAR CP系統(tǒng)

    本文探討了RT-Thread與AUTOSARCP的融合,解決車載ECU開發(fā)中實時性、安全性與靈活性的平衡問題。通過分層安全內(nèi)核(rt-safetyos/autoos)和工具鏈整合,兼容AUTOSAR
    的頭像 發(fā)表于 06-23 20:22 ?2816次閱讀
    揭秘<b class='flag-5'>RT-Thread</b>上的AUTOSAR CP系統(tǒng)

    2025 RT-Thread全球技術(shù)大會議程正式發(fā)布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技術(shù)大會)是聚焦基礎軟件技術(shù)創(chuàng)新與實踐的嵌入式技術(shù)盛會,持續(xù)推動技術(shù)價值轉(zhuǎn)化
    的頭像 發(fā)表于 05-27 19:28 ?974次閱讀
    2025 <b class='flag-5'>RT-Thread</b>全球技術(shù)大會議程正式發(fā)布!

    RT-Thread審核團招募: 深度參與開源RTOS社區(qū)治理與演進

    全球開發(fā)者招募:RT-Thread審核團(ReviewTeam)正式開放申請!在開源的世界里,代碼審查(CodeReview)是保證軟件質(zhì)量、促進技術(shù)交流的關(guān)鍵環(huán)節(jié)。RT-Thread作為全球領先
    的頭像 發(fā)表于 05-21 18:02 ?981次閱讀
    <b class='flag-5'>RT-Thread</b>審核團招募: 深度參與開源RTOS社區(qū)治理與演進

    如何將RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默認支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植到NXP MCUXPressoIDE上呢?本文內(nèi)容比較簡單但稍有瑣碎,希望對有需要的小伙伴有所幫助。
    的頭像 發(fā)表于 02-13 10:37 ?2300次閱讀
    如何將<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上

    從開源中來到開源中去-RT-Thread北京社區(qū)篇

    RT-Thread今年全域推行不同區(qū)域社區(qū)網(wǎng),通過建立區(qū)域社區(qū)網(wǎng),構(gòu)建更加緊密聯(lián)系的開源社區(qū),實現(xiàn)更廣泛的開源資源共享,讓更多的RT-Thread開發(fā)者受益。今年8月份RT-Thread正式啟動北京
    的頭像 發(fā)表于 11-29 01:05 ?709次閱讀
    從開源中來到開源中去-<b class='flag-5'>RT-Thread</b>北京社區(qū)篇

    【S32K146 RT-Thread】之 使用SFUD組件驅(qū)動spi flash

    【S32K146 RT-Thread】之 使用SFUD組件驅(qū)動spi flash
    的頭像 發(fā)表于 11-21 01:05 ?1535次閱讀
    【S32K146 <b class='flag-5'>RT-Thread</b>】之 使用SFUD組件驅(qū)動spi flash

    RT-Thread上CAN實踐

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