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

硬件端:
主控芯片:STM32F746IGT6
操作系統(tǒng):RT-Thread v4.0.2
GUI:TouchGFX
開發(fā)工具:MDK5.29、TouchGFX 4.13.0 Designer、STM32CubeMX5.6.0、微信開發(fā)者工具
時(shí)間:軟件模擬RTC+NTP自動(dòng)網(wǎng)絡(luò)對(duì)時(shí)
天氣:通過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)平臺(tái)
通信方式:MQTT
微信小程序端:
編程語言:CSS、XML、JavaScript
通信方式:MQTT over WebSocket
03軟件框架
設(shè)備連接物聯(lián)網(wǎng)平臺(tái),與物聯(lián)網(wǎng)平臺(tái)進(jìn)行數(shù)據(jù)通信。物聯(lián)網(wǎng)平臺(tái)可將設(shè)備數(shù)據(jù)流轉(zhuǎn)到其他阿里云產(chǎn)品中進(jìn)行存儲(chǔ)和處理。以下是物聯(lián)網(wǎng)系統(tǒng)的拓?fù)浼軜?gòu):
本項(xiàng)目的物聯(lián)網(wǎng)后臺(tái)部分采用的是阿里云物聯(lián)網(wǎng)平臺(tái),借助阿里云豐富的服務(wù),可為后期擴(kuò)展更多實(shí)用的功能,STM32硬件平臺(tái)作為設(shè)備終端,人機(jī)設(shè)備采用微信小程序。04RT-Thread使用情況概述
RT-Thread系統(tǒng)介紹:
RT-Thread的內(nèi)核對(duì)象模型是一種非常有趣的面向?qū)ο髮?shí)現(xiàn)方式。系統(tǒng)級(jí)的基礎(chǔ)設(shè)施都是一種內(nèi)核對(duì)象,例如線程,信號(hào)量,互斥量,事件,郵箱,消息隊(duì)列和定時(shí)器,內(nèi)存池,設(shè)備驅(qū)動(dòng)等。
對(duì)于每一種具體內(nèi)核對(duì)象和對(duì)象控制塊,除了基本結(jié)構(gòu)外,還有自己的擴(kuò)展屬性(私有屬性)。因此從面向?qū)ο蟮挠^點(diǎn),可以認(rèn)為每一種具體對(duì)象是抽象對(duì)象的派生,繼承了基本對(duì)象的屬性并在此基礎(chǔ)上擴(kuò)展了與自己相關(guān)的屬性。下圖則顯示了 RT-Thread 中各類內(nèi)核對(duì)象的派生和繼承關(guān)系:

在對(duì)象管理模塊中,定義了通用的數(shù)據(jù)結(jié)構(gòu),用來保存各種對(duì)象的共同屬性,各種具體對(duì)象只需要在此基礎(chǔ)上加上自己的某些特別的屬性,就可以清楚的表示自己的特征。這種設(shè)計(jì)方法有兩大優(yōu)點(diǎn):
提高了系統(tǒng)的可重用性和擴(kuò)展性,增加新的對(duì)象類別很容易,只需要繼承通用對(duì)象的屬性再加少量擴(kuò)展即可;
提供統(tǒng)一的對(duì)象操作方式,簡化了各種具體對(duì)象的操作,提高了系統(tǒng)的可靠性。
RT-Thread使用情況:
內(nèi)核部分:
線程間同步:信號(hào)量、互斥量
線程間通信:郵箱、消息隊(duì)列
內(nèi)存管理:memheap管理算法
I/O 設(shè)備管理:PIN設(shè)備、I2C設(shè)備、UART設(shè)備、ADC設(shè)備、RTC設(shè)備、TOUCH設(shè)備
組件部分:
FinSH控制臺(tái);
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;
用于同步時(shí)鐘的部分: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)平臺(tái)的部分:ali-iotkit-latest;mbedtls-latest;cJSON-latest;
05軟件模塊說明
TouchGFX介紹:
TouchGFX 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è)交互式的高效解決方案。
責(zé)任編輯:pj
-
傳感器
+關(guān)注
關(guān)注
2573文章
53949瀏覽量
782004 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2938文章
47007瀏覽量
404085 -
軟件包
+關(guān)注
關(guān)注
0文章
112瀏覽量
12066
原文標(biāo)題:【RT-Thread作品秀】使用RT-Thread和TouchGFX實(shí)現(xiàn)DIY數(shù)字儀表
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
【EASY EAI Orin Nano開發(fā)板試用體驗(yàn)】使用和LVGL的anim(簡易動(dòng)畫)和animimg(圖像動(dòng)畫)控件組合實(shí)現(xiàn)復(fù)雜的動(dòng)畫功能
API如何加速電商新功能上線
【BPI-CanMV-K230D-Zero開發(fā)板體驗(yàn)】無線網(wǎng)絡(luò)攝像頭(RTSP 推流 1080P 60fps)
啟用了touchgfx,X—CUBE-AI的device application就無法選擇了?
將NXP ISP與imx900傳感器集成,將流推送到顯示時(shí),會(huì)在特定時(shí)間間隔內(nèi)隨著流一起出現(xiàn)粉紅色閃爍怎么解決?
DLPC3479每次投影幀率切換(如從60FPS切換到30FPS),改變后的幀率生效時(shí)間是多久?
TouchGFX助力STM32打造高效GUI顯示方案
亞馬遜云科技發(fā)布Amazon Bedrock新功能
Amazon Q Business新功能發(fā)布,助力企業(yè)提效
Amazon Q Business發(fā)布新功能 助力企業(yè)提升內(nèi)部工作效率
請(qǐng)問DS90UB953和DS90UB954的組合,是否支持4M以上分辨率的攝像頭?
【新品體驗(yàn)】貝啟科技BQ3568HM開源鴻蒙開發(fā)板免費(fèi)試用
解析NVIDIA JetPack 6.1的新功能

TouchGFX4.13版具備了將動(dòng)畫推到60FPS的新功能
評(píng)論