以前用的都是模拟输出的温湿度传感器,信号容易受干扰,布线也麻烦。自从数字传感器普及开来,情况完全变了。传感器内部直接输出数字信号,抗干扰能力强,接线简单,精度还更高。今天把数字温湿度传感器的工作原理和主流方案梳理清楚。
模拟传感器的信号是连续的电压或电流,比如0-1V对应0-100%RH。听起来简单,实际用起来问题一堆:
数字传感器把ADC直接封装在传感器内部,输出已经是校准后的数字值。微处理器直接读取,不用担心布线质量和ADC性能。对于研发和产品人员来说,省心很多。
一颗数字温湿度传感器芯片内部集成了这几样东西:
这是感知湿度的核心元件。结构有点像三明治——上下两个电极,中间是一层吸湿高分子薄膜。当空气湿度变化时,薄膜吸水后介电常数改变,电容值跟着变。
电容值的变化量很小,只有几十到几百皮法,需要专门的测量电路。
有两种实现方式:
包括电容测量电路、放大器、滤波器,把微弱的电容变化转换成可用的电信号。
将模拟信号转换成数字量。数字传感器用的ADC通常是Sigma-Delta型,适合慢变化信号,分辨率高、线性好。
负责内部校准计算、接口通讯、命令解析。有些芯片还内置了温度补偿算法。
对外通讯的窗口,最常见的是I2C(也叫IIC),部分芯片支持SPI。
Sensirion(盛思锐)的SHT系列是目前市面上最被广泛采用的数字温湿度传感器方案。从SHT10到SHT45,迭代了很多代,精度、功耗、稳定性一直在提升。
这是早期的主力型号,至今仍在大量使用:
新一代产品,精度提升明显:
最新一代主打超低功耗和更高精度:
I2C是数字传感器最常用的接口,只需要两根线(SCL时钟线和SDA数据线),可以挂多个设备。
读取一次温湿度的步骤:
SHT20/30系列默认地址是0x44。如果需要同时接多个传感器,有两个办法:
实际项目中,I2C地址限制是很多人遇到的第一个坑。选型时最好提前确认地址是否冲突。
SHT30以上型号每帧数据都有CRC校验字节。读取数据后要验证CRC是否正确,如果不对就丢弃这次测量结果,重新读取。这个机制能有效避免通讯干扰导致的错误数据。
| 型号 | 湿度精度 | 温度精度 | 典型应用 |
|---|---|---|---|
| SHT20 | ±3%RH | ±0.5°C | 消费电子、一般工业 |
| SHT30 | ±2%RH | ±0.3°C | 暖通空调、机房监控 |
| SHT31 | ±2%RH | ±0.3°C | 工业级、户外 |
| SHT35 | ±1.5%RH | ±0.2°C | 实验室、计量 |
| SHT45 | ±1%RH | ±0.2°C | 高精度测量 |
数字传感器的响应时间(从环境变化到输出稳定)受两个因素影响:
测量周期(两次测量之间的最小间隔)也有讲究:SHT20最短可以1秒测一次,但频繁测量会增加自加热,体温高了读数就偏高。如果对响应速度要求高,可以把测量间隔设短一些,同时注意散热。
Sensirion的芯片虽好,但价格摆在那里。近年来国产芯片进步很快,有几个型号值得关注:
| 品牌 | 型号 | 精度 | 接口 | 备注 |
|---|---|---|---|---|
| 敏源传感 | MHT04 | ±3%RH / ±0.5°C | I2C | 性价比高 |
| 建大仁科 | RS-... | ±3%RH / ±0.3°C | I2C/RS485 | 模块化方案 |
| 奥松电子 | ASAIR AHT10/20 | ±2%RH / ±0.3°C | I2C | AHT20接近SHT30性能 |
AHT20是ASAIR(奥松)的旗舰型号,性能参数跟SHT30很接近:
很多国内做智能家居和消费电子的厂家已经切换到AHT20。工业场景用的话,建议先做一批样品测试,特别是长期稳定性和温漂表现。
数字传感器内部已经做了温湿度校准,输出的是已经换算好的物理量值。以SHT20为例,芯片出厂时会在OTP内存里存储校准系数,测量时内部自动调用这些系数做补偿。
用户拿到的数据已经是校准结果,不需要再处理。除非遇到这两种情况:
| 考量因素 | 推荐 |
|---|---|
| 精度要求±2%RH以内 | SHT30/35、AHT20 |
| 成本敏感项目 | AHT10、AHT20 |
| 电池供电设备 | SHT40(超低功耗) |
| 户外/防水需求 | SHT31防水版 |
| 多传感器并联 | SHT20/30(地址可选)+ I2C模拟 |
| 长期稳定性要求高 | Sensirion全系列 |
传感器工作时会有轻微发热。SHT20的自加热大约0.1°C,长时间连续测量会让传感器温度比环境高一点。如果精度要求高,两次测量之间让传感器进入休眠状态。
没有透气膜的传感器容易积灰、结露,影响性能。但加了透气膜之后响应速度会变慢。需要根据实际使用环境选择: