第2章:传感器基础——分类、工作原理与关键参数
大家好,我是你们的物联网实战讲师。今天咱们聊聊传感器的基础知识。说实话,很多新手一上来就急着调代码、连云端,结果传感器数据不准,排查半天才发现是选型就错了。嗯,这节课我们就来把传感器的底子打牢。
2.1 传感器的分类
传感器种类繁多,但按检测的物理量来分,其实就几大类。我个人习惯把它们分成「环境感知类」和「物理量检测类」。
2.1.1 温度传感器
这个大家最熟悉。从老式的热敏电阻,到数字化的DS18B20,再到高精度的PT100铂电阻。我在项目中遇到过用DS18B20做温室大棚监测,便宜又好用,但要注意它的响应速度比较慢,不适合快速变化的场景。
2.1.2 湿度传感器
常见的DHT11、DHT22、SHT30。DHT11精度一般,但胜在便宜。SHT30就贵不少,但稳定性好。我记得有一次做仓库湿度监控,用了DHT11,结果数据跳得跟心电图似的,后来换成SHT30才搞定。
2.1.3 压力传感器
从MEMS气压计(比如BMP280)到工业用的扩散硅压力变送器。BMP280还能测海拔,我拿它做过无人机的高度计,效果还行,但要注意温度漂移。
2.1.4 光敏传感器
光敏电阻、BH1750数字光照传感器。光敏电阻便宜但线性度差,BH1750精度高,直接输出lux值。做智能窗帘项目时,我建议用BH1750,省去自己标定的麻烦。
2.1.5 其他常见传感器
- 气体传感器:MQ系列(MQ-2烟雾、MQ-7一氧化碳)
- 超声波传感器:HC-SR04,测距用的
- 红外传感器:人体红外PIR,做人体检测
2.2 传感器的工作原理
说白了,传感器就是把物理量变成电信号。怎么变的?主要有这么几种原理:
2.2.1 电阻式
物理量变化导致电阻值变化。比如热敏电阻,温度升高电阻变小(NTC型)。光敏电阻也是,光照越强电阻越小。电路上搭个分压电路,用ADC读电压就行。
2.2.2 电容式
比如湿度传感器,湿敏电容的介电常数随湿度变化,导致电容值变化。这种传感器功耗低,但容易受干扰。
2.2.3 压电式
压力传感器常用这个原理。压电材料受力后产生电荷,电荷量跟压力成正比。我曾经用压电陶瓷做振动检测,灵敏度很高,但静态压力测不了——电荷会泄漏。
2.2.4 数字接口式
现在很多传感器直接内置了ADC和数字接口(I2C、SPI、单总线)。比如BMP280,直接读出温度和气压数值,不用自己算。我个人特别喜欢这种,省心。
2.3 关键参数详解
选传感器不能只看价格。这三个参数你必须搞明白:精度、分辨率、量程。我见过太多人把精度和分辨率搞混了。
2.3.1 精度
精度是测量值和真实值的偏差。比如温度传感器精度±0.5℃,意思是测出来25℃,实际可能在24.5℃到25.5℃之间。精度越高,价格越贵。
重要提醒:精度不等于分辨率。分辨率是能感知的最小变化,精度是准不准。一个传感器分辨率0.1℃,但精度可能只有±2℃。
2.3.2 分辨率
分辨率是传感器能检测到的最小变化量。比如一个10位ADC的温度传感器,量程0-100℃,分辨率就是100/1024≈0.098℃。但注意,这只是理论值,实际受噪声影响可能达不到。
2.3.3 量程
传感器能正常工作的测量范围。比如压力传感器量程0-100kPa,你非要测200kPa,那要么烧坏,要么输出饱和。选型时一定要留余量,我一般留20%的余量。
2.4 实战选型建议
说了这么多,到底怎么选?我给大家一个参考表:
| 传感器类型 | 推荐型号 | 精度 | 量程 | 接口 | 参考价格 |
|---|---|---|---|---|---|
| 温度 | DS18B20 | ±0.5℃ | -55~125℃ | 单总线 | 5元 |
| 温湿度 | SHT30 | ±2%RH / ±0.3℃ | 0~100%RH / -40~125℃ | I2C | 15元 |
| 气压 | BMP280 | ±1hPa | 300~1100hPa | I2C/SPI | 10元 |
| 光照 | BH1750 | ±1lux | 1~65535lux | I2C | 8元 |
| 超声波测距 | HC-SR04 | ±3mm | 2cm~400cm | GPIO | 5元 |
我的小技巧:初学者先买几个DS18B20和BH1750练手,便宜、资料多、不容易坏。等熟悉了再上SHT30这种高精度传感器。
2.5 避坑指南
最后分享几个我踩过的坑:
- 电源噪声:传感器对电源很敏感。我曾经用面包板供电,结果ADC读数跳个不停。后来加了100uF电容滤波,问题解决。
- 线长问题:I2C线超过20cm就容易出问题。DS18B20的单总线可以长一些,但也要注意寄生电容。
- 标定很重要:买来的传感器不一定准。我习惯用标准温度计或湿度计做对比,然后软件里做偏移校正。
- 防护措施:室外用的传感器要做好防水防尘。我有个项目把传感器直接暴露在户外,结果一个月就坏了。
警告:千万不要在传感器通电时插拔!尤其是数字传感器,很容易烧坏IO口。我吃过这个亏,一次烧了三个传感器,心疼啊。
好了,这一章的内容就到这里。传感器是物联网的「眼睛」,选对、用好,后面的数据采集和云端对接才能顺利。下一章我们开始实战,用STM32读取DS18B20的温度数据。到时候见!