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