本文主要讲述通过树莓派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传感器和树莓派开发板的连接,接下来上电即可正常运行。 三、数据采集代码 pm2.5.py代码如下: 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进行查看。
|