
#第九届立创电赛#多功能环境检测仪
简介
本项目基于STM32G030K6T6,利用盛思锐SHT40温湿度传感器模块实现了温湿度检测。该桌面温湿度检测仪实现了实时检测、蓝牙监控当前温湿度的功能;定时进入停止模式保证了芯片的低功耗运行。
简介:本项目基于STM32G030K6T6,利用盛思锐SHT40温湿度传感器模块实现了温湿度检测。该桌面温湿度检测仪实现了实时检测、蓝牙监控当前温湿度的功能;定时进入停止模式保证了芯片的低功耗运行。开源协议
:GPL 3.0
描述
1. 项目功能介绍
本项目基于STM32G030K6T6,利用盛思锐SHT40温湿度传感器模块实现了温湿度检测,实现了温湿度实时检测和蓝牙监控,在一段时间不对检测器进行操作的情况下,芯片将进入停止模式以保证芯片的低功耗运行。
2. 硬件设计
主控芯片选用STM32G030K6T6
由于所有器件均为3.3V供电,而供电电源为2节3.7V的14500电池,因此需要对7.4V的电源进行降压,选用LM1117S对电源进行降压,电源与降压模块电路如下
考虑到芯片为了实现低功耗运行,因此需要启用RTC以保证时间的准确性,因此外接晶振,其电路如下
同时,需要有唤醒按键使芯片从停止模式切换为运行模式
SHT40温湿度传感器模块电路,该传感器与MCU的通信方式为IIC,其中SDA和SCL两根线需要连接上拉电阻
为了实现程序下载,SWD下载调试接口电路如下
四个用户自定义按键,此处我将其定义为页面的上翻下翻以及确认和取消
为了能存储温湿度数据和字库数据,需要一颗EEPROM,需要注意的是,EEPROM与MCU的通信连接方式也为IIC,因此SDA和SCL两根线也需要上拉电阻连接
LCD选用的使1.8寸TFT屏幕,该屏幕与MCU之间采用SPI通信,其电路为
其中我为了让MCU在停止模式下LCD能够熄屏,因此我在电源和LCD的VCC引脚之间加入了一个自锁开关,后来发现这其实是没必要的,因为通过更改背光引脚(BL)的电平即可实现屏幕的亮灭,因此可以将这个自锁开关去掉。当然,在之后的调试中发现,没有VCC供电的情况下LCD屏幕依然可以亮,但是亮度较暗,因此如果应用场景为夜晚,害怕屏幕太亮,也可以将这个自锁开关保留。
为了实现与手机APP的通信,我加入了一个蓝牙模块,蓝牙模块选用的使6328A串口蓝牙模块,物料编号C20539408。由于该蓝牙模块EDA中没有模型,因此我选用1x5pin的排针代替,同时,由于该蓝牙模块为邮票孔连接,也可以将EDA中的模型改为表贴,从而降低蓝牙模块的高度,从而为LCD屏幕留出更多高度,降低温湿度检测仪的整体厚度。
最后,为了测试和监控MCU的工作状态,加入一个LED灯珠
在PCB设计时,为了减少电磁干扰和加工工艺的影响,需要将晶振底部的铺铜和形态尖锐的铺铜通过设置禁止区域去除
最终,得到最终电路板及相关器件如下
3. 软件设计
芯片引脚定义如下
其中,为了保证RTC的正常运行,需要首先配置RCC,设置LSE为外部晶振
接着配置RTC,在这里配置时间表示方法(二进制/BCD)以及初始时间
其他如I2C、SPI、USART等可以参照各种教程实现
特别需要注意的是,LCD屏幕虽为SPI通信,但是其实际为电平控制,因此不需要将引脚定义为SPI模式
代码编写部分,首先需要展示页面的实现,包括了日期、时间、当前温湿度、蓝牙状态以及供电电压
在日期、时间修改界面,实现了时间修改、光标闪烁等功能,其规则为:可更改年份(后两位),月份,日期,小时,分钟,不做任何操作按动UP/DOWN键将与页面0进行切换,第一次按动CONFIRM键,锁定YEAR,此时按动UP/DOWN键将改变YEAR值,再次按动CONFIRM键,光标将移至下一个值, 按动CANCEL键,结束日期时间调整
为了进一步降低MCU功耗(睡眠模式下MCU的电流为mA级,而在停止模式下MCU的电流仅为uA级),当检测仪无操作10秒之后,MCU将进入停止模式,为了退出停止模式,可以通过唤醒按键对MCU进行唤醒。需要注意的是,当MCU进入停止模式时,芯片的HSI时钟将会停止,转而变为LSE时钟,因此在唤醒MCU的基础上,还需要对RCC进行重新配置,以防止滴答定时器的定时错误
由于蓝牙为串口蓝牙,因此只需对printf函数进行重定义即可
此外,需要特别注意的是,在使用printf时,请在魔术棒中勾选"Use MicroLIB",否则printf将无法使用
蓝牙APP设计,使用的时MIT App Inventor,这是一个APP设计网页,网址为http://app.gzjkw.net/
绘制APP界面
编写APP后台代码
4. 实物演示
为温湿度检测仪上电,得到如下界面
此时按动左侧上下键,可以进入日期时间设置界面,按动右上角的确定/取消键和左侧的上下键,可以实现时间的增减
设置完成后,按左侧上下键切换至温湿度检测界面,可以看到此时时间已经设置成功
打开手机蓝牙APP
选择蓝牙设备
当蓝牙完成连接时,蓝牙模块的连接指示灯亮,数据显示界面也显示蓝牙已连接
点击查询按键,即可实现当前温湿度的查询
5. 附件说明
MyProject.rar:本项目工程源码文件
SPI LCD源码和HAL库工程.rar:1.8寸LCD屏幕驱动程序(包括51单片机和STM32F1系列单片机,其他系列可以参照移植)
base.apk:本项目蓝牙APP
83991-1.8寸IPS+LCD模块资料.rar:1.8寸LCD屏幕驱动程序及汉字取模软件
6. 演示视频
https://www.bilibili.com/video/BV1AsezefEFf/?share_source=copy_web&vd_source=1cc6752786a7dd940c6c809a85212bba
设计图

BOM


评论