精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

使用平頭哥RVB2601開發板設計智能家居助手

電子工程師 ? 來源:芯片開放社區 ? 作者:碼農愛學習 ? 2022-07-19 10:08 ? 次閱讀

智慧家居助手是“平頭哥RVB2601開源應用創意征集”活動中的一等獎獲獎作品,由開發者碼農愛學習開發,主要是為了實現家庭智能設備的控制。在完成全部的功能開發后,碼農愛學習也分享了他在本次活動中的體驗與感想。

“從3個月前拿到板子,逐步熟悉CDK環境的開發與RISC-V的開發體驗,在使用過程中,不斷分享使用筆記,并學習其它網友積極分享的筆記,最后將所有使用過的功能,整合為一個綜合的小項目,就實現了這個智慧家居助手。”

接下來,讓我們一起來拆解智慧家居助手的內部功能與結構吧。

01項目背景

當今時代,已進入萬物互聯的時代,各種嵌入式硬件產品,通過網絡連接互聯網,實現萬物互聯。對于我們的家庭生活來說,能夠有一款服務于家庭的智能控制設備,實現諸如這些功能:家中的各種生活電器,通過連接網絡,可以進行更方便的遠程控制;家中的溫度、濕度、空氣質量等環境指標,通過連網,也可以方便地為我們展示;最近的天氣情況,在出門前方便的為我們提醒;家中休息時,營造娛樂的氛圍……

02作品簡介

基于上述的設想,本項目嘗試使用平頭哥的RVB2601開發板,設計一款智能家居助手,從而使我們更好的享用家中生活。

本項目利用RVB2601的WiFi功能,通過連接互聯網可以獲取近期天氣信息,在板載屏幕上顯示,提示我們天氣變化;利用RTC功能,顯示當前的網絡時間;外接溫、濕度傳感器,可以為我們展示室內真實的溫濕度;通過WiFi與其它電器的控制器通信,這里使用ESP8266作為被控節點,實現對其它電器的無線開關控制;利用板子自帶的喇叭和連網功能,可以播放網絡音樂和視頻用來進行娛樂;使用OTA功能,還可以不斷對功能進行迭代更新,實現軟件功能的空中升級。

本項目最終實現的實物照片如下,通過ESP8266板載的一個LED和外接的LED模擬家中的兩個不同的燈,外接的小風扇模擬家中的風扇:

f00fc658-0691-11ed-ba43-dac502259ad0.png

03系統框圖

本項目的整體硬件結構如下:主體為RVB2601主控制器,通過路由器與家中其它電器進行無線連接,實現家中電器的開關控制,并可通過連接互聯網,實現互聯網信息(網絡天氣、網絡時間、網絡音樂的獲取)。

f039c246-0691-11ed-ba43-dac502259ad0.png

為了實現各個功能的選擇調用,本項目利用多級菜單的結構,實現各個功能間的跳轉,具體的結構如下:

f05e79d8-0691-11ed-ba43-dac502259ad0.png

關于多級菜單的具體實現細節,在下面的“各部分功能說明和解析”中將詳細介紹。

軟件部分,本項目使用平頭哥的CDK集成開發環境進行代碼編寫與調試,使用YoC軟件平臺框架以及AOS API實現程序設計:

使用任務創建功能,實現各個模塊功能的獨立設計與維護;

使用信號量機制,實現不同任務間的信息同步;

使用消息隊列,實現不同任務間的消息傳遞;

使用訂閱發布機制,實現任務間的解耦;

使用RTC功能,實現時間的獲取;

使用SPI功能,實現屏幕的驅動與顯示;

使用日志組件,實現代碼的調試與信息輸出;

04各部分功能說明和解析

4.1 城市天氣顯示

RVB2601具有連網功能,可以連接互聯網來實現對網絡天氣信息的獲取。

這里使用高德平臺的天氣獲取接口,通過http協議獲取指定城市的天氣數據。原始數據是json格式的,需要從json數據中解析出天氣、溫度等信息,然后將這些信息顯示到屏幕中。

這里使用U8g2庫來進行天氣信息的顯示,U8g2庫自帶了一些天氣圖標,可以將對應的天氣信息轉換為對應的天氣圖標顯示出來。

另外,天氣的顯示包括主頁常駐地的天氣顯示,可以在菜單頁中顯示不同城市的天氣,通過在菜單頁中查看對應城市的天氣后,主頁的常駐地也會跟著變為菜單中查看的那個城市,從而實現主頁常駐地的切換。

f082ea20-0691-11ed-ba43-dac502259ad0.png

關于U8g2庫在RVB2601上的具體移植過程,可參考前期的試用報告:【平頭哥RVB2601創意應用開發】實踐2-移植U8g2圖形庫

4.2 當前時間顯示

RVB2601具備RTC(Real_Time Clock)功能,可以實現時間的顯示,雖然RVB2601的RTC沒有配置電池,掉電后時間就沒了,但RVB2601的連網功能,可以在每次開機時,通過獲取網絡時間,來為RTC重新校準時間。參考YOC文檔,可以學習RTC功能的基本用法。

f0bda994-0691-11ed-ba43-dac502259ad0.png

網絡天氣與時間的具體實現細節,可參考之前的試用報告:【平頭哥RVB2601創意應用開發】實踐7-U8g2庫顯示網絡天氣和時間

4.3 室內溫濕度顯示

除了顯示不同城市的天氣數據,家庭環境中的溫濕度也值得我們關注,這里就通過RVB2601外接一個溫濕度傳感器(DHT11)來實現室內溫濕度數據的采集與顯示。

DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器,微控制器與 DHT11之間的通訊和同步,采用單總線數據格式,這里將DHT11的數據線接至DHT11的PA10引腳上。再過按鍵切換功能,實現屏幕上主頁界面與室內溫濕度頁面的切換顯示。

f0e8fa5e-0691-11ed-ba43-dac502259ad0.png

DHT11數據讀取與顯示程序如下:

f10ee0fc-0691-11ed-ba43-dac502259ad0.png

DHT11的更多實現細節,可參考前期的使用報告:【平頭哥RVB2601創意應用開發】實踐3-外接DHT11顯示溫濕度

4.4 多級菜單

為了實現更多的功能操作,引入了多級菜單的功能,通過板子上兩個按鍵的配合,實現不同功能的選擇與觸發。

這里使用數組查表法的方式,實現了一個三級菜單的功能:

第一級和第二級是功能選項

第三級是要實現的具體功能

通過左邊按鍵實現上下項目的切換

通過右邊按鍵實現各級菜單間的跳轉

數組查表法的基本原理是通過一個結構體數組,實現各個菜單頁面的跳轉:

f13e8578-0691-11ed-ba43-dac502259ad0.png

結構體中4個成員的含義為:

current:當前頁面的索引

down:按下“向下翻“按鈕后要跳轉到的頁面索引號

enter:按下“確認“按鈕后要跳轉到的頁面索引號

current_operation:當前頁面的索引號要執行的顯示函數

這里的顯示函數,加了兩個參數

第一個參數用來表示該界面是否是第一次進入,如果是,則按需做一些初始化處理,比如查詢不同程序的天氣時,第一次進入某個城市的天氣界面,需要先獲取一次網絡天氣;

第二個參數用來表示該界面是否需要在本界面內實現某些功能切換,比如家中電器控制的界面中,控制電器開和關時,就要用到這個參數,以用來顯示不同開關狀態的界面。

本項目中,多級菜單的前兩級的展示示例如下:

f16371ee-0691-11ed-ba43-dac502259ad0.png

多級菜單的更多實現細節,可參考前期的使用報告:【平頭哥RVB2601創意應用開發】實踐6-多級菜單顯示測試

4.5音樂&視頻娛樂

RVB2601具有連網功能,并且板載了一個喇叭,可以通過網絡獲取一些音樂或視頻資源,實現家居娛樂功能。首先介紹網絡音樂播放功能。

4.5.1音樂播放功能

音樂播放參考了官方的webplayer例程,在此基礎上,實現按鍵控制不同音樂的播放開始與停止,以及播放時的屏幕顯示功能。

為了配合其它功能對按鍵與屏幕的使用,這里創建了一個音樂播放任務,來控制音樂的播放:

f1802118-0691-11ed-ba43-dac502259ad0.png

音樂播放的菜單進入界面與音樂播放界面如下圖所示,在音樂播放時,設計了兩個位置交錯的音樂圖標循環顯示,實現一種正在播放的畫面效果。

f1a19d48-0691-11ed-ba43-dac502259ad0.png

網絡音樂播放的更多實現細節,可參考前期的使用報告:【平頭哥RVB2601創意應用開發】實踐4-按鍵控制網絡音樂播放

下面再來介紹視頻播放功能。

4.5.2視頻播放功能

本項目中視頻播放的基本原理是:利用TCP連網功能,使RVB2601作為客戶端,筆記本電腦作為服務器端,使RVB2601與ESP8266板子在同一局域網下無線通信,RVB2601獲取服務器端的視頻幀數據,再借助U8g2圖形庫,將每一幀的圖形顯示出來。

電腦端通過Python程序,作為TCP服務器,其主要功能為:

利用OpenCV讀取視頻文件

對視頻幀的圖像,進行尺寸修改

對圖像進行二值化處理

將二值圖像轉換為數組

將數組通過socket發送出去

電腦端的主體代碼如下:

f1d77864-0691-11ed-ba43-dac502259ad0.png

RVB2601端,通過連接對應的服務器,在接收到圖像數據后,顯示出來即可:

視頻播放的截圖效果如下,實際播放效果請看演示視頻。

f203de4a-0691-11ed-ba43-dac502259ad0.png

視頻播放的更多實現細節,可參考前期的試用報告:【平頭哥RVB2601創意應用開發】實踐9-板載屏幕播放BadApple視頻,需注意的是,前期這篇試用報告,是在TCP數據接收回調函數中,直接進行圖像的顯示的,而在此次結項綜合例程中,為了配合各個功能對屏幕的使用,在回調函數中收到視頻數據后,采用消息隊列的方式,將數據再轉發出去,由屏幕顯示程序來處理何時要在屏幕上顯示視頻。

4.6 家居電器控制

家居電器的控制功能,通過RVB2601與ESP8266無線TCP通信實現,ESP8266作為被控制電器的無線控制器,與主控RVB2601通信。ESP8266作為TCP服務器端,RVB2601作為TCP客戶端,通過指定的IP與端口號進行連接。

4.6.1燈的開關控制

ESP8266使用Arduino IDE進行開發與程序編寫,主程序邏輯為:等待客戶端連接,并接收客戶端的指令,接收到后,對指令進行解析,執行對應的LED亮滅操作。

這里是以字符串的形式進行數據傳送,比如“led on”就是開燈,“led off”就是關燈。

f23b639c-0691-11ed-ba43-dac502259ad0.png

4.6.2風扇的開關控制

風扇的控制與燈的控制邏輯一樣,只需再定義“fan on"和“fan off”這樣的指令用來進行風扇的控制。硬件方面,由于這個小風扇的相比較LED來說,需要的電流較大,這里使用一個繼電器來間接控制風扇電源的通斷。

f26f65b6-0691-11ed-ba43-dac502259ad0.png

4.7 RGB呼吸燈

RGB呼吸燈是本項目的一個附件功能,通過一個獨立的RGB_LED任務,實現3種顏色的LED呼吸亮滅。它也可以在調試程序中,作為程序是否正常運行的判斷標志。

f29d5e12-0691-11ed-ba43-dac502259ad0.png

05作品源碼

https://gitee.com/xxpcb/rbv2601-test/tree/master/RVB2601_2022

f2bd77f6-0691-11ed-ba43-dac502259ad0.png

06視頻演示

簡介

平頭哥RVB2601創意應用開發——智慧家居助手,主要展示的功能包括:

城市天氣顯示(主頁常駐地天氣與菜單頁不同城市天氣,連網獲取網絡天氣)

當前時間顯示(日期、時、分、秒、星期,連網獲取網絡時間)

室內溫濕度顯示(DHT11溫濕度傳感器)

多級菜單(三級菜單實現各功能界面的跳轉)

音樂播放功能(網絡音樂播放)

視頻播放功能(連接電腦端TCP服務器獲取視頻幀數據)

家居電器控制(燈的控制、風扇的控制)

RGB呼吸燈

07項目總結

本項目基于平頭哥的RVB2601,設計了一款智慧家居助手,實現了網絡天氣、時間的獲取與顯示、室內溫濕度的獲取與顯示、家中電器的無線控制,音樂與視頻娛樂功能等,幫助我們更好的體驗家中環境。

從3個月前拿到板子,逐步熟悉CDK環境的開發與RISC-V的開發體驗,在使用過程中,不斷分享使用筆記,并學習其它網友積極分享的筆記,最后將所有使用過的功能,整合為一個綜合的小項目,就實現了這個智慧家居助手。

審核編輯:湯梓紅

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

    關注

    25

    文章

    4959

    瀏覽量

    97214
  • 智慧家居
    +關注

    關注

    1

    文章

    83

    瀏覽量

    16275
  • RISC-V
    +關注

    關注

    44

    文章

    2233

    瀏覽量

    46045
  • 平頭哥
    +關注

    關注

    0

    文章

    64

    瀏覽量

    9034

原文標題:通用型MCU的創意應用——3個月實現智慧家居助手快捷開發

文章出處:【微信號:芯片開放社區,微信公眾號:芯片開放社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RVB2601開發板快速上手教程

    軟件環境搭建3.1.CDK介紹基于RVB2601開發板的應用是利用CDK集成開發環境進行開發的。關于的CDK的介紹,可以直接前往平頭
    發表于 09-01 14:12

    RVB2601開發板用戶指南

    及豐富的片上外設,最低主頻220MHz,支持AliOS Things物聯網操作系統、平頭YoC軟件平臺及平頭劍池開發工具(CDK)。1.
    發表于 09-01 14:19

    平頭RVB2601開發板試用體驗】平頭RVB2601開發板_CDK試用體驗

    ,管理所有工程文件 五、總結經過幾番摸索,在Project目錄下,新建IOT工程文件菜單里面,可以直接選擇平頭RVB2601開發板,和相關示例,更加直接,簡單方便。在動則數十千R
    發表于 12-30 10:15

    平頭RVB2601開發板試用體驗】CDK初體驗

    “ch2601_gui_demo”, 即可在此工作空間,管理所有工程文件 五、總結經過幾番摸索,在Project目錄下,新建IOT工程文件菜單里面,可以直接選擇平頭RVB2601
    發表于 12-30 10:52

    平頭RVB2601開發板試用體驗】cdk開發最快上手(helloworld例程)

    cdk內打開串口監視,打開串口,串口每隔一秒打印helloworld五、參考資料用戶手冊:開發板原理圖:平頭芯片開放社區:開發板-RVB2601
    發表于 01-15 21:47

    平頭RVB2601開發板試用體驗】開箱

    首先,非常感謝發燒友與平頭提供的RVB2601開發板試用機會。以下是RVB2601的開箱體驗報告:RV
    發表于 01-19 22:33

    平頭RVB2601開發板試用體驗】開發板初探與環境配置

    很高興批準了我的RVB2601開發板的試用申請,這一篇貼子將帶大家初探這塊RVB2601(以下簡稱RVB)的硬件資源以及簡單的開發環境配置流
    發表于 01-21 12:34

    平頭RVB2601開發板試用體驗】+w800的應用

    接收的數據,這給調試帶來很大困擾。二、實現w800接收數據的顯示《【平頭RVB2601開發板試用體驗】WiFi無線通信》,通過以下代碼顯示w800接收到的5個字節數據,以16進制方式
    發表于 02-14 10:26

    平頭RVB2601開發板試用 】開箱過程以及開發板介紹上電

    參加21ic組織的平頭講座,很榮幸能夠成為平頭RVB2601開發板實驗用戶,今天第一天收到
    發表于 03-08 06:35

    平頭RVB2601開發板試用體驗】開發板初探與環境配置流程

    的原因。 可供參考的資料CH2601芯片介紹CH2601用戶手冊RVB2601開發板用戶手冊文章轉載自:平頭
    發表于 03-08 08:31

    平頭RVB2601開發板試用體驗】開箱(預熱研究)

    收到了平頭RVB2601開發板,心情很激動,久聞這塊開發板目前已經很成熟,那邊學習和使用起來必然能事半功倍,更加深入熟悉
    發表于 03-08 09:02

    RVB2601 Gravity擴展板上線啦!!!全IO引腳擴展支持,專為RVB2601定制

    2021年的云棲大會上,平頭開發者展區曾展示過一款由DFRobot開發團隊基于RVB2601開發板
    發表于 05-27 15:58

    基于平頭生態芯片CH2601開發板介紹

    RVB2601是基于平頭生態芯片CH2601開發板,板載JTAG調試器,WiFi&BLE芯片W800,音頻ADCES7210,音頻DAC
    的頭像 發表于 12-02 16:14 ?3597次閱讀

    平頭芯片生態產品專家帶你玩轉RISC-V開發板

    RVB2601平頭一款基于玄鐵開源E906處理器的RISC-V生態開發板。作為一款通用型MCU開發板
    的頭像 發表于 12-03 14:14 ?3747次閱讀

    DFRobot推出一款為平頭RVB2601開發板定制的IO傳感器擴展板

    近日,上海智位機器人股份有限公司(DFRobot) 推出了一款專為平頭RVB2601開發板定制的IO傳感器擴展板——RVB2601 Gra
    的頭像 發表于 06-02 13:15 ?1701次閱讀
    DFRobot推出一款為<b class='flag-5'>平頭</b><b class='flag-5'>哥</b><b class='flag-5'>RVB2601</b><b class='flag-5'>開發板</b>定制的IO傳感器擴展板