楼宇控制器的温湿度采集

操作准备

需求

通过modbus协议采集温湿度传感器的数据并上传到百度智能云物可视图表。

拓扑

温湿度传感器<--modbus--->4G路由器R3000(内置天工物联卡)<---MQTT--->百度智能云

主要步骤

  • 注册百度智能云天工账户,并开通物接入SIM版;
  • 将百度天工卡放置在4G路由器中的SIM卡槽中,连接传感器,配置APN接入点和拨号;
  • 配置天工物解析及物可视模块。

连线示意图、路由器APN和拨号设置如下两张图

注册百度天工账户,开通物接入(SIM版)

新建网关

在百度智能云物解析模块,新建一个网关(勾选SSL,加密连接)

在网关下添加子设备

我们是要采集挂在设备485串口下的温湿度传感器的数据;故模式选择RTU,串口号填写你是使用哪个串口,其他参数也和设备的串口对应。

创建解析项目

这里创建解析项目是用来配置任务以及对数据的解析存储;这里选择MODBUS协议;数据来源选择刚刚建立的网关,这里选择刚刚建立的robustelr3000;

数据的存储,这里是将数据存到百度智能云的BOS中去或者填写一个目的地主题,再通过规则引擎,将其转存到TSDB时序数据库中去(后面会提到);

完成之后,解析设置:

首先配置轮询设置:

这里选择我们的子设备,操作码为03; 地址为0,表示slave1的起始地址,长度选择2(读取数据长度:从地址开始,读取的数据长度。如果操作码为“01-线圈状态”,此处单位为bit;如果操作码为“03-保持寄存器”,此处单位为16-bit字。)

这里添加对刚设置的采集任务所采集上了的数据进行解析:

首先是温度值的解析,如下:

这里的地址填40001(Modbus设备内存中的地址,对于保持寄存器,地址范围是40001~49999之间)数据类型填REAL32,这里采集到的数据需要乘0.1才是真正的温度值(湿度也是同样),所以使用计算公式:x*0.1;(这里的x代表原始二进制数据解析后值)
湿度值的解析(与上面温度类似):

运行

在4G路由器R3000设备上已集成了IoT Edge SDK,
首先,新建一个名为:gwconfig.txt的文件,打开物解析的网关,查看密钥,并写入这个文件中。

登录设备网管页面,在Services-->IOT Parser下导入gwconfig.txt文件以及证书文件,打开开关,开始运行;

之后点击网关哪里的配置下发,将你配置到的轮询任务发送到设备,开始采集数据:

创建规则引擎

创建规则引擎,其作用是将iotparser解析modbus原始数据得到的数据存储到TSDB时数据库中,以便后面的图表的生成;

这里查询字段如下:
*, 'metrics' AS _TSDB_META_v2.metric_nodes.node1, 'timestamp' AS _TSDB_META_v2.ts, 'modbus.request.functioncode' AS _TSDB_META_v2.tags.tag1, 'modbus.request.slaveid' _TSDB_META_v2.tags.tag2, 'gatewayid' _TSDB_META_v2.tags.tag3, 'yyyy-MM-dd HH:mm:ssZ' AS _TSDB_META_v2.time_format
主题,是填写在创建解析项目的时候那个目的地主题;
数据库目的地选择之前所建立的时序数据库;提交之后,每次数据被采集上来并被iotparser所解析后的数据会通过这个规则引擎转存到这个时序数据库中去;

生成仪表盘等图表

进入物管理中的物可视,首先是编辑数据源:

创建完数据源之后, 还需要创建数据流:

分别创建温度和湿度的数据流:

完成之后,需要将这些上线:

再次回到物可视中去,创建仪表盘:

在这里可以设计数据通过什么来表达,以及整个的布局的规划等;

首先添加数据表:

之后选择一个组件,将数据和组件绑定:

完成之后,保存,并将这个仪表盘上线,还可以进行预览:

生成想要的仪表盘和图表后,需要对其进行部署,方可在web端访问查看,具体的部署,请参考百度物可视示例