本次主要讲述通过树莓派4B开发板采集PM2.5传感器数据并推送到ThingsPanel进行查看(插件已经开发并安装,插件开发参照 https://github.com/ThingsPanel/docker/wiki/4.-Development也可以直接复制extensions目录下的 WeatherStations 插件按上面教程修改进行更改)。
一、硬件准备
树莓派4B开发板

攀藤PM2.5传感器PMSA003

攀藤PM2.5传感器PMSA003转接板

4根杜邦线

二、硬件连接
1、将4根杜邦线一端连接到攀藤PM2.5传感器PMSA003转接板,线序如下图所示。

2、将攀藤PM2.5传感器PMSA003转接板接到攀藤PM2.5传感器PMSA003上,如下图所示。


3、将4根杜邦线另一端连接到树莓派4B开发板线序如下图所示。

这样就完成了PM2.5传感器和树莓派开发板的连接,接下来上电即可正常运行。
三、数据采集代码
import serial
import time
import sys
import json
import datetime
import binascii
class pmsA003():
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] == b'\x4d':
self.data = bytearray(b'\x42' + data)
if self.vertify_data():
return self._PMdata()
def _PMdata(self):
d = {}
d['time'] = datetime.datetime.now()
d['apm25'] = self.data[6] * 256 + self.data[7]
d['apm10'] = self.data[4] * 256 + self.data[5]
d['apm100'] = self.data[8] * 256 + self.data[9]
return d
if name == 'main':
print "starting..."
con = pmsA003('/dev/ttyAMA0')
d = con.read_data()
print(d)
print "Time :",(d["time"])
print "PM 2.5:",(d["apm25"])
print "PM 10 :",(d["apm10"])
print "PM 100:",(d["apm100"])
#print d
完整代码自取。
链接:https://pan.baidu.com/s/1Y0TzMkBrEaTgyk6pSeaLJQ
提取码:u31k。
四、平台创建业务展示数据
1、新建业务
登录平台后依次点击业务-新增,编辑业务名称并保存。


点击编辑业务进行业务编辑

输入资产名称及资产别称选择传感器。

点击代码修改选择MQTT协议,并输入TOKEN值并保存

点击代码进行数据映射,输入设备端字段名和插件预设值并保存,这样就完成了业务的创建。

2、新建可视化
点击可视化-新增,新建可视化

输入名称,选择业务并保存。

点击可视化图表新增可视化图表和配置

点击右上角+新增可视化图表。

选择资产-设备-可视化单元后点击保存就完成了可视化图表的新建,可以查看PM2.5数据。


这样就完成了通过树莓派4B开发板采集PM2.5传感器数据并推送到ThingsPanel进行查看。
