3、核心传感器选型与原理:雨滴传感器、水位传感器、湿度传感器对比
做天窗漏水检测,传感器选型是第一步,也是最关键的一步。我见过不少项目,算法写得再漂亮,传感器选错了,最后全是白搭。今天咱们就把三种最常用的传感器掰开揉碎了聊一聊。
3.1 雨滴传感器:电阻式 vs 电容式
雨滴传感器,说白了就是检测有没有水落到天窗玻璃上。市面上主流的有两种:电阻式和电容式。
3.1.1 电阻式雨滴传感器
原理很简单——水是导电的。传感器表面有两根裸露的电极,没水的时候电阻无穷大,有水的时候电阻急剧下降。我通过检测这个电阻变化,就能知道有没有下雨。
关键参数:
- 工作电压:3.3V ~ 5V
- 输出方式:模拟量(AO)+ 数字量(DO)
- 检测面积:约 5cm × 4cm
- 响应时间:< 50ms
嗯,这里要注意。电阻式有个致命弱点——电极会电解腐蚀。我在一个户外项目中吃过这个亏,用了不到三个月,电极就发黑了,灵敏度直线下降。后来我学乖了,要么选镀金电极的版本,要么定期给电极通反向电流做清洁。
避坑指南:电阻式雨滴传感器不能长时间通电,否则电极会加速腐蚀。我建议用间歇式检测,每 100ms 检测一次,平时断电。
3.1.2 电容式雨滴传感器
电容式的原理就高级一些了。它利用水的介电常数(约80)远大于空气(约1)这个特性。水滴落在传感器表面,会改变电容值。我通过检测电容变化来判断是否有水。
你想想看,电容式没有裸露的电极,所以不存在腐蚀问题。而且它还能检测到很薄的水膜,灵敏度比电阻式高不少。我在做高端车型的天窗系统时,基本都选电容式。
| 对比项 | 电阻式 | 电容式 |
|---|---|---|
| 成本 | 低(约3-5元) | 高(约15-25元) |
| 寿命 | 短(电极腐蚀) | 长(无接触) |
| 灵敏度 | 中等 | 高 |
| 抗干扰 | 差(易受污渍影响) | 好 |
我的建议:如果做低成本产品,用电阻式加间歇检测。如果做可靠产品,直接上电容式,省心。
3.2 水位传感器:浮球式 vs 电极式
水位传感器用来检测天窗排水槽里有没有积水。这个很关键——有时候天窗密封条老化,水会渗进排水槽,如果不及时排走,就会漫进车内。
3.2.1 浮球式水位传感器
这个原理最直观。一个浮球套在杆子上,水位上升,浮球跟着上升。浮球里藏着一块磁铁,杆子里有干簧管。磁铁靠近干簧管,开关就闭合了。
我记得第一次用浮球式时,觉得这东西太简单了,肯定不会出问题。结果呢?浮球卡住了!排水槽里有些泥沙,浮球被卡在中间,水位都到顶了它还没浮起来。从那以后,我每次都会在浮球周围加一个滤网。
优点:结构简单,成本低,输出是开关量,直接接 GPIO 就行。
缺点:有机械运动部件,容易卡死,不适合有杂质的液体。
3.2.2 电极式水位传感器
电极式没有活动部件。它利用水的导电性,在排水槽里放两根不锈钢电极。没水的时候,两根电极之间是绝缘的。有水的时候,电极之间导通,我就能检测到水位了。
这里有个小技巧——我一般会放三根电极,分别对应低水位、中水位和高水位。这样不仅能知道有没有水,还能知道水位到了什么程度。低水位是正常,中水位是预警,高水位就是警报了。
注意:电极式传感器需要交流驱动,否则直流电会让电极电解。我一般用 PWM 波驱动,频率 1kHz 左右。
3.3 湿度传感器:DHT22 vs SHT30
湿度传感器用来检测天窗周围的空气湿度。有时候雨还没下,但湿度已经很高了,这就是要下雨的前兆。提前关窗,比等雨滴落下来再关,体验好得多。
3.3.1 DHT22
DHT22 是入门级湿度传感器的标杆。它用单总线通信,只需要一根数据线。精度是 ±2% RH,分辨率 0.1% RH,测量范围 0~100% RH。
说实话,DHT22 我用得最多。便宜、好用、资料多。但有个问题——它采样间隔至少 2 秒。你想想看,如果 2 秒才读一次数据,遇到突然的暴雨,可能就来不及了。
// DHT22 读取示例(Arduino)
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
Serial.print("湿度: ");
Serial.print(h);
Serial.println(" %");
delay(2000); // 至少等 2 秒
}
3.3.2 SHT30
SHT30 是 Sensirion 家的产品,精度更高(±1.5% RH),速度更快(采样间隔 10ms)。它用 I2C 通信,可以接多个传感器到同一条总线上。
我在一个智能家居项目里用过 SHT30,说实话,贵是贵了点(大概 20 块一片),但体验确实好。数据稳定,响应快,而且有加热功能,可以防止传感器在高湿度环境下结露。
| 对比项 | DHT22 | SHT30 |
|---|---|---|
| 精度 | ±2% RH | ±1.5% RH |
| 采样间隔 | 2 秒 | 10 毫秒 |
| 通信方式 | 单总线 | I2C |
| 价格 | 约 8 元 | 约 20 元 |
| 长期稳定性 | 一般 | 优秀 |
我的选择:预算有限用 DHT22,做产品用 SHT30。别问我为什么,我在 DHT22 上吃过亏——用了半年,湿度读数漂了 5%。
3.4 综合选型建议
好了,三种传感器都聊完了。最后给个总结性的建议:
- 雨滴检测:电容式优先,寿命长、灵敏度高。预算紧张才考虑电阻式。
- 水位检测:电极式优于浮球式,没有机械卡死风险。记得用交流驱动。
- 湿度检测:SHT30 是首选,DHT22 是备选。如果只是做演示,DHT22 够用。
我个人习惯是:雨滴用电容式,水位用电极式,湿度用 SHT30。这套组合我在三个项目里验证过,最长的已经稳定运行两年了,没出过问题。
下一章,咱们聊聊怎么把这些传感器接到单片机上,以及怎么处理信号。到时候我会把电路图和代码都贴出来,手把手教大家搭一套完整的检测系统。