【RT-Thread作品秀】温湿度监测设计
作者:Star.Water
概述
产生背景:当前温湿度监控设备大多只能显示当前环境参数,不能查看历史记录和历史曲线图,不能直观的显示温度湿度的变化情况。所以本次设计预计做出一款可以显示当前和历史曲线的产品。
实现功能:仪表盘显示当期的温度,湿度;历史曲线显示历史数据。
开发环境
硬件:ART-Pi
RT-Thread版本:rt-thread-v4.0.2
开发工具及版本:MDK5.21
RT-Thread使用情况概述
移植RT-Thread到STM32H50,设置系统滴答时钟产生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开发板负责传感器参数采集,数据记录写入SD卡。ART-Pi和stm32L4都是用RT-Thread RTOS,通过串口通讯。
屏幕:
屏幕转接板参考正点原子和野火的屏幕,自己画板,嘉立创打样,10*10以内5元,由于屏幕大小位180mm*100,所以用3块板子拼接而成。
软件框架说明
RTT通过系统滴答定时器产生1ms中断驱动;LVGL通过定时器3产生1ms中断驱动。
各个线程资源分配如下:
机智云WIFI远程遥控和传感器参数采集在STM32L496板子上。
软件模块说明
APT-Pi与STM32L496通讯采用自定义的协议,协议内容如下:
协议包头包尾均采用双字节验证,减小内容中出现包头包尾的概率,每一帧数据的结尾添加16bit的校验值,避免通讯受到干扰时发送参数错误。
在使用过程中发现RT-Thread的printf和sprintf函数功能不完善,不能使类似%0.2来确定小数的位数和格式。
演示效果
LVGL调试使用VS2017,在电脑断调试完成后快速移植到单片机。以下图片为仿真截图。
视频见附件。
代码地址
代码见附件。
比赛感悟
一直想要自己写一个LVGL,但是白天需要上班,晚上带孩子,没有时间搞,借助这次比赛给自己压力,每天晚上加班总算把LVGL入门了。
RT-Thread是一款很方便移植的RTOS,仅需要一个中断来驱动就好,方便移植。之前一直没有使用RTT的软件包,这次发现RTT的软件包很方便,以后一定要学习一下,这次因为时间紧迫,所以还是使用MDK开发,自己手动移植RTT,其他驱动自己添加。在功能上还有很多预想没有实现,后期会组不添加完善功能。
非常感谢RT-Thread提供的参赛机会,让我学到了知识,也了解了更多关于RT-Thread,比赛虽然快要结束了,但是在学习的道路上永不止步!