第3章:传感器原理与选型

各位同学,今天我们来聊聊传感器。这是消防报警系统的「眼睛」和「鼻子」。选错了传感器,后面的算法再牛也白搭。我在项目里见过太多因为传感器选型翻车的案例,嗯,咱们今天就把这些坑一个个填上。

3.1 离子式烟雾传感器

离子式传感器,说白了就是利用放射性物质来「看」烟雾。它里面有个小小的镅-241放射源,会电离空气产生微弱电流。烟雾颗粒一进来,电流就变了。

核心原理:电离室内的电流变化 → 烟雾浓度信号

我个人习惯在厨房、走廊这些地方用离子式。为什么?因为它对明火产生的微小颗粒特别敏感。你想想看,一张纸烧起来,产生的颗粒直径大多在0.01-1微米,离子式抓这个很准。

优点:

  • 对明火响应快,灵敏度高
  • 功耗极低,一节电池能撑一年
  • 电路简单,成本低

缺点:

  • 含有放射性物质,环保审批麻烦
  • 对阴燃(比如电线慢慢烧)反应迟钝
  • 容易受湿度、气流干扰

避坑指南:我曾经在一个项目中用了离子式传感器做仓库报警,结果梅雨季节天天误报。后来发现是湿度太大导致电离室参数漂移。从那以后,我在高湿度环境里坚决不用离子式。

3.2 光电式烟雾传感器

光电式就温和多了。它用红外LED发光,用光敏管接收。没烟雾时,光路是直的,接收管收不到信号。烟雾一进来,光线被散射,接收管就「看到」光了。

我建议在卧室、客厅这些地方优先考虑光电式。为什么?它对阴燃产生的较大颗粒(0.3-10微米)特别敏感。你想想看,沙发慢慢烧起来,产生的烟雾颗粒大,光电式一抓一个准。

参数 离子式 光电式
响应颗粒 0.01-1μm 0.3-10μm
明火响应
阴燃响应
误报率 较高(湿度影响) 较低
成本 中等

小技巧:实际项目中,我经常把离子式和光电式装在一起,做「双鉴」判断。两个都报警才拉响警报,误报率能降80%。

3.3 一氧化碳传感器

CO传感器,这可是救命的家伙。火灾中大部分人不是烧死的,而是被CO毒死的。CO无色无味,你根本察觉不到。

目前主流的是电化学式CO传感器。它内部有个电解池,CO进去会发生电化学反应,产生电流。电流大小和CO浓度成正比。

// CO传感器读取示例(电化学式)
uint16_t readCO(void) {
    uint32_t sum = 0;
    for(int i = 0; i < 10; i++) {
        sum += adc_read(CO_CHANNEL);
        delay_ms(10);
    }
    uint16_t avg = sum / 10;
    // 转换公式:电压 → 浓度(ppm)
    // 假设灵敏度为 0.5mV/ppm
    uint16_t ppm = (avg * 3.3 * 1000) / (4096 * 0.5);
    return ppm;
}

这里要注意,电化学传感器有个「预热时间」。刚上电那会儿,读数是不准的。我记得第一次用CO传感器时,上电就读数,结果显示1000多ppm,吓我一跳。后来才知道要等2分钟稳定。

重要提醒:CO传感器有使用寿命,一般是5-7年。电解液会干涸,灵敏度会下降。我在项目里都会加一个寿命监测功能,到期了主动提醒更换。

3.4 温度传感器

温度传感器在消防系统里,主要用来做「确认」和「分级」。烟雾报警了,温度也上来了,那基本可以确定是火灾。

3.4.1 热电偶

热电偶的原理很简单:两种不同金属接在一起,加热会产生电压。这个电压和温度成正比。我常用的K型热电偶,能测到1000多度,火灾现场完全够用。

优点:响应快、测温范围广、便宜

缺点:精度一般、需要冷端补偿

3.4.2 热敏电阻

热敏电阻分两种:NTC(负温度系数)和PTC(正温度系数)。消防系统里常用NTC,温度越高电阻越小。

// NTC温度读取(Steinhart-Hart方程)
float readTemperature(uint16_t adc_value) {
    float R = 10000.0 / (4095.0 / (float)adc_value - 1.0);
    float T = 1.0 / (0.001129148 + 0.000234125 * log(R) 
              + 0.0000000876741 * pow(log(R), 3));
    return T - 273.15;  // 转换为摄氏度
}

我个人习惯在探测器内部用NTC做温度补偿。因为烟雾传感器受温度影响很大,用NTC测到温度变化后,可以修正烟雾读数。

3.5 多传感器融合策略

好了,单个传感器讲完了。但实际项目中,没人只用一种传感器。多传感器融合才是王道。

我常用的融合策略是这样的:

  1. 数据级融合:先把各个传感器的原始数据做滤波、归一化处理
  2. 特征级融合:提取关键特征,比如烟雾变化率、温度上升速率
  3. 决策级融合:用逻辑判断或简单算法做最终决策

实战案例:我曾经做过一个项目,用了光电+离子+CO+温度四合一探测器。判断逻辑是这样的:

  • 光电报警 + 温度正常 → 可能是水蒸气,不拉警报
  • 光电报警 + 温度上升 → 确认火灾,拉警报
  • CO浓度 > 50ppm + 温度上升 → 直接拉警报(即使烟雾没报警)
  • 离子式报警 + 光电没报警 → 可能是明火,需要人工确认

你想想看,如果只用一种传感器,水蒸气就能让光电式误报。但加上温度判断,误报率就下来了。这就是融合的价值。

我的经验:多传感器融合不一定要用复杂的神经网络。很多时候,一个简单的决策树就能解决90%的问题。先跑通,再优化,别一上来就上深度学习。

嗯,传感器这块内容不少。但记住一句话:选型看场景,融合看逻辑。下一章我们聊聊信号调理电路,把传感器的微弱信号变成单片机能读的数字量。