发作品签到
专业版

#第九届立创电赛#多功能环境检测仪

工程标签

407
0
0
0

简介

本项目基于STM32G030K6T6,利用盛思锐SHT40温湿度传感器模块实现了温湿度检测。该桌面温湿度检测仪实现了实时检测、蓝牙监控当前温湿度的功能;定时进入停止模式保证了芯片的低功耗运行。

简介:本项目基于STM32G030K6T6,利用盛思锐SHT40温湿度传感器模块实现了温湿度检测。该桌面温湿度检测仪实现了实时检测、蓝牙监控当前温湿度的功能;定时进入停止模式保证了芯片的低功耗运行。

开源协议

GPL 3.0

创建时间:2024-07-05 20:24:00更新时间:2024-07-29 10:27:08

描述

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

暂无BOM

附件

序号文件名称下载次数
1
MyProject.rar
4
2
SPI LCD源码和HAL库工程.rar
1
3
base.apk
1
4
83991-1.8寸IPS+LCD模块资料.rar
0
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航