第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的温度数据。到时候见!