发作品签到
专业版

高精度PY温湿度计SHT4x

工程标签

7.4k
0
0
62

简介

本项目是一款极其简单的高精度温湿度计,PCB尺寸60mm*20mm,外壳尺寸65mm*25mm*11mm,主打一个精致小巧,手搓成本不到10元,温湿度传感器与米家温湿度计同厂商,非常适合3D打印玩家。

简介:本项目是一款极其简单的高精度温湿度计,PCB尺寸60mm*20mm,外壳尺寸65mm*25mm*11mm,主打一个精致小巧,手搓成本不到10元,温湿度传感器与米家温湿度计同厂商,非常适合3D打印玩家。
复刻成本:10

开源协议

GPL 3.0

(未经作者授权,禁止转载)
创建时间:2024-07-06 09:20:12更新时间:2024-09-03 05:36:11

描述

本项目是一款极其简单的高精度温湿度计,PCB尺寸60mm*20mm,外壳尺寸65mm*25mm*11mm,主打一个精致小巧,手搓成本不到10元,温湿度传感器与米家温湿度计同厂商,非常适合3D打印玩家。

 

* 更新记录


2024年9月3日

发布新固件,支持更多淘宝ST7735S屏幕。

 

2024年8月22日 (PY32F002A开头,以下简称V2版本)
第一版发布后,受到了B站不少网友的鼓励和支持,还有多位网友复刻成功,这才有了动力进行这第二版。

第二版更多的是从产品的角度去考虑,共设计了3款:分别是纽扣电池版、锂电池版以及模块版,主控MCU换成了更便宜的普冉的 PY32F002AF15P6 或者合宙的AIR001,这2个芯片其实是一样的,可以随意替换使用。

硬件上对PCB LAYOUT也进行了优化,把唤醒按键移到右边,这样按唤醒按键的时候手指就不会挡住传感器的风道了,同时把屏幕也往中间挪了挪。

锂电池版可以直接通过TYPEC进行充电,偶尔还能应急下当作锂电池的充电器用,另外加入了USB插入监测,一旦有外部供电就会保持屏幕常亮不进入休眠模式。

而模块版是采取尽可能的简化电路,减少元器件数量,采用TYPEC或者外接5V直接供电,屏幕常亮不进入休眠模式。可以作为其他系统的子模块使用,只要接入5V电源就可以有一个完整的温湿度测量单元。

同时还改进了软件代码,支持SHT4x全系列芯片,而且现在可以做到同一个固件支持GC9107和ST7735S驱动IC的屏幕了,固件已更新至最新版,在这之前复刻的朋友们可以重新下载烧录

V2纽扣电池版功耗:运行模式23mA,休眠模式85uA。

V2版本演示视频:https://b23.tv/Xg4ONQv

 

2024年7月25日 (PY32F003_SHT4x,以下简称V1版本)
第一版发布,这是参加训练营的,主控MCU是普冉的PY32F003F1xPx系列(PY32F003F14P6、PY32F003F16Px、PY32F003F18Px都可以),温湿度传感器采用盛思锐的SHT40-AD1B-R2,一颗CR2032纽扣电池供电,屏幕是0.96寸TFT,万用表粗略测量一下功耗,运行模式20mA,休眠模式100uA,理论上CR2032电池能够坚持3个月左右,实际上会受限于屏幕的最低电压要求导致续航会打折扣。

V1版本演示视频:https://b23.tv/sPQD9rp

 

* 1、项目功能介绍


V1版本只有一个款式,电源采用一颗CR2032供电,电池容量大概220mAh左右,主控采用普冉的 PY32F003F1xPx系列,正如该主控型号的开头2字母PY == 便宜,手头也正好有就用了,温湿度传感器芯片选用 Sensirion(瑞士盛思锐) 的高精度数字温湿度传感器 SHT40-AD1B-R2,米家智能温湿度计也都是用的盛思锐的传感器芯片。还有一块0.96寸TFT IPS 显示屏用于显示温湿度数据,至于为什么采用这块屏幕也是因为手头有存货,实际做产品的话应该换成低功耗不带背光的段码LCD屏或者墨水屏之类的,毕竟带背光的屏都比较耗电,且最低供电电压也偏高。

 

V2版本主要是换了主控,其他没变,保留CR2032纽扣电池版外,新增锂电池版和模块版,共有3个款式,分别应对不同场景,主控MCU换成了更便宜的普冉的PY32F002AF15P6 或者合宙的AIR001,这2个芯片可以随意替换使用,我在开发过程中就是用PY32F002A的标准库写的,然后直接烧录AIR001芯片。

 

项目功能框图如下所示:

 

实物展示

 

3D外壳也是直接通过立创EDA画的,对于这类外壳用立创EDA设计已经足够,我也把立创EDA的3D外壳设计功能发挥的淋漓尽致!!!:-)

 

下面是V1版本外壳装配图,使用4颗M2x9圆头十字自攻螺丝固定

 

以下是V2版本外壳装配图

 

*2、硬件部分


 

V1版本硬件部分主要就5大块:MCU主控、温湿度传感器、唤醒和复位按键、电池电压检测以及0.96寸TFT显示屏部分,简单的不能再简单了。

 

 

原理图中的一些物料大家可以根据自己手头物料进行选择替换,比如三极管S8050可以用S9013替换等等。

 

V1版本MCU主控采用普冉的PY32F003F1xPx系列,原理图里用的是PY32F003F16P6TU,这里之所以用系列这个词,意思就是同一块板子,你可以焊接PY32F003F14Px、PY32F003F16Px、PY32F003F18Px中的任一款芯片,这几个型号的芯片都是TSSOP20封装,引脚相同,唯一的区别就是FLASH和SRAM大小的区别,当然价格也随之不同,实际测试2K大小的SRAM就够了,也就是说用PY32F003F14Px最划算。

 

 

 

V2版本MCU主控换成普冉的 PY32F002A15P6,相对来说更便宜,20K的FLASH和3K的SRAM也足够了,大家可以编辑器打开工程自行查看原理图。

 

V2纽扣电池版

V2锂电池版主要增加了以下电路

V2模块版,预留TYPEC或者XH2.54接口,用于外接5V供电。如果也想外接锂电池,请确保不会接反的前提下,不要焊接二极管,用0Ω电阻或者一坨焊锡代替,因为二极管的压降会造成后续供电不稳。

 

 

2.1 温湿度传感器

温湿度传感器芯片选用的是 Sensirion(瑞士盛思锐) 的高精度数字温湿度传感器 SHT40-AD1B-R2,精度很高,各位可以看下盛思锐官方的宣传手册以及数据手册。

 

由数据手册得知这块芯片的IIC地址为0x44,当地址最低位为0时,表示写数据;最低位为1时,表示读数据。

 

温湿度传感器SHT40也可以换成SHT41、SHT43、SHT45,软件已对这些型号都做了兼容。

 

温湿度传感器的LAYOUT可以参考一下盛思锐官方的设计指南文档,我也是按照官方推荐的设计采用挖槽以及禁止铺铜处理,可以避免PCB热传导,从而影响温湿度传感器的测量精度。

 

 

2.2 0.96寸TFT显示屏

屏幕可以选用ST7735S或者GC9107驱动IC的,软件已对这2款芯片做了兼容,我自己实际测试的屏幕型号是N096-1608TBBIG47-H13 和 N096-1608TBBIG11-H13。

 

 

 

 

*3、软件部分


代码采用标准库写的,实现逻辑如下图所示:

逻辑也很简单,就是上电后每秒检测一次并显示结果(出于展示需要,实际产品不需要每秒刷新一次),然后循环里判断超过10秒没响应后进入低功耗模式,同时也关闭显示屏背光。低功耗模式下如果检测到唤醒按键按下,那么重新开启显示屏背光,并再次检测。超过10秒没响应后再次进入低功耗模式。

 

3.1 温湿度UI展示

测量结果是用LED数码字体展示的,左边显示的是温度数据,右边显示的是湿度数据,另外还根据温湿度区间做了下UI方面的考虑,用3种颜色分别表示不同的温湿度区间。

颜色 温度 相对湿度
红色 >  26°C 0 – 40 %RH
绿色 20 ~ 26°C 40 – 60 %RH
蓝色 < 20°C 60 – 100 %RH

 

3.2 电池电量展示

电池电压的计算是先采集MCU内部参考电压来获取MCU实际的供电电压,然后再采集电池电压进行换算。

 

根据CR2032电池数据手册得知,满电算3V,亏电算2V,经过分压电路后,ADC端测得电压在1V ~ 1.5V之间,所以代码就分5个等级分别显示不同的电量图标(图标来自:iconfont-阿里巴巴矢量图标库

if (adcVbat <= 1100) {

    LCD_ShowBattery1(70, 4);

} else if (adcVbat <= 1200) {

    LCD_ShowBattery2(70, 4);

} else if (adcVbat <= 1300) {

    LCD_ShowBattery3(70, 4);

} else if (adcVbat <= 1400) {

    LCD_ShowBattery4(70, 4);

} else {

    LCD_ShowBattery5(70, 4);

}

当然这个代码只是很粗糙的展示一下电量等级情况,也仅在理想情况下而已,因为本项目用的IPS屏幕,可能电池电压低于2.5V就不显示了。

 

据屏幕数据手册可知,这块屏幕最低供电需要2.5V以上且背光供电需要2.9V以上,实际情况如何还需要时间检验。

 

3.3 固件空间占用

由下图可见,16K的FLASH和2K的SRAM已经足够。

 

*4、固件烧录教程


4.1 PWLink2 Lite烧录

如果大家手头有PWLink2 Lite烧录器的话,烧录就非常简单,也推荐大家使用这种方式,烧录器也很便宜,9.9顺丰包邮。


如还有不明白大家可以自行参考PWLink2 Lite的官方文档:

https://docs.powerwriter.com/docs/next/faq/powerwriter/base/firmwareload

 

4.2 其他DAPLink烧录

如果手头只有JLink或者其他DAPLink,都可以通过这种方式进行烧录,只是步骤稍微麻烦一些,思路就是建立一个空白工程,然后配置DAPLink信息,把固件复制到这个新建工程的目录中,然后进行烧录,可以参考下图:

*5、复刻常见问题


5.1 屏幕只有文字,没有温湿度数据?
一般发生在温湿度传感器没有焊接好,补焊一下就能解决。

 

5.2 屏幕红绿蓝颜色显示有异常,或者文字方向不对
因为是在同一个固件支持GC9107和ST7735S驱动IC的屏幕,做法就是根据读取RDDID来驱动不同的屏幕,目前只适配了手头不同厂商的两块ST7735S和一块GC9107屏幕,不排除一些屏幕厂商会更改RDDID,如果遇到这种情况请烧录带TESTLCD后缀的固件:

V1版本请烧录SHT4x_PY32F003_TESTLCD.hex

V2版本请烧录SHT4x_PY32F002_AIR001_TESTLCD.hex

然后把屏幕显示结果私信我进行改进。

 

5.3 做了好几个,但是显示的温湿度数据各不相同,偏差有些大
这种情况一般是焊接过程中污染了温湿度传感器,尤其不要用洗板水擦传感器。一般2、3天后能恢复正常,精度会返回到官方手册宣传的范围内。

 

*6、BOM清单


请看下面立创EDA自动生成的BOM列表。

 

*7、大赛LOGO验证


 

* 8、演示您的项目并录制成视频上传


 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
立创电赛:极简SHT4x温湿度计.mp4
187
2
3DShell_20240822.zip
79
3
Firmware_20240822.zip
102
4
Firmware_20240903.zip
149
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

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

底部导航