3. 传感器基础:传感器分类、工作原理与选型要点

做物联网项目,传感器就是我们的「眼睛」和「耳朵」。

没有传感器,数据采集就是一句空话。我刚开始做嵌入式那会儿,就吃过传感器的亏——选型不对,整个项目推倒重来。今天咱们就把传感器这块彻底聊透。

3.1 传感器分类:四大金刚

物联网能耗采集,说白了就盯紧四个物理量:温度、湿度、电流、电压。我习惯把它们叫做「四大金刚」。

传感器类型 常见型号 输出信号 典型应用
温度传感器 DS18B20、SHT30、PT100 数字/模拟 环境测温、设备过热保护
湿度传感器 DHT22、SHT30、AM2301 数字 机房湿度监控、仓储环境
电流传感器 ACS712、SCT013、霍尔电流 模拟/数字 设备功耗监测、漏电检测
电压传感器 电阻分压模块、ZMPT101B 模拟 电池电压监测、电网电压采集

你想想看,这四个参数基本覆盖了90%的能耗场景。温度高了?散热有问题。电流大了?设备过载。电压低了?电池快没电了。

3.2 传感器工作原理:别被「黑盒」骗了

很多新手拿到传感器就当黑盒用,插上就读数据。我个人习惯是——先看原理,再动手。不然出了问题你都不知道从哪查起。

3.2.1 温度传感器

最常见的是热敏电阻和数字温度芯片。热敏电阻说白了就是「温度一变,电阻就变」。数字芯片内部集成了ADC,直接给你吐出温度值。

我在项目中遇到过用DS18B20做冷链监测。这玩意儿用单总线通信,一根线就能传数据,省IO口。但有个坑——它需要严格的时序,延时不对就读不到数据。

// DS18B20 读取温度示例(简化版)
uint8_t ds18b20_reset() {
    // 拉低总线480us,然后释放
    // 等待从机应答脉冲
    // 嗯,时序必须精确到微秒级
}
注意:DS18B20的寄生供电模式容易出问题。我曾经在长线传输时遇到数据跳变,最后发现是供电不足。老老实实加个上拉电阻,问题解决。

3.2.2 湿度传感器

湿度传感器内部通常有个电容式感湿元件。湿度一变,介电常数就变,电容值也跟着变。芯片内部再把这个电容变化转成数字信号。

说白了,就是「测电容」的变种。DHT22这类传感器,单总线通信,一次能读出温度和湿度两个值,性价比很高。

3.2.3 电流传感器

电流测量分两种:直通式和霍尔式。

  • 直通式:电流流过采样电阻,测电阻两端压降。简单粗暴,但会发热。
  • 霍尔式:利用霍尔效应,非接触测量。不发热,但精度略低。

我建议做交流电流采集时用SCT013这种开口式互感器。不用断电就能安装,现场调试特别方便。有一次在工厂改造项目里,工人不让断电,全靠它才搞定。

3.2.4 电压传感器

电压测量更简单——电阻分压。把高电压降到ADC能承受的范围(通常是0-3.3V或0-5V)。

但要注意:分压电阻的精度直接影响测量结果。我习惯用1%精度的电阻,别省那几分钱。省了电阻钱,后面调试能让你崩溃。

// 电压采集示例(假设ADC参考电压3.3V,12位分辨率)
uint16_t adc_value = read_adc(ADC_CHANNEL_0);
float voltage = (adc_value / 4095.0) * 3.3;
// 如果分压比是10:1,实际电压 = voltage * 10

3.3 选型要点:别踩这些坑

选传感器,我总结了五个字:准、稳、省、小、贵。别笑,排序有讲究。

选型优先级: 精度 > 稳定性 > 功耗 > 体积 > 成本

3.3.1 精度够用就行

别盲目追求高精度。做环境监测,±0.5°C的精度完全够用。你非要买±0.1°C的传感器,成本翻十倍,没必要。

我有个项目做机房温控,用了SHT30,精度±0.3°C,价格才十几块。甲方验收时拿水银温度计对比,误差在范围内,一次过。

3.3.2 稳定性比精度更重要

传感器漂移是常见问题。今天测25°C,明天同一环境测出26°C,这就麻烦了。

选型时看数据手册里的「长期稳定性」参数。一般标「每年漂移<0.1°C」的,基本靠谱。

3.3.3 功耗要算清楚

电池供电的项目,传感器功耗是命门。有些传感器工作电流几十毫安,待机也得几毫安。你算算,2000mAh的电池能撑多久?

我建议选带「休眠模式」的传感器。平时睡觉,采集时叫醒。比如SHT30的休眠电流才0.2μA,这才是做低功耗该用的料。

3.3.4 接口要匹配

传感器输出接口有I2C、SPI、单总线、模拟电压。选型时先看你主控芯片有什么接口。

  • I2C:两根线,可挂多个传感器。适合板内通信。
  • SPI:速度快,但线多。适合高速采集。
  • 单总线:一根线搞定,但时序要求高。
  • 模拟输出:需要ADC,抗干扰能力弱。
小技巧:新手做项目,优先选I2C接口的传感器。驱动库多,调试方便。我刚开始做项目时全用I2C,省了不少事。

3.3.5 环境适应性

传感器工作温度范围、防护等级都要看。工业现场温度高、湿度大、有粉尘,普通传感器扛不住。

我曾经在注塑车间装传感器,普通型号三天就坏。后来换了工业级(-40°C~125°C),再也没出过问题。环境恶劣的地方,别省那点钱。

3.4 实战选型清单

最后给个我常用的选型清单,直接抄作业就行:

应用场景 推荐传感器 理由
室内环境监测 SHT30 精度高、功耗低、I2C接口
工业设备测温 DS18B20 单总线、可级联、成本低
交流电流采集 SCT013-30A 开口式、非接触、安装方便
电池电压监测 电阻分压+ADS1115 高精度ADC、可调量程

嗯,传感器这块就聊到这儿。记住一句话:选对传感器,项目就成功了一半。下一章咱们开始讲数据采集电路设计,到时候会用到今天讲的知识点。