01概述
學習一門新技術,最好的辦法是帶著需求去學習,在項目中不斷磨練自己,而不是漫無目的的去學,有了需求驅動,才更容易獲得學習成果和完成項目后的成就感。
本項目涉及到的技術有:RT-Thread系統、TouchGFX、MQTT、HTTP、JSON、微信小程序、面向對象編程思想等。每個關鍵詞里都有很多值得深究的技術細節。
本項目所要實現的功能有:
2. 顯示屏第二頁可以進行傳感器閾值設置和開關控制
3. 傳感器:溫濕度傳感器(SHT30),空氣質量傳感器 (MQ135)
4. 傳感器閾值語音提醒,鬧鐘語音提醒
5. 傳感器數值可以通過微信小程序顯示,可以通過微信小程序進行開關控制、設置閾值和鬧鐘時間
6. 支持二次開發,增加更多擴展功能
02硬件框架
硬件端:
操作系統:RT-Thread v4.0.2
GUI:TouchGFX
開發工具:MDK5.29、TouchGFX 4.13.0 Designer、STM32CubeMX5.6.0、微信開發者工具
時間:軟件模擬RTC+NTP自動網絡對時
天氣:通過http客戶端get心知天氣網絡API獲取天氣信息
溫濕度:使用I2C總線獲取傳感器SHT30模塊的數據
空氣質量:使用ADC和IO口讀取傳感器MQ-135(氨氣、甲苯)的數據
鏈接網絡:使用ESP8266當作無線網卡來鏈接網絡
5寸電容屏:LCD使用RGB565格式
語音輸出:使用中文TTS文字轉語音模塊,通過UART發送文字轉換語音
服務器端:
云端服務器:阿里云物聯網平臺
通信方式:MQTT
微信小程序端:
編程語言:CSS、XML、JavaScript
通信方式:MQTT over WebSocket
03軟件框架
設備連接物聯網平臺,與物聯網平臺進行數據通信。物聯網平臺可將設備數據流轉到其他阿里云產品中進行存儲和處理。以下是物聯網系統的拓撲架構:
本項目的物聯網后臺部分采用的是阿里云物聯網平臺,借助阿里云豐富的服務,可為后期擴展更多實用的功能,STM32硬件平臺作為設備終端,人機設備采用微信小程序。04RT-Thread使用情況概述
RT-Thread系統介紹:
RT-Thread的內核對象模型是一種非常有趣的面向對象實現方式。系統級的基礎設施都是一種內核對象,例如線程,信號量,互斥量,事件,郵箱,消息隊列和定時器,內存池,設備驅動等。
對于每一種具體內核對象和對象控制塊,除了基本結構外,還有自己的擴展屬性(私有屬性)。因此從面向對象的觀點,可以認為每一種具體對象是抽象對象的派生,繼承了基本對象的屬性并在此基礎上擴展了與自己相關的屬性。下圖則顯示了 RT-Thread 中各類內核對象的派生和繼承關系:
在對象管理模塊中,定義了通用的數據結構,用來保存各種對象的共同屬性,各種具體對象只需要在此基礎上加上自己的某些特別的屬性,就可以清楚的表示自己的特征。這種設計方法有兩大優點:
提高了系統的可重用性和擴展性,增加新的對象類別很容易,只需要繼承通用對象的屬性再加少量擴展即可;
提供統一的對象操作方式,簡化了各種具體對象的操作,提高了系統的可靠性。
RT-Thread使用情況:
內核部分:
線程間同步:信號量、互斥量
線程間通信:郵箱、消息隊列
內存管理:memheap管理算法
I/O 設備管理:PIN設備、I2C設備、UART設備、ADC設備、RTC設備、TOUCH設備
組件部分:
FinSH控制臺;
ulog日志;
netdev網卡;
AT命令;
SAL 套接字抽象層;
軟件包部分:
AT設備軟件包:at_device-latest;
TLS軟件包:mbedtls-latest;
JSON軟件包:cJSON-latest;
網絡工具包:netutils-latest;
觸摸屏軟件包:gt9147-latest;
sht3x軟件包:sht3x-latest;
webclient軟件包:webclient-latest;
分類使用說明:
用于連接網絡的部分:UART設備;netdev網卡;AT命令;SAL 套接字抽象層;at_device-latest;
用于同步時鐘的部分:RTC設備;netutils-latest;
用于獲取天氣的部分:cJSON-latest;webclient-latest;
用于獲取溫濕度的部分:I2C設備;sht3x-latest;
用于獲取空氣質量的部分:ADC設備;PIN設備;
用于觸摸的部分:I2C設備;gt9147-latest;
用于鏈接阿里云物聯網平臺的部分:ali-iotkit-latest;mbedtls-latest;cJSON-latest;
05軟件模塊說明
TouchGFX介紹:
TouchGFX 4.13版具備了將動畫推到60FPS的功能,還增加了可緩存容器、不完全幀緩沖區以及新的L8壓縮格式等性能,這表明了 ToughGFX 不斷追求優化性能和持續迭代的匠心。4.13版本還解決了另一個問題:嵌入式系統開發人員的用戶界面可訪問性。通過將TouchGFX Generator集成到 STM32CubeMX 中,經驗較少的工程師在使用 TouchGFX 4.13 時,可以通過 STM32CubeMX 這個廣為流行的 ST 實用軟件程序快速啟動項目。這樣做的目的在于降低開發者入門門檻,讓專業人士和愛好者都能受益于這個交互式的高效解決方案。
責任編輯:pj
-
傳感器
+關注
關注
2552文章
51341瀏覽量
755521 -
物聯網
+關注
關注
2912文章
44868瀏覽量
375559 -
軟件包
+關注
關注
0文章
104瀏覽量
11624
原文標題:【RT-Thread作品秀】使用RT-Thread和TouchGFX實現DIY數字儀表
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論