本次主要讲述通过树莓派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进行查看。