加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

【RT-Thread作品秀】智能管家精靈

2020/12/22
605
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
方塊圖(4)
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

【RT-Thread作品秀】智能管家精靈

作者:七星巖

概述(說明應(yīng)用產(chǎn)生的背景、實(shí)現(xiàn)功能)

主控平臺(tái)以 ART-PI 開發(fā)板為核心,主要任務(wù)是抓取網(wǎng)絡(luò)數(shù)據(jù)、如天氣、疫情等,并由OLED實(shí)時(shí)顯示最新數(shù)據(jù),同時(shí)將抓取的數(shù)據(jù)當(dāng)做log文件存儲(chǔ)在SD卡上,供后續(xù)分析使用。

并推送室內(nèi)環(huán)境信息如溫度,濕度到ONENET云端,,后續(xù)將擴(kuò)展更多室內(nèi)傳感器,并同步的云端。由于時(shí)間原因,計(jì)劃要做的攝像頭室外監(jiān)控,圖片、視頻傳送沒有在本次提交中實(shí)現(xiàn)。

開發(fā)環(huán)境(所采用的軟、硬件方案)

硬件

  1. 主控:ART-PI(STM32H750XB
  2. MicoKit-Ext 板

軟件

  1. RT-Thread 版本:RT-Thread V 4.0.3
  2. 開發(fā)工具及版本:RT-studio 2.0.0

RT-Thread使用情況概述(簡要總結(jié)下應(yīng)用中RT-Thread使用情況:內(nèi)核部分、組件部分、軟件包部分、內(nèi)核、其他)

(1)內(nèi)核部分:調(diào)度器,信號(hào)量,libcpu/BSP。

 調(diào)度器:創(chuàng)建多個(gè)線程來實(shí)現(xiàn)不同的工作。

信號(hào)量:用來同步線程。

libcpu/BSP:UART 驅(qū)動(dòng)。

(2)組件部分:UART 框架,

UART框:使用UART框架來與ART-PI-DOCK擴(kuò)展板進(jìn)行數(shù)據(jù)交互。

Fal Flash 抽象: Flash 抽象層,是對(duì) Flash 及基于 Flash 的分區(qū)進(jìn)行管理、操作的抽象層,對(duì)上層統(tǒng)一了 Flash 及 分區(qū)操作的 API。

LittleFs: 適合嵌入式系統(tǒng)的小而安全的文件系統(tǒng)

(3)軟件包部分:

EasyFlash: 一款開源的輕量級(jí)嵌入式Flash存儲(chǔ)器

cJSON:C 語言實(shí)現(xiàn)的極簡的解析 JSON 格式的軟件包。

Dht11: 讀取DHT11數(shù)字溫濕度傳感器的溫度和濕度值。

WebNetClient 軟件包:由 RT-Thread 自主研發(fā)的,基于 HTTP 協(xié)議的 Web 服務(wù)器實(shí)現(xiàn),它不僅提供設(shè)備與 HTTP Client 通訊的基本功能, 而且支持多種模塊功能擴(kuò)展,且資源占用少、可裁剪性強(qiáng),充分滿足 開發(fā)者對(duì)嵌入式設(shè)備服務(wù)器的功能需求。

Onenet: RT-Thread 針對(duì) OneNET 平臺(tái)連接做的的適配,通過 這個(gè)軟件包,可以讓設(shè)備在 RT-Thread 上非常方便的連接 OneNet 平臺(tái),完成數(shù)據(jù)的發(fā)送、接收、設(shè)備的注冊和控制等功能。

MbedTLS: C 編程語言以最小的編碼占用空間實(shí)現(xiàn)了 SSL/TLS 功能及各種加密算法,易于理解、使用、集成和擴(kuò)展,方便開發(fā)人員輕松地在嵌入式產(chǎn)品中使用 SSL/TLS 功能.

Netutils: RT-Thread 可用的全部網(wǎng)絡(luò)小工具集合。

Pahomqtt: 是 Eclipse 實(shí)現(xiàn)的基于 MQTT 協(xié)議的客戶端,本軟件包是在 Eclipse paho-mqtt 源碼包的基礎(chǔ)上設(shè)計(jì)的一套 MQTT 客戶端程序。

u8g2:單色屏驅(qū)動(dòng),現(xiàn)在移植到了 rt-thread,可以滿足各種各種各樣的需求。

硬件框架(概述應(yīng)用所采用的硬件方案框圖,并對(duì)核心部分做介紹)

硬件部分主要是ART-PI + 一塊IOT外擴(kuò)板

軟件框架說明(介紹應(yīng)用所采用的軟件方案框圖、流程圖等,并加以解說)

軟件部分也相對(duì)簡單,基于ART-PI 的WiFi樣例程序,加上幾個(gè)獨(dú)立的模塊(流程圖見文檔)

  1. 按鍵掃描模塊
  2. OLED數(shù)據(jù)顯示模塊
  3. DHT11設(shè)備溫濕度讀取模塊
  4. 心知天氣預(yù)報(bào)API解析模塊
  5. 疫情數(shù)據(jù)解析模塊(不完善)
  6. 本地?cái)?shù)據(jù)上傳OneNet云

軟件模塊說明(介紹應(yīng)用軟件關(guān)鍵部分的邏輯、采用的實(shí)現(xiàn)方式等)

主要函數(shù)說明:

(1)get_Weather_Data():讀取并解析心知API天氣數(shù)據(jù),寫入封裝數(shù)據(jù)結(jié)構(gòu),保存到SD卡log文件。

(2)get_NCOV_Data:讀取并解析騰訊疫情API數(shù)據(jù)寫入封裝數(shù)據(jù)結(jié)構(gòu),;

(3)oled_display:實(shí)時(shí)掃描三個(gè)按鍵,并得到顯示狀態(tài),并根據(jù)當(dāng)前狀態(tài)顯示指定頁面;

(4)main_interface:,根據(jù)網(wǎng)絡(luò)通斷顯示圖標(biāo),根據(jù)按鍵左移右移顯示當(dāng)前狀態(tài),根據(jù)選中主題,顯示指定頁面;

(5)oled_draw_menu:畫出主頁面布局

(6)oled_time_show:獲取實(shí)時(shí)時(shí)間,并在OLED屏幕,畫出小時(shí):分鐘,和年月日。

(7)oled_weather_report:在OLED屏幕畫出室內(nèi)溫濕度和天氣預(yù)報(bào)的溫度天氣情況。

(8)oled_covid_report:在OLED屏幕畫出疫情解析所得數(shù)據(jù)。

(9)onenet_upload_entry onenet同步任務(wù)。

(10)onenet_mqtt_upload_digit:onenet網(wǎng)絡(luò)平臺(tái)上溫度傳數(shù)據(jù)。

(11)key_thread_entry:按鍵掃描任務(wù)。

演示效果(演示效果請采用3張高清圖片,并錄制一段不少于1min視頻解說應(yīng)用所實(shí)現(xiàn)的效果,視頻上傳至B站或者騰訊視頻或其他視頻平臺(tái),給出鏈接即可)

演示視頻:

 

代碼地址(代碼可上傳至gitee,給出鏈接地址)

https://gitee.com/xianting77/art-pi-smart-assist.git

比賽感悟(可以圍繞這次比賽學(xué)到了什么,克服了哪些困難,有哪些收獲,不低于200字)

認(rèn)識(shí)RT-thread應(yīng)該有10年了,10年來,我一直關(guān)注著RT-thread,連續(xù)參加來17,18,19年的開發(fā)者大會(huì),并試用過基于RT-thread的IOT camera, 柿餅。可以說是看著RT成長起來的,本次ART-PI比賽我第一時(shí)間報(bào)名參與了,首先這塊板子做的很精致,板子的配置,硬件資源相當(dāng)牛逼,看過就像試用。第二,RT提供了那么多強(qiáng)悍的工具,ENV,RT-STUDIO…那么多有價(jià)值的軟件包,只有使用才能體會(huì)這些很棒的輪子給開發(fā)帶來的便利。第三,RT的開發(fā)生態(tài)和社區(qū)建設(shè)已成氣候,對(duì)于開發(fā)者來說,無論新手還是大咖,都能一起互相學(xué)習(xí),彼此進(jìn)步,一個(gè)人做事很孤單,一群人做事能走得更遠(yuǎn)。

起初我想用ART-PI驅(qū)動(dòng)自家的智能、小車,但是AP6212藍(lán)牙模塊的驅(qū)動(dòng)沒有調(diào)試出來,所以選擇了相對(duì)參考多一些的智能家居類課題,我就乘著最后一兩周的時(shí)間調(diào)試了智能管家精靈。談不上作品,只想用RT的軟件平臺(tái)做有一些值得去做的事,目前疫情播報(bào)模塊還沒有最終完善,由于騰訊API的的疫情數(shù)據(jù)有120多K,task的棧大小沒有設(shè)置的足夠大,實(shí)際上我只要JSON文件開頭的那部分?jǐn)?shù)據(jù),很多在內(nèi)存中的數(shù)據(jù)都是無用的,后續(xù)要想個(gè)辦法,截取下有用的JSON數(shù)據(jù)。另外選擇騰訊的API,是因?yàn)樵瓉硇虻亩∠銛?shù)據(jù)API掛掉了,無奈用了這個(gè)API。

由于網(wǎng)上購買的RGB屏幕還沒有到手,攝像頭視頻和TOUCH-GFX部分來不及做了。所以想到用手上的OLED和按鍵及U8G2來做一個(gè)簡單人機(jī)交互。

整體來說,管家精靈比較簡單,不過這已然是下班后自己擠時(shí)間搗鼓出來的。但是做下來確實(shí)體驗(yàn)到RT,軟件包和框架的強(qiáng)大,初步的完成一個(gè)業(yè)務(wù)需求真的很快,而且有很好的LOG提醒,各種輔助工具,用下來可以說是愛不釋手。為國產(chǎn)OS,Rtthread默默的付出點(diǎn)贊,也堅(jiān)定了我將一直跟隨RT精進(jìn)技術(shù),做有益的嘗試,做有價(jià)值的練習(xí)。

本次小嘗試的總結(jié)就至此接近尾聲。對(duì)于我來說,無論這份作業(yè)合不合格,我將繼續(xù)RT之路。向優(yōu)秀的小伙伴學(xué)習(xí),后續(xù)我將更深入結(jié)合軟件包使用開發(fā)板的其他硬件模塊。謝謝ART-PI開源硬件團(tuán)隊(duì)的付出,沒有你們的硬件,我將無法體驗(yàn)這么接地氣的開發(fā)方式。

 

 

 

 

 

  • hardware2.jpg
    描述:基本
  • 代碼地址.txt
    描述:代碼
  • 大賽作品提交_智能管家精靈 V1.1.docx
    描述:貴在參與

相關(guān)推薦

電子產(chǎn)業(yè)圖譜