想给房间、小车或空气净化器加一个能实时读出污染值的“鼻子”,PMS7003是很多人的首选。它用激光散射原理测颗粒物,能同时给出PM1.0、PM2.5、PM10的浓度,精度和性价比都在线,室内空气监测、DIY空气净化器基本都靠它。这篇把接线、串口读取、数据解析一次讲清楚。
PMS7003怎么接线到Arduino
PMS7003模块接口是10针座,常用的就四根:VCC接5V、GND接地、RX接Arduino的TX、TX接Arduino的RX,VCC和GND之间最好并一个10到100微法的电解电容做电源去耦。它的通信走UART串口,波特率9600。注意RX和TX要交叉接——传感器发数据走TX,所以要接到Arduino的RX上;反过来它收指令的RX接Arduino的TX。

原理图把关键连接画得很清楚:VCC到5V、GND共地、传感器的TX/RX和Arduino的RX/TX交叉相连。接线时务必把两边的地接在一起,串口通信不共地很容易读到乱码或全是0。
用软件串口读它:代码思路
因为Arduino UNO的硬件串口常被用来打印调试,很多人会用SoftwareSerial再软开一路串口接PMS7003。传感器默认会自动持续往外发数据,一帧32字节,前两个字节固定是0x42 0x4D(校验头),读够32字节后从第10、11字节可以拆出PM2.5数值。拿到原始浓度后,再用官方库或自己按帧头、校验和来校验,就能稳定得到一组干净的读数,然后打印在串口监视器上或送进LCD显示。

这就是实际跑起来的样子——PMS7003在桌面安静地吹气测空气,把读数显示出来,房间一有人抽烟数值就往上跳。拿这套做室内空气质量监测小屏,或者联动风扇做自动换气,都是很实用的DIY。
两个使用提醒
一是传感器内部有一个微型风扇,工作电流比一般传感器大一点,5V供电别从会被拉垮的引脚上取,最好直接来自稳压输出。二是数据是自动一直往外发的,不用自己发查询指令,只要处理好校验和、丢弃无效帧就行;初次用先打印原始十六进制观察,确认能稳定收到0x42 0x4D开头再写解析逻辑。







拿它接风扇联动做自动换气挺好,抽烟的人秒懂
拆PM2.5就用它测一下房间,数值还真会肉眼可见地涨
先看帧头0x42 0x4D,校验和不过的帧直接丢,不然读数会跳
5V供电前先并个大电容,风扇启动电流不小,供电稳了数据才稳