
#第九届立创电赛#温湿度检测仪5819095A
简介
2024年嘉立创暑期训练营作品,基于STM32G030K6T6 MCU和瑞士盛思锐的温湿度传感器模块SHT40-AD1B制作的温湿度检测仪,并且制作了3D外壳和亚力克面板,可作为一个桌面小摆件。
简介:2024年嘉立创暑期训练营作品,基于STM32G030K6T6 MCU和瑞士盛思锐的温湿度传感器模块SHT40-AD1B制作的温湿度检测仪,并且制作了3D外壳和亚力克面板,可作为一个桌面小摆件。开源协议
:Public Domain
描述
注:* 为必填项
请在报名阶段填写 ↓
* 1、项目功能介绍
这是一款基于STM32G030K6T6 MCU和瑞士盛思锐的温湿度传感器模块SHT40-AD1B制作的温湿度检测仪。这款温湿度检测仪不仅体积小、成本低、易操作,还能检测工作环境的温度和湿度,并且带有3D外壳和玉桂狗图案的亚力克面板,是桌面小摆件的不二之选。
1.1核心功能:
1.1.1.温湿度检测:
通过由瑞士盛思锐赞助的SHT40-AD1B温湿度传感器模块,能够实时、准确地测量并显示当前环境的温度和湿度值。该传感器模块以其高精度和低功耗的特点,适用于多种环境监测场景。
1.1.2.数据显示:
利用两个共阴极3位数码管(LED3和LED4),分别显示温度和湿度的数值(实物图的上数码管为温度,下数码管为湿度),另外还可以显示电池剩余电量值。数码管通过8位移位寄存器(如74HC595)驱动,实现数据的动态显示,提高了设备的可读性和用户体验。
1.1.3.唤醒与测试功能:
这款温湿度检测仪设计了唤醒按键(WAKE),检测仪在未使用时处于低功耗的睡眠状态,用户可以通过按下唤醒按键来使检测仪恢复工作状态,交替显示温湿度的值和电池剩余电量的值,共显示两次。同时还设计了信号测试LED1(SIG_TEST)和GPIO测试LED2(GPIO_TEST),便于开发者在硬件调试过程中进行状态检测和故障的排查。
1.1.4.电源保护和电源电压检测:
支持两节五号电池供电,设计有防反接保护电路,并且具有检测电池电压值的功能,确保设备在使用过程中的电源稳定性和安全性。此外,电源部分还包含了滤波电容等元件,以减少电源噪声对系统的影响。
1.1.5.调试与下载接口:
提供了SWD下载调试接口,便于开发者通过STM32CubeMX、Keil5、ST-LINK等开发工具进行程序下载和调试。
1.2设计思路:
该温湿度检测仪的设计思路以功能性需求为导向,通过合理的MCU选型和集成、科学的电源管理、便捷的用户交互与调试、模块化的设计思路以及低功耗和安全可靠的设计理念,实现了对环境温度和湿度的实时监测与现实功能,并具有较高的可拓展性和易用性。
*2、项目属性
2024年嘉立创暑假夏令营作品,项目跟随训练营进行学习并完成实物验证,最后完成项目开源
* 3、开源协议
Public Domain
请在竞赛阶段填写 ↓
*4、硬件部分
4.1 主控MCU模块
采用STM32G030K6T6 MCU,该芯片使用Arm Cortex-M0+内核,最大主频为64Mhz,具有低功耗、高性能的特点,适合需要长时间运行且对低功耗有严格要求的应用场景。
4.2 晶振模块
采用了32.768kHz的无源晶振,为系统提供稳定、精确的时钟信号,确保主控MCU的正常运行。
4.3 温湿度传感器模块
使用了由瑞士盛思锐品牌赞助SHT40-AD1B 温湿度传感器模块,实时测量环境的温度和湿度,并将测量数据转化为数字信号,由SDA(数据线)和SCL(时钟线)两个引脚,通过I2C总线与MCU通信,将数字信号传输给MCU。
4.4 数码管驱动模块
采用了三个串行输入并行输出8位移位寄存器(74HC595),由主控MCU控制并驱动多位数码管的显示。
4.5 数码管显示模块
采用了两个共阴级3位数码管,分别用于显示温度、湿度和电池电量的数值,与移位寄存器的输出引脚相连,通过并行输出方式实现多为数码管的显示。
4.6 唤醒按键模块
按下按键并且松开按键时可以让MCU从低功耗的睡眠状态恢复到正常的工作状态。
4.7 电源模块
采用两节五号电池供电,P沟道MOS管(Q1)具有防反接保护功能,滤波电容C8减少电源噪声对系统的影响。这里还加入了分压电阻用于检测电池电压,即使用两个10K电阻对电压值进行分压,然后通过单片机ADC进行电压读取,实现电池电压采集。
4.8 测试接口模块
信号测试端口SIG_TEST和GPIO测试端口GPIO_TEST分别由LED1、LED2指示灯显示信号状态,方便在开发工程中的硬件检测与调试。
4.9 下载调试串口模块
用户可以使用STM32CubeMX、Keil5 MDK、ST-LINK等工具进行程序的调试和下载。
注意!!!调试过程中注意ST-LINK使用3.3V接入串口,GND、SWDIO和SWCLK需对应相连接正确。另外在如果单片机处于睡眠状态,需要按下唤醒按键让单片机处于正常工作状态才可以成功烧录程序。
4.10 实物的正面与反面
*5、软件部分
该项目使用STM32CubeMX软件进行基础代码生成与配置,图形化的方式便于我们更迅捷地开发芯片。使用Keil5软件作为程序调试和编译下载。源代码在附件处,共有两份,一份是官方提供的源代码,该代码不含电池电量显示;另一份是笔者在学习的过程中对源代码进行修改,将直播课中学到的电池电压采集代码加到其中,实现了同时显示温湿度和电池电量。
以下附图说明:
在gpio.c文件进行下面的操作
在tim.c文件进行下面的操作
PS:这里的温湿度和电池电压值的测量是按下一次才进行新的数值测量,然后进行显示,并不是时刻测量然后显示。可能有的小伙伴想让温湿度每时每刻被测量然后按下唤醒按键进行显示,是可以的,但是在显示的过程中数码管会因温湿度改变太快而留下残影,影响美观性,如果你正好看到我的开源项目并且有更好的方法,欢迎一起交流。
友情提示:
在烧录过程中,如果将芯片唤醒之后仍无法烧录程序,可试一下如下操作:
*6、BOM清单
*7、大赛LOGO验证
* 8、演示您的项目并录制成视频上传
演示视频见附件
设计图

BOM


评论