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

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

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

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

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

虛擬商品不可退

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

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

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

作者:AlgoIdeas

概述

嵌入式開發(fā)需要多動手,多實踐才能不斷取得成長和進(jìn)步。第一次接觸新的知識,難免會遇到挫折和困難,只要有足夠的耐心和不斷探索的信心,并不斷學(xué)習(xí)和實踐,同時有所思考,就會有收獲。智能天氣小站是一個很好的切入點,同時自己作為一名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使用情況概述

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

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

組件列表:

rt_ota_lib – 升級相關(guān)

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

wlan_wiced_lib – WLAN

涉及軟件包:

EasyFlash-v4.1.0  -- 輕量級物聯(lián)網(wǎng)存儲庫

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

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

cJSON-v1.0.2 – JSON庫

dht11-latest – DHT11溫度傳感器

fal-v0.5.0 -

gt9147-latest  -- 觸摸驅(qū)動

littlefs-v2.0.5 --

lwgps-latest  -- 輕量級GPS解析庫

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

webclient-v2.1.2 – WEB客戶端

webnet-v2.0.2 – web接口相關(guān)實現(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ū)動觸摸(觸摸芯片GT9147),LCD使用RGB888格式

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

天氣的獲?。和ㄟ^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)(具體請參考ART-Pi官方教程),目前僅支持本地預(yù)先設(shè)置好的地區(qū)的溫度的獲取,后續(xù)可以擴展UI設(shè)計,或通過GPS定位來獲取位置信息。

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

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

軟件模塊說明

UI設(shè)計

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

TouchGFX官方介紹

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

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

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

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

演示效果

       視頻演示:

        界面設(shè)計效果:

圖1 主頁

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

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

比賽感悟

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

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

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

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

主要由于第二點與工作比較契合,第二天最終還是決定先報名參加比賽。

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

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

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

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

為了未來,加油!加油!加油!

 

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

相關(guān)推薦

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