
#第九届立创电赛#温度湿度气压检测仪
简介
基于GD32E230G8U6的温度湿度气压检测仪
简介:基于GD32E230G8U6的温度湿度气压检测仪开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
一、项目功能介绍
1、简介
实时检测环境温度、湿度、气压,并显示在TFT彩屏上,可调节显示屏亮度以及设置屏幕方向
2、界面图示
2、界面内容
主界面:1s刷新一次
主界面1:THP依次为温度(SHT40)、湿度(SHT40)、气压(WF183DE)
主界面2:SWN均为温度,来源依次为SHT40、WF183DE、NTC热敏电阻(PCB板温度)
主界面3:温度曲线,共33个点(33s),可选择温度数据来源,默认为WF183DE;右侧为最高和最低y轴代表的温度,和它们的差
设置界面:最快10ms刷新一次,有画面更新时刷新
设置界面1:调整背光亮度,步长为5
设置界面2:调整屏幕显示方向,同时会调整左右键方向
设置界面3:展示界面
4、按键功能
如上图所示四个按键依次为左键、确认键、右键、唤醒按键(当屏幕翻转时,左右按键对调),点按长按临界时间为2s
长按左右键在主界面或设置界面123中切换,长按确认键在主界面1和设置界面1中切换
主界面3中,点按左右键切换温度数据来源
设置界面1中,点按左右键调节亮度,点按确认键保存设置
设置界面2中,点按左右键翻转屏幕,点按确认键保存设置
唤醒按键按下后会类似复位MCU(不知道为什么)
二、硬件部分
- GD32E230G8U6 主控,QFN封装体积小巧,28引脚利用率高;NRST上拉,引出BOOT0按键便于ISP下载,SWDIO,SWCLK,TX,RX通过C口引出
- Type-C 供电及下载程序与串口调试(夹板16P即可,有24P的就没再买),CH213K理想二极管防反接(对于TPS63001有点浪费)
- TPS63001 升降压芯片,1.8V-5.5V输入,可使用锂电池、两节电池、充电器等供电,仅需三个元件即可正常使用
- SHT40-AD1B-R2 温湿度传感器
- WF183DE 数字压力传感器
- NTC热敏电阻,贴近MCU,测量板上温度,公式T =1/(ln(Rt/10k)/3450+1/(273.15+25))
- ST7735S 0.96 TFT 显示屏,仅有一个SPI设备,CS直接下拉,节省引脚
- 功能按键,带硬件消抖
三、软件部分
使用了硬件SPI控制屏幕,硬件I2C读取传感器数据,PWM控制屏幕背光亮度,ADC获取NTC热敏电阻信息,定时器扫描按键,FMC读写FLASH
Clion项目工程上传至附件,初始化部分有注释,代码过长只说一点遇到的问题
1、I2C在连续的读写命令之间一定要加延时,SHT40-AD1B-R2至少需要8ms,WF183DE在发送查询后至少40ms
2、硬件I2C的收发均按照手册写的,但似乎网上和官方例程与手册的都有一些出入
3、计算ln的时候,尽管#include ,但一直报错未定义log函数,于是从网上摘了一段函数替代
顺便上传了亿些资料,外设的用法都可以在官方例程、用户手册、固件库使用指南中找到
Memory region Used Size Region Size %age Used
FLASH: 58464 B 64 KB 89.21%
RAM: 3036 B 8 KB 37.06%
FLASH还剩下约7-1KB可利用
四、大赛LOGO验证
五、项目属性
首次公开,原创,未获奖,未参加过答辩
开源协议:GPL3.0
六、更新
20240731-[v1.0]
- 第一版
设计图

BOM


评论