1. 传感器基础与选型:常见传感器类型与关键参数

大家好,我是你们的嵌入式全栈工程师。今天咱们聊聊传感器选型这件事。

说实话,我见过太多项目因为传感器选型翻车了。有的精度不够,有的采样率跟不上,还有的干脆就不匹配。所以这一章,咱们把基础打扎实。

1.1 常见传感器类型

先说说最常见的几类传感器。你想想看,一个典型的物联网项目,基本离不开这几样。

温度传感器

温度传感器是最基础的。常用的有热电偶、热敏电阻、数字温度传感器(比如DS18B20)。

我个人习惯,如果精度要求不高,用DS18B20就够了。它直接输出数字信号,省去模拟采样的麻烦。

小提示: 我在项目中遇到过,DS18B20的转换时间比较长(约750ms),如果你需要高速采样,得换方案。

湿度传感器

湿度传感器通常和温度集成在一起,比如DHT11、DHT22、SHT30。

DHT11便宜但精度差,DHT22好一些。SHT30是工业级,我最近的项目都在用。

注意: 湿度传感器容易受结露影响。我曾经在户外项目中吃过亏,湿度一高数据就飘。后来加了防护罩才解决。

压力传感器

压力传感器分绝对压力、表压、差压。常见的有MEMS压力传感器(比如BMP280)、应变片式压力传感器。

嗯,这里要注意:BMP280只能测大气压,不能测液体压力。别搞混了。

光照传感器

光照传感器有光敏电阻、光电二极管、数字光照传感器(比如BH1750)。

BH1750是我比较推荐的。它直接输出lux值,I2C接口,用起来很方便。

1.2 传感器关键参数

选传感器,说白了就是看几个参数。我总结了一个口诀:精度、分辨率、采样率,一个都不能少。

参数 说明 我的经验
精度 测量值与真实值的偏差 别只看数据手册,实际测试更重要
分辨率 能检测到的最小变化量 分辨率高不一定精度高,别被忽悠
采样率 每秒采集数据的次数 根据你的应用场景来,不是越高越好

精度

精度是硬指标。比如温度传感器标称±0.5°C,那实际测量值就在真实值±0.5°C范围内。

我建议:选型时留出余量。比如你需要±1°C的精度,那就选±0.5°C的传感器。为什么?因为实际使用中,温度漂移、老化都会影响精度。

分辨率

分辨率是能分辨的最小变化。比如12位ADC,分辨率是满量程的1/4096。

但分辨率高不代表精度高。我见过有人用24位ADC配一个精度很差的传感器,结果数据抖动得厉害。说白了,木桶效应。

采样率

采样率决定了你能捕捉多快的变化。比如温度变化慢,1Hz就够了。但振动监测可能需要1000Hz以上。

我曾经做过一个项目,用10Hz的采样率去测快速变化的压力,结果数据完全失真。后来换成100Hz才搞定。

1.3 选型方法论

选传感器,我有一套自己的方法。分享给大家。

  1. 明确需求:先搞清楚你要测什么、精度要求、采样率要求、工作环境。
  2. 列出候选:根据需求,列出3-5个候选传感器。
  3. 对比参数:对比精度、分辨率、采样率、功耗、成本。
  4. 看接口:模拟还是数字?I2C、SPI还是UART?
  5. 实际测试:买样品回来测,别光看数据手册。
核心原则: 选型不是选最好的,而是选最合适的。够用就好,别过度设计。

避坑指南

我曾经在选型时踩过不少坑,这里列几个典型的:

  • 只看精度不看温度漂移——结果温度一变,数据就偏了。
  • 忽略传感器响应时间——测快速变化时数据滞后。
  • 没考虑功耗——电池供电的项目,传感器功耗比MCU还大。

1.4 实战案例:选一个温度传感器

假设我们要做一个室内温度监测系统。需求如下:

  • 精度:±0.5°C
  • 采样率:1Hz
  • 接口:I2C
  • 成本:尽量低

候选传感器:DS18B20、SHT30、BMP280(带温度)。

对比一下:

传感器 精度 采样率 接口 成本
DS18B20 ±0.5°C 1.3Hz 1-Wire
SHT30 ±0.3°C 10Hz I2C
BMP280 ±1.0°C 1Hz I2C/SPI

最终我选了SHT30。精度满足,采样率有余量,I2C接口方便。虽然贵一点,但省心。

好了,这一章就到这里。下一章咱们聊聊传感器接口与通信协议,到时候见。