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。这套组合我在三个项目里验证过,最长的已经稳定运行两年了,没出过问题。

下一章,咱们聊聊怎么把这些传感器接到单片机上,以及怎么处理信号。到时候我会把电路图和代码都贴出来,手把手教大家搭一套完整的检测系统。