自学内容网 自学内容网

树莓派+攀腾PMSA003-PM2.5传感器监测空气质量【含源码+接线图】

在使用树莓派+攀腾PMSA003-PM2.5传感器,采集PM2.5数据,

 下面是接线图,因为PMSA003引脚比较小,直接使用1.25的线不方便,建议购买一个转线版在电商搜索一下(PMSA转接板)就有了,插上之后就只有4个引脚了(VCC,GND,RX,TX)

接线除了VCC和GND之外,RX和TX要接在树莓派的TX和RX上,如下图PMSA 4,5引脚接线所示。

实际图如下

可选的:PMSA的RX和TX管脚均需要 3.3V 作为高电平,也可以加上电平转化电路,转化电压。

读取攀腾PMSA003-PM2.5传感器的代码如下

 参考了树莓派+攀腾PMSA003-PM2.5传感器监测空气质量【含源码】的源码。

#!/usr/bin/env python
import serial
import time

class pmsA003(serial.Serial):
    def __init__(self, dev):
        self.serial = serial.Serial(dev, baudrate=9600, timeout=3)

    def __exit__(self, exc_type, exc_value, traceback):
        self.serial.close()

    def setIdel(self):
        idelcmd = b'\x42\x4d\xe4\x00\x00\x01\x73'  # 进入待机状态,风扇停止转动
        ary = bytearray(idelcmd)
        self.serial.write(ary)

    def setNormal(self):
        normalcmd = b'\x42\x4d\xe4\x00\x01\x01\x74'  # 恢复正常工作,风扇转动,主动发送数据
        ary = bytearray(normalcmd)
        self.serial.write(ary)

    def vertify_data(self):
        if not self.data:
            return False
        return True

    def read_data(self):
        while True:
            b = self.serial.read(1)
            if b == b'\x42':
                data = self.serial.read(31)
                if data[0] == 0x4d:
                    self.data = bytearray(b'\x42' + data)
                    if self.vertify_data():
                        return self._PMdata()

    def _PMdata(self):
        d = {}
        d['pm25'] = str(self.data[6] * 256 + self.data[7])
        d['pm10'] = str(self.data[4] * 256 + self.data[5])
        return d

if __name__ == '__main__':

    con = pmsA003('/dev/ttyAMA0')
    while True:
        d = con.read_data()
        print(d['pm25'])  # 输出pm2.5的数值
        time.sleep(5)

对于setIdel和setNormal里面的字节是指令,树莓派资料可参考这个基于TencentOS-tiny实现PM2.5传感器(攀藤PMSA003)数据解析思路及实现

程序传入进树莓派后,执行可能会遇到程序一直不输入任何东西,即一直挂载着,终止程序后出现

ready, _, _ = select.select([self.fd, self.pipe_abort_read_r], [], [], timeout.time_left())

 

我们将 串口名称从 '/dev/ttyAMA0',修改为 '/dev/serial0'即可,具体原因可参考我的另一篇博客内容。

修改后执行程序,就可以正常输出采集到的PM2.5浓度了。


 

希望这篇文章对你有所帮助。

参考链接:

树莓派+攀腾PMSA003-PM2.5传感器监测空气质量【含源码】

 基于TencentOS-tiny实现PM2.5传感器(攀藤PMSA003)数据解析思路及实现

 python hangs on serial write()


原文地址:https://blog.csdn.net/qi_yue_yu/article/details/140396471

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!