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

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

【RT-Thread作品秀】智能天氣小站

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

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

虛擬商品不可退

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

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

【RT-Thread作品秀】智能天氣小站

作者:AlgoIdeas

概述

嵌入式開發(fā)需要多動(dòng)手,多實(shí)踐才能不斷取得成長(zhǎng)和進(jìn)步。第一次接觸新的知識(shí),難免會(huì)遇到挫折和困難,只要有足夠的耐心和不斷探索的信心,并不斷學(xué)習(xí)和實(shí)踐,同時(shí)有所思考,就會(huì)有收獲。智能天氣小站是一個(gè)很好的切入點(diǎn),同時(shí)自己作為一名STM32新手,第一次接觸RT-Thread、也第一次接觸TouchGFX,感受頗多,收獲頗豐。

開發(fā)環(huán)境

硬件:ART-Pi

RT-Thread版本:4.0.3

開發(fā)工具及版本:RT-ThreadStudio 2.0

ART-Pi SDK版本: SDK v1.0.1

RT-Thread使用情況概述

項(xiàng)目主要基于ART-Pi SDK中的art_pi_factory例程,并在例程基礎(chǔ)上增加其他軟件基礎(chǔ)組件。

內(nèi)核采用RT-Thread原生內(nèi)核,版本RT-Thread v4.0.3

組件列表:

rt_ota_lib – 升級(jí)相關(guān)

touchgfx_lib – TouchGFX相關(guān)界面實(shí)現(xiàn)

wlan_wiced_lib – WLAN庫(kù)

涉及軟件包:

EasyFlash-v4.1.0  -- 輕量級(jí)物聯(lián)網(wǎng)存儲(chǔ)庫(kù)

adbd-v1.1.1 – ADB遠(yuǎn)程調(diào)試

btstack-v0.0.1 – 藍(lán)牙協(xié)議棧

cJSON-v1.0.2 – JSON庫(kù)

dht11-latest – DHT11溫度傳感器庫(kù)

fal-v0.5.0 -

gt9147-latest  -- 觸摸驅(qū)動(dòng)

littlefs-v2.0.5 --

lwgps-latest  -- 輕量級(jí)GPS解析庫(kù)

netutils-v1.2.0 – 網(wǎng)絡(luò)相關(guān)工具

webclient-v2.1.2 – WEB客戶端

webnet-v2.0.2 – web接口相關(guān)實(shí)現(xiàn)

注:gps和presssensor相關(guān)包或模塊可供二次開發(fā)

 

硬件框架

主控芯片:STM32H750XB (ART-Pi開發(fā)板

圖形框架:TouchGFX

SD卡1張: 8G

溫濕度傳感器DHT11:使用GPIO獲取數(shù)據(jù)

網(wǎng)絡(luò):板端自帶的AP6212A WIFI+藍(lán)牙一體芯片

4.3寸電容屏:使用I2C總線驅(qū)動(dòng)觸摸(觸摸芯片GT9147),LCD使用RGB888格式

時(shí)間的獲?。豪套詭У腞TC+NTP自動(dòng)網(wǎng)絡(luò)對(duì)時(shí)

天氣的獲取:通過http客戶端的方式獲取網(wǎng)絡(luò)開放API接口的天氣數(shù)據(jù),目前主要從心知天氣(https://www.seniverse.com/api)獲取,

后續(xù)二次開發(fā),也可采用其他網(wǎng)站獲取,如openweathermap(https://api.openweathermap.org/data/2.5/)等

 

軟件框架說明

       軟件如果需要通過網(wǎng)絡(luò)獲取天氣信息,需要先進(jìn)行聯(lián)網(wǎng),目前支持藍(lán)牙配網(wǎng)(具體請(qǐng)參考ART-Pi官方教程),目前僅支持本地預(yù)先設(shè)置好的地區(qū)的溫度的獲取,后續(xù)可以擴(kuò)展UI設(shè)計(jì),或通過GPS定位來(lái)獲取位置信息。

       同時(shí),默認(rèn)支持DHT11數(shù)字溫度傳感器獲取本地的實(shí)時(shí)溫濕度數(shù)據(jù),并通過GUI進(jìn)行顯示。軟件主體框架如下圖所示:

       系統(tǒng)設(shè)置界面,支持將溫濕度數(shù)據(jù)存儲(chǔ)為日志文件到SD卡(后續(xù)可以二次開發(fā),讀取歷史文件并直接在UI界面顯示歷史數(shù)據(jù)),可以開啟或關(guān)閉該功能,同時(shí)支持自動(dòng)關(guān)屏設(shè)置。

軟件模塊說明

UI設(shè)計(jì)

GUI采用TouchGFX來(lái)設(shè)計(jì),目前采用的版本是TouchGFX 4.15.0,主要分為3個(gè)主要界面:主頁(yè)、系統(tǒng)設(shè)置和歷史溫度數(shù)據(jù)分析,分別如下圖圖1、圖2和圖3所示。

TouchGFX官方介紹

TouchGFX 4.13 版本是繼TouchGFX 4.12 之后的又一重要版本。4.13版具備了將動(dòng)畫推到60FPS的功能,還增加了可緩存容器、不完全幀緩沖區(qū)以及新的L8壓縮格式等性能,這表明了 ToughGFX 不斷追求優(yōu)化性能和持續(xù)迭代的匠心。4.13版本還解決了另一個(gè)問題:嵌入式系統(tǒng)開發(fā)人員的用戶界面可訪問性。通過將TouchGFX Generator集成到 STM32CubeMX 中,經(jīng)驗(yàn)較少的工程師在使用 TouchGFX 4.13 時(shí),可以通過 STM32CubeMX 這個(gè)廣為流行的 ST 實(shí)用軟件程序快速啟動(dòng)項(xiàng)目。這樣做的目的在于降低開發(fā)者入門門檻,讓專業(yè)人士和愛好者都能受益于這個(gè)交互式的高效解決方案。

天氣數(shù)據(jù)獲取

  1. 通過DHT11數(shù)字溫濕度傳感器獲??;

  2. 通過注冊(cè)心知天氣(https://www.seniverse.com/),采用其Weather API,并配合web相關(guān)API獲取當(dāng)?shù)氐奶鞖猓?/span>

演示效果

       視頻演示:

        界面設(shè)計(jì)效果:

圖1 主頁(yè)

圖2 系統(tǒng)設(shè)置

圖3 溫度歷史數(shù)據(jù)與分析

比賽感悟

        一次偶然翻看網(wǎng)頁(yè)的機(jī)會(huì),讓我看到了 RT-Thread x STM32 全連接創(chuàng)意創(chuàng)客大賽,于是順手點(diǎn)了進(jìn)去,并于第二天才最終確認(rèn)參加比賽。在這近一天的時(shí)間里,經(jīng)歷了比較糾結(jié)的思想歷程。

首先,工作雖然一直涉及到嵌入式Linux或Android,但未涉及過RT-Thread,且沒有任何STM32使用或開發(fā)經(jīng)驗(yàn),不清楚這個(gè)學(xué)習(xí)的過程需要多久,畢竟大賽1個(gè)月,除去平時(shí)還需要工作和周末的其他安排,時(shí)間倍感不夠。而且,這個(gè)過程是需要有一定的積累才能出好的作品。時(shí)間方面和學(xué)習(xí)成本方面,讓自己剛開始很猶豫,甚至不打算報(bào)名。

其次,報(bào)名前一天才去大概了解了下RT-Thread,是什么樣的一款RTOS,了解到RT-Thread是一個(gè)集實(shí)時(shí)操作系統(tǒng)(RTOS)內(nèi)核、中間件組件和開發(fā)者社區(qū)于一體的技術(shù)平臺(tái),具有極小內(nèi)核、穩(wěn)定可靠、簡(jiǎn)單易用、高度可伸縮、組件豐富等特點(diǎn)。

剛開始看到簡(jiǎn)介,最吸引我的還是,它是用C語(yǔ)言開發(fā)的,且包含豐富的組件,這一點(diǎn)于平時(shí)工作有著不可分割的關(guān)系。同時(shí),考慮到官方還提供了ART-Pi開發(fā)板,對(duì)于手上沒有任何STM32硬件開發(fā)板的我來(lái)說,無(wú)疑降低的入門硬件的門檻。

主要由于第二點(diǎn)與工作比較契合,第二天最終還是決定先報(bào)名參加比賽。

到比賽前作品的提交,自己其實(shí)算比較晚提交了。期間,利用空閑時(shí)間,從頭到尾,熟悉了STM32相關(guān)工具的使用,及UI設(shè)計(jì)工具TouchGFX Desinger的使用,同時(shí)也熟悉了官方的IDE工具 —— RT-Studio,以及最最核心的RT-Thread的使用,及一些設(shè)計(jì)理念。

作為一個(gè)新手或小白,第一次燒寫程序都存在問題,后面閱讀了相關(guān)文檔,才搞定。類似這樣的事情,期間也都通過查閱相關(guān)文檔,或通過網(wǎng)絡(luò)及熱心的網(wǎng)友才一一解決,在此表示感謝。

比賽前期,計(jì)劃是做一個(gè)功能強(qiáng)大的智能天氣助手,因此也申請(qǐng)了氣壓傳感器,剛開始接觸這款氣壓傳感器也是一頭霧水,不清楚如果使用,需要用到SPI,沒有現(xiàn)成的可以直接拿來(lái)用的驅(qū)動(dòng),后面經(jīng)過差不多幾天折騰,驅(qū)動(dòng)有了,但通信還是沒有成功,不得不調(diào)整方案,這一點(diǎn)是沒有預(yù)估到的,所以開發(fā)計(jì)劃得做詳細(xì)些,就像平時(shí)工作的項(xiàng)目開發(fā)一樣。

最終,作品通過DHT11和網(wǎng)絡(luò)獲取本地天氣,保留了定位功能,需要額外的硬件。雖然,在其他人看來(lái),難度不大,但是對(duì)于第一次接觸STM32、第一次接觸TouchGFX,第一次接觸RT-Thread的人來(lái)說,有些為難,甚至,遇到一些不知下手的BUG,曾一度想放棄提交作品,放棄比賽,即使放棄自己也學(xué)到了東西。還好自己通過不斷地自我反省,不斷的去學(xué)習(xí)相關(guān)知識(shí),和家人和同時(shí)的關(guān)切,才堅(jiān)持了下來(lái),才完成了此次比賽。在此,也謝謝他(她)們,相信通過此次比賽,未來(lái)在其他新的領(lǐng)域也會(huì)有所精進(jìn),也相信未來(lái)會(huì)有更加好的關(guān)于IOT,關(guān)于RT-Thread的作品,無(wú)論是生活上的,還是工作上的。

為了未來(lái),加油!加油!加油!

 

  • 代碼地址.txt
    描述:代碼地址
  • 【RT-Thread作品秀】智能天氣小站.docx
    描述:智能天氣小站簡(jiǎn)介

相關(guān)推薦

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