1. 传感器基础与选型:常见传感器类型与关键参数
大家好,我是你们的嵌入式全栈工程师。今天咱们聊聊传感器选型这件事。
说实话,我见过太多项目因为传感器选型翻车了。有的精度不够,有的采样率跟不上,还有的干脆就不匹配。所以这一章,咱们把基础打扎实。
1.1 常见传感器类型
先说说最常见的几类传感器。你想想看,一个典型的物联网项目,基本离不开这几样。
温度传感器
温度传感器是最基础的。常用的有热电偶、热敏电阻、数字温度传感器(比如DS18B20)。
我个人习惯,如果精度要求不高,用DS18B20就够了。它直接输出数字信号,省去模拟采样的麻烦。
湿度传感器
湿度传感器通常和温度集成在一起,比如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 选型方法论
选传感器,我有一套自己的方法。分享给大家。
- 明确需求:先搞清楚你要测什么、精度要求、采样率要求、工作环境。
- 列出候选:根据需求,列出3-5个候选传感器。
- 对比参数:对比精度、分辨率、采样率、功耗、成本。
- 看接口:模拟还是数字?I2C、SPI还是UART?
- 实际测试:买样品回来测,别光看数据手册。
避坑指南
我曾经在选型时踩过不少坑,这里列几个典型的:
- 只看精度不看温度漂移——结果温度一变,数据就偏了。
- 忽略传感器响应时间——测快速变化时数据滞后。
- 没考虑功耗——电池供电的项目,传感器功耗比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接口方便。虽然贵一点,但省心。
好了,这一章就到这里。下一章咱们聊聊传感器接口与通信协议,到时候见。