
#第九届立创电赛#基于盛思锐SHT40的桌面低功耗温湿度检测仪
简介
立创温湿度检测仪训练营项目,使用STM32+盛思锐温湿度传感器完成温度和湿度采集。Sensirion是一家世界知名的传感器解决方案开发商和制造商,成立于1998年,总部位于瑞士。
简介:立创温湿度检测仪训练营项目,使用STM32+盛思锐温湿度传感器完成温度和湿度采集。Sensirion是一家世界知名的传感器解决方案开发商和制造商,成立于1998年,总部位于瑞士。开源协议
:GPL 3.0
描述
1、项目介绍
使用盛思锐温湿度传感器+STM32G030K6T6,完成温度和湿度的实时采集。
感谢嘉立创提供免费的训练营活动!
感谢盛思锐出品的优秀温湿度传感器!
为你们点赞!
*2、项目属性
项目整体难度不大,嘉立创工程师带领大家从零开始,手把手完成整个项目,非常适合新手学习,我一个电子小白都能完成,相信我你也一样可以的。
3、开源协议
GPL3.0
4、硬件部分
(1)电路原理图
(2)PCB布线图
(3)3D模型图
(4)盛思锐温湿度传感器模块
桌面温湿度仪上使用盛思锐公司出品的SHT40温湿度传感器模块用于检测温湿度,
SHT40采用IIC进行通信,查看SHT40的数据手册可知,0x44是IIC地址;当地址最低位是0,表示读数据,最低位是1,表示写数据;当发送0xFD指令时,代表高精度测量温湿度;
通过对数据进行公式计算可以得出温湿度;
(5)磁珠
磁珠在抗干扰方面具有重要作用。它主要用于抑制高频信号和消除传输线结构中的RF噪声,从而减少电磁干扰(EMI)。磁珠允许直流信号通过,但能有效滤除交流信号,特别是射频RF能量。此外,磁珠还具有吸收静电脉冲的能力,有助于保护电路免受意外电气冲击。所以,在电源部分,加了一个谱罗德生产的贴片磁珠,对电路进行保护。
5、软件部分
见附件 ,软件分为两个版本,一个是常亮版本,用于调试使用;另一个是低功耗模式,可以用于实际使用的场景下,按一下按钮以后,会交替显示几次温湿度,然后进入休眠,减少电量消耗。
(1)数码管+三态移位寄存器
数码管是一种半导体发光器件,其基本单元是发光二极管,也称 LED 数码管。数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,就是多的那个小数点(DP),这个小数点可以更精确的表示数码管想要显示的内容,如图所示:
按显示多少个发光二极管(8)可分为 1 位、 2 位、 3 位、 4 位、 5 位、 6 位、7 位等数码管。
按连接方式可分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极 COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极 COM 接到地线 GND ,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。
数码管显示工作方式有两种:静态显示方式和动态显示方式。
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高,比如使用4个静态数码管,那么就需要32个IO来控制。
动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人感觉各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
本系统通过两个共阴极3位数码管来显示温度和湿度数据,考虑到引脚数量,这里加入3个移位寄存器SN74HC595PWR来驱动共阴极数码管;
共阴段码:
段码 | 字符 | 段码 | 字符 | 段码 | 字符 | 段码 | 字符 |
0x3f | 0 | 0x6d | 5 | 0x77 | A | 0x71 | F |
0x06 | 1 | 0x7d | 6 | 0x7c | B | 0x00 | 无显示 |
0x5b | 2 | 0x07 | 7 | 0x39 | C | ||
0x4f | 3 | 0x7f | 8 | 0x5e | D | ||
0x66 | 4 | 0x6f | 9 | 0x79 | E |
SN74HC595驱动时序相对简单,首先输入高电平或低电平到SER引脚中,随后产生一个SCLK的上升沿,将数据发送出去,这里是8位数据移位寄存器,所以循环8次,最后一个RCLK的上升沿将数据锁存住,保持不变,直到下一次发送;
这里模拟一下发送时序;首先待发送的数据是0xFE(1111 1110),此时先发送最高位,也就是0xFE&0x80,判断高低电平;随后数据被送入QA;然后继续,发送次高位,也就是(0xFE<<1)&0x80,判断高低电平,随后之前的数据被挤到QB,这个数据移位到QA。依次类推...
(2)I2C
IIC是一种两线式双向同步串行总线协议,双向的意思是指通信双方均可发送与接受数据;同步是指通信双方具有相同的时钟脉冲(SCL线)。
在IIC中把设备分为主设备与从设备,一般来说,谁控制时钟线谁就是主设备;
IIC设备均有一个器件地址,在多个设备通信时,根据器件地址来进行辨别;
IIC是半双工通信,同一时间内仅支持单向通信(只有一根数据线);
单片机的IIC引脚通常设置为开漏输出,通过外部的上拉电阻来输出高电平,这样做的好处是防止多个设备通信时,信号混乱。
在整个IIC通信过程中,主要包含以下几个过程;
- 主机开始时序;
- 主机发送地址时序;
- 主机等待从机应答时序;
- 主机发送读/写数据时序;
- 主机等待从机应答时序;
- 停止时序;
(3)电压采集
(4)盛思锐温湿度传感器模块
6、打怪经过
第一次搞铁板烧贴片,第一次用STM32CubeMX,第一次用I2C,第一次用盛思锐的温湿度传感器,折腾的过程痛并快乐着,但是结果是美丽的,生命的意义不就在于不断挑战自己,突破自己吗?
(1)第一次尝试焊接贴片器件,使用粗针头放置锡膏过多,导致连锡非常严重。以后每个焊点少量使用锡膏即可。铁板烧焊接器件一定要先焊接引脚多的,不容易焊的,电容、电阻、LED往后放,他们反而容易处理。
(2)连锡的处理方法:抹上适量的助焊剂,然后使用刀头甩出来;使用吸锡带,加热的情况下吸走多余的锡;补上点锡,用电烙铁向外拖,带走多余的锡膏,相关教程:https://www.bilibili.com/video/BV1Xa411u7mg
(3)在下载程序的时候,出现能够识别下载器,但是无法通讯的问题,提示错误:SWD/JTAG Communication Failure连接失败,检查发现VDD与3V网络未连接,导致无法给MCU供电,L1到R3飞线连接后,下载正常。
(4)STM32CubeMX编程方式非常简单省力,对新手友好,可以多使用,拖拖拽拽就能写程序,不用记那么多让人头疼的东西多好啊。
(5)Keil安装MCU对应软件包速度很慢,可以自己下载以后,手动安装,下载地址https://www.keil.arm.com/devices/ 首先搜索对应的型号,比如STM32F103C8,
搜索以后点击对应的MCU连接,进入详细页面,点击红框内的内容,进入下载界面
(6)使用沁恒下载器下载的时候,需要打开沁恒的下载器工具WCH-LinkUtility.exe,切换模式到WCH-LinkDAP-WVINUSB,先点“get”获取支持的模式列表,然后选中WCH-LinkDAP-WVINUSB点“set”。设置完毕以后,记得关闭WCH-LinkUtility.exe,防止占用下载器导致keil连接失败。
Keil中使用方法:
- 打开魔法棒(Options for Target )。
- 点击Debug,选择使用CMSIS-DAP Debugger。
- 点击Settings,如果左侧能识别序列号,右侧可以识别sw设备,就可以正常使用了。
选中“Reset and Run”下载程序后自动重新运行,否则需要你手动断电再上电
(7)焊接LED没有注意正反,导致其中一个反接了,电路不通,写入程序后无法正常执行,修改以后点灯成功。
(8)数码管显示不正常问题的处理:三个595,其中第一个连锡没处理好,在测试程序的时候,遇到问题:
- 第一个显示不正常,显示不全
- 第二个数码管三段显示相同的数字正常,如果让三段显示不同的数字就会出现999
处理好连锡以后,2个数码管都正常了
(9)i2c问题处理:只要启用i2c,数码管就失效,有人建议使用软件i2c,尝试使用软件模拟i2c功能,发现问题依然存在
个人排查思路:
- 软件方面:基本可以确定软件没问题,使用官方代码存在相同问题,如果要进一步排查,可以用别的stm单片机测试一下i2c功能,并读取温湿度模块的值;
- 检查i2c功能的两个IO口p8和p9是否存在短接的情况,可能直接短接,也可能是温湿度模块底座引脚短接;(发现问题出在这里,温湿度模块底座有两个连锡短接)
- 写入程序,运行i2c功能后,用万用表测量引脚输出,看是否正常
清除连锡以后,重新写入程序,显示正常
(10)下载成功一次以后,再下载失败问题
写入官方程序以后,再一次烧写程序,会遇到弹窗三连,这个问题是因为程序为了省电,让系统进入了低功耗模式,这时候按一下板子上的按键激活程序或者重新上电,就可以写入了。这个问题群里的朋友们遇到的比较多,希望后面的人复刻的时候注意一下。
历经九九八十一难,终于成功修得正果!
7、BOM清单
见附件
设计图

BOM


评论