01概述
學(xué)習(xí)一門新技術(shù),最好的辦法是帶著需求去學(xué)習(xí),在項目中不斷磨練自己,而不是漫無目的的去學(xué),有了需求驅(qū)動,才更容易獲得學(xué)習(xí)成果和完成項目后的成就感。
本項目涉及到的技術(shù)有:RT-Thread系統(tǒng)、TouchGFX、MQTT、HTTP、JSON、微信小程序、面向?qū)ο?a target="_blank">編程思想等。每個關(guān)鍵詞里都有很多值得深究的技術(shù)細節(jié)。
本項目所要實現(xiàn)的功能有:
1. 顯示屏第一頁顯示時鐘、近三天天氣預(yù)報和傳感器數(shù)值
2. 顯示屏第二頁可以進行傳感器閾值設(shè)置和開關(guān)控制
3. 傳感器:溫濕度傳感器(SHT30),空氣質(zhì)量傳感器 (MQ135)
4. 傳感器閾值語音提醒,鬧鐘語音提醒
5. 傳感器數(shù)值可以通過微信小程序顯示,可以通過微信小程序進行開關(guān)控制、設(shè)置閾值和鬧鐘時間
6. 支持二次開發(fā),增加更多擴展功能
02硬件框架

硬件端:
主控芯片:STM32F746IGT6
操作系統(tǒng):RT-Thread v4.0.2
GUI:TouchGFX
開發(fā)工具:MDK5.29、TouchGFX 4.13.0 Designer、STM32CubeMX5.6.0、微信開發(fā)者工具
時間:軟件模擬RTC+NTP自動網(wǎng)絡(luò)對時
天氣:通過http客戶端get心知天氣網(wǎng)絡(luò)API獲取天氣信息
溫濕度:使用I2C總線獲取傳感器SHT30模塊的數(shù)據(jù)
空氣質(zhì)量:使用ADC和IO口讀取傳感器MQ-135(氨氣、甲苯)的數(shù)據(jù)
鏈接網(wǎng)絡(luò):使用ESP8266當(dāng)作無線網(wǎng)卡來鏈接網(wǎng)絡(luò)
5寸電容屏:LCD使用RGB565格式
語音輸出:使用中文TTS文字轉(zhuǎn)語音模塊,通過UART發(fā)送文字轉(zhuǎn)換語音
服務(wù)器端:
云端服務(wù)器:阿里云物聯(lián)網(wǎng)平臺
通信方式:MQTT
微信小程序端:
編程語言:CSS、XML、JavaScript
通信方式:MQTT over WebSocket
03軟件框架
設(shè)備連接物聯(lián)網(wǎng)平臺,與物聯(lián)網(wǎng)平臺進行數(shù)據(jù)通信。物聯(lián)網(wǎng)平臺可將設(shè)備數(shù)據(jù)流轉(zhuǎn)到其他阿里云產(chǎn)品中進行存儲和處理。以下是物聯(lián)網(wǎng)系統(tǒng)的拓撲架構(gòu):
本項目的物聯(lián)網(wǎng)后臺部分采用的是阿里云物聯(lián)網(wǎng)平臺,借助阿里云豐富的服務(wù),可為后期擴展更多實用的功能,STM32硬件平臺作為設(shè)備終端,人機設(shè)備采用微信小程序。04RT-Thread使用情況概述
RT-Thread系統(tǒng)介紹:
RT-Thread的內(nèi)核對象模型是一種非常有趣的面向?qū)ο髮崿F(xiàn)方式。系統(tǒng)級的基礎(chǔ)設(shè)施都是一種內(nèi)核對象,例如線程,信號量,互斥量,事件,郵箱,消息隊列和定時器,內(nèi)存池,設(shè)備驅(qū)動等。
對于每一種具體內(nèi)核對象和對象控制塊,除了基本結(jié)構(gòu)外,還有自己的擴展屬性(私有屬性)。因此從面向?qū)ο蟮挠^點,可以認為每一種具體對象是抽象對象的派生,繼承了基本對象的屬性并在此基礎(chǔ)上擴展了與自己相關(guān)的屬性。下圖則顯示了 RT-Thread 中各類內(nèi)核對象的派生和繼承關(guān)系:

在對象管理模塊中,定義了通用的數(shù)據(jù)結(jié)構(gòu),用來保存各種對象的共同屬性,各種具體對象只需要在此基礎(chǔ)上加上自己的某些特別的屬性,就可以清楚的表示自己的特征。這種設(shè)計方法有兩大優(yōu)點:
提高了系統(tǒng)的可重用性和擴展性,增加新的對象類別很容易,只需要繼承通用對象的屬性再加少量擴展即可;
提供統(tǒng)一的對象操作方式,簡化了各種具體對象的操作,提高了系統(tǒng)的可靠性。
RT-Thread使用情況:
內(nèi)核部分:
線程間同步:信號量、互斥量
線程間通信:郵箱、消息隊列
內(nèi)存管理:memheap管理算法
I/O 設(shè)備管理:PIN設(shè)備、I2C設(shè)備、UART設(shè)備、ADC設(shè)備、RTC設(shè)備、TOUCH設(shè)備
組件部分:
FinSH控制臺;
ulog日志;
netdev網(wǎng)卡;
AT命令;
SAL 套接字抽象層;
軟件包部分:
阿里物聯(lián)網(wǎng)SDK包:ali-iotkit-latest;
AT設(shè)備軟件包:at_device-latest;
TLS軟件包:mbedtls-latest;
JSON軟件包:cJSON-latest;
網(wǎng)絡(luò)工具包:netutils-latest;
觸摸屏軟件包:gt9147-latest;
sht3x軟件包:sht3x-latest;
webclient軟件包:webclient-latest;
分類使用說明:
用于連接網(wǎng)絡(luò)的部分:UART設(shè)備;netdev網(wǎng)卡;AT命令;SAL 套接字抽象層;at_device-latest;
用于同步時鐘的部分:RTC設(shè)備;netutils-latest;
用于獲取天氣的部分:cJSON-latest;webclient-latest;
用于獲取溫濕度的部分:I2C設(shè)備;sht3x-latest;
用于獲取空氣質(zhì)量的部分:ADC設(shè)備;PIN設(shè)備;
用于觸摸的部分:I2C設(shè)備;gt9147-latest;
用于鏈接阿里云物聯(lián)網(wǎng)平臺的部分:ali-iotkit-latest;mbedtls-latest;cJSON-latest;
05軟件模塊說明
TouchGFX介紹:
TouchGFX 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è)人士和愛好者都能受益于這個交互式的高效解決方案。
責(zé)任編輯:pj
-
傳感器
+關(guān)注
關(guān)注
2578文章
55582瀏覽量
794344 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2950文章
48156瀏覽量
418909 -
軟件包
+關(guān)注
關(guān)注
0文章
117瀏覽量
12179
原文標題:【RT-Thread作品秀】使用RT-Thread和TouchGFX實現(xiàn)DIY數(shù)字儀表
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
60W單輸出帶電池充電器(UPS功能)PSC - 60系列電源解析
匠芯創(chuàng)D21x芯片驅(qū)動兩輪電動車智慧升級
Faraday Future公布超級智臉系統(tǒng)的最新功能細節(jié)
STM32H750B-DK開發(fā)板 快速上手&TouchGFX入門
DS90UB933-Q1:1-MP/60-fps相機的FPD-Link III串行器深度解析
使用Firebase AI Logic生成圖像模型的兩種新功能
KiCad 10 會有哪些新功能(二)?
【EASY EAI Orin Nano開發(fā)板試用體驗】使用和LVGL的anim(簡易動畫)和animimg(圖像動畫)控件組合實現(xiàn)復(fù)雜的動畫功能
API如何加速電商新功能上線
TouchGFX4.13版具備了將動畫推到60FPS的新功能
評論