【RT-Thread作品秀】溫濕度監(jiān)測設計
作者:Star.Water
概述
產(chǎn)生背景:當前溫濕度監(jiān)控設備大多只能顯示當前環(huán)境參數(shù),不能查看歷史記錄和歷史曲線圖,不能直觀的顯示溫度濕度的變化情況。所以本次設計預計做出一款可以顯示當前和歷史曲線的產(chǎn)品。
實現(xiàn)功能:儀表盤顯示當期的溫度,濕度;歷史曲線顯示歷史數(shù)據(jù)。
開發(fā)環(huán)境
硬件:ART-Pi
RT-Thread版本:rt-thread-v4.0.2
開發(fā)工具及版本:MDK5.21
RT-Thread使用情況概述
移植RT-Thread到STM32H50,設置系統(tǒng)滴答時鐘產(chǎn)生1ms中斷,驅動RT-Thread.
#define RT_HEAP_SIZE (1024*40) //1024
#define RT_MAIN_THREAD_STACK_SIZE 1024
#define RT_USING_HEAP
其他為默認
硬件框架
以ART-Pi為主,驅動1024*600 7寸電容觸摸屏,阿里云stm32L4開發(fā)板負責傳感器參數(shù)采集,數(shù)據(jù)記錄寫入SD卡。ART-Pi和stm32L4都是用RT-Thread RTOS,通過串口通訊。
屏幕:
屏幕轉接板參考正點原子和野火的屏幕,自己畫板,嘉立創(chuàng)打樣,10*10以內5元,由于屏幕大小位180mm*100,所以用3塊板子拼接而成。
軟件框架說明
RTT通過系統(tǒng)滴答定時器產(chǎn)生1ms中斷驅動;LVGL通過定時器3產(chǎn)生1ms中斷驅動。
各個線程資源分配如下:
機智云WIFI遠程遙控和傳感器參數(shù)采集在STM32L496板子上。
軟件模塊說明
APT-Pi與STM32L496通訊采用自定義的協(xié)議,協(xié)議內容如下:
協(xié)議包頭包尾均采用雙字節(jié)驗證,減小內容中出現(xiàn)包頭包尾的概率,每一幀數(shù)據(jù)的結尾添加16bit的校驗值,避免通訊受到干擾時發(fā)送參數(shù)錯誤。
在使用過程中發(fā)現(xiàn)RT-Thread的printf和sprintf函數(shù)功能不完善,不能使類似%0.2來確定小數(shù)的位數(shù)和格式。
演示效果
LVGL調試使用VS2017,在電腦斷調試完成后快速移植到單片機。以下圖片為仿真截圖。
視頻見附件。
代碼地址
代碼見附件。
比賽感悟
一直想要自己寫一個LVGL,但是白天需要上班,晚上帶孩子,沒有時間搞,借助這次比賽給自己壓力,每天晚上加班總算把LVGL入門了。
RT-Thread是一款很方便移植的RTOS,僅需要一個中斷來驅動就好,方便移植。之前一直沒有使用RTT的軟件包,這次發(fā)現(xiàn)RTT的軟件包很方便,以后一定要學習一下,這次因為時間緊迫,所以還是使用MDK開發(fā),自己手動移植RTT,其他驅動自己添加。在功能上還有很多預想沒有實現(xiàn),后期會組不添加完善功能。
非常感謝RT-Thread提供的參賽機會,讓我學到了知識,也了解了更多關于RT-Thread,比賽雖然快要結束了,但是在學習的道路上永不止步!