上云无忧 > 文档中心 > 百度智能云智能边缘 - 使用内置modbus驱动采集数据并进行边缘函数计算
智能边缘
百度智能云智能边缘 - 使用内置modbus驱动采集数据并进行边缘函数计算

文档简介:
概述: 本教程展示如何使用智能边缘完成一个简单的子设备数采和数据智能demo。 教程中会使用系统内置的modbus驱动,以及内置的modbus模拟器(模拟器仅支持容器模式),实现边缘节点采集子设备数据,并通过函数计算测点值并上报到云端。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

概述

本教程展示如何使用智能边缘完成一个简单的子设备数采和数据智能demo。

教程中会使用系统内置的modbus驱动,以及内置的modbus模拟器(模拟器仅支持容器模式),实现边缘节点采集子设备数据,并通过函数计算测点值并上报到云端。

demo具体流程为:模拟一个温度计,云端采集温度计数据,同时将函数应用部署至边缘,实时比较温度与高温报警阈值,当温度超过阈值时会触发报警,将消息推送到指定目的地。

部署子设备模拟器

demo采用系统内置的设modbus备模拟器,modbus-tcp模拟器支持linux-amd64、linux-arm64、linux-armv7平台。

创建节点选择modbus模拟器,如下图所示:

在边缘节点设备上执行边缘节点安装命令,会自动同步安装modbus模拟器,安装完毕以后在本地执行kubectl get pod -n baetyl-edge-system,可以看到有一个baetyl-modbus-tcp-simulator的应用,如下图所示:

云端采集子设备数据

1. 创建产品

导航栏选择子设备管理,右侧通过导入产品创建产品。导入产品时上传产品-modbus-simulator.json文件。产品名为modbus-simulator,包含下图中一系列测点。

2. 创建接入模板、添加采集点、配置映射

导航栏选择子设备管理,右侧选择接入模板菜单,点击创建模板进行模板创建。关联产品选择上一步创建的modbus-simulator产品。名称我们这里填写为modbus-simulator-template,访问协议选择Modbus。

下一步点击查看进入创建的模板modbus-simulator-template,进行采集点添加和映射配置。也可以点击导入设备点表,然后上传 modbus-simulator-pointTableTemplate.csv点表文件,实现一键导入。操作完效果图如下:

3. 创建设备

导航栏选择子设备管理,右侧选择设备菜单,点击创建设备进行设备创建。产品选择之前创建的modbus-simulator,名称我们这里填写为modbus-test。下一步进入创建的modbus-test设备,可以看到如下效果:

注意: 此时还未部署驱动,测点值是空的。

4. 创建驱动,配置通道

进入创建的节点,选择子设备管理。右侧点击引入驱动,选择官方驱动modbus即可完成驱动创建。下一步点击modbus驱动的配置按钮,进行通道配置。按下图配置即可:

5. 绑定子设备,配置接入模板、通道等参数

在上一步所在页面,点击绑定子设备按钮,选择之前创建的mosbus-simulator产品,找到modbus-test设备,点击确认引入驱动关联的modbus-test子设备。接下来,点击配置按钮进行参数配置。参考下图进行配置:

6. 部署驱动

点击部署驱动按钮,bie将为您自动部署驱动。一会儿后,刷新页面,您将刚看下图效果:

7.读取设备测点值和置数

在看到上一步的设备状态在线后,点击查看即可查看设备的测点值。

测点值列出现模拟器的测点数值,针对“开关”和“高温阈值“可以进行置数和召测。如开关置数为“false”后,测点值将不在变化。

8. 订阅子设备上报数据

除了在云端读取子设备数据外,也可通过baetyl-broker读取数据。边缘驱动会将子设备数据实时的推送到baetyl-broker的$baetyl/device/{device-name}/report

{
    "kind":"deviceReport",
    "meta":{
        "device":"mod-test-1"
    },
    "content":{
        "high-temperature-alarm":false,
        "high-temperature-threshold":324,
        "humidity":74.66774,
        "switch":true,
        "temperature":315.88257
    }
}

边缘函数计算

本章节实现边缘数据计算,确保当温度高于高温阈值时,触发报警。

1. 增加系统应用

函数计算和消息流转需要用到baetyl-function和baetyl-rule两个系统应用。在节点详情页,进入应用部署页,添加系统应用,添加后应用会自动部署到边缘节点上。

2. 编写函数

创建一个函数配置项,比较温度与高温报警阈值,当温度高于阈值时,返回true。

python代码如下,其中event达到broker指定topic的子设备数据:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

def handler(event, context):
  content = event['content']
  temperature = content['temperature']
  temperature_threshold = content['high-temperature-threshold']
  result = temperature > temperature_threshold

  return result

3. 部署函数应用

创建一个新的函数应用,创建卷时选择第一步的函数配置项并挂载到容器。运行时选择python,函数名称之后在配置规则转发时会用到,函数入口填写<配置项文件名.函数名>,此处为index.handler。

创建好函数应用后将其部署到节点上。

4. 配置消息流转

通过配置baetyl-rule实现消息流转,该应用可订阅 baetyl-broker 的消息主题,发送到自身的其他消息主题,同时支持函数处理。 点击rule应用,修改rule-conf的配置项,修改conf文件内容如下。其中target可以定义为云端的任意broker,此处设置为端上的baetyl-broker

rules:
  - name: modbus
    source:
      topic: $baetyl/device/modbus-device1/report
      qos: 0
    target:
      topic: $baetyl/device/modbus-device1/result
      qos: 0
    function:
      name: modbus-demo
logger:
  level: debug
  encoding: console

验证

订阅baetyl-broker的消息,左侧为子设备上报到云端的数据测点值,右侧为测点值通过本地函数处理后上报的告警信息。

相似文档
  • 背景描述: BIE内置baetyl-broker应用,作为边缘消息中间件。同时BIE内置南向驱动采集的数据,也都是先到baetyl-broker模块,然后通过云边协同baetyl-core将消息上报至云端。为了调试方便,通常有连接边缘baetyl-broker查看指定topic消息的需求。
  • 场景说明: 数据已经采集到的边缘broker,还需要将采集到的数据上报至云端,本文讲解如何将边缘业务数据上传至远端MQTT Broker。 上传至百度IoT Core。 一、前提准备: 一个能获取设备数据的连网边缘节点(本demo采用应用案例中的modbus采集温湿度传感器demo节点为测试节点。)
  • 本章利用opcua模块,完整演示从OPCUA信号源采集信息的demo。 本demo利用PC当边缘节点,OPCUA信号源采用模拟服务器。模拟服务器和节点在同一PC上。
  • 规则引擎最先被应用在物联网云平台中。针对大量的物联网设备数据,规则引擎通过支持灵活的规则设置,对设备传上云端的设备时序数据、进行过滤、丰富、变换、动作、推送至不同的数据目的地(如时序数据库TSDB、Kafka、对象存储BOS等)以达到不同的业务目标。物联网规则引擎是基于事件驱动的数据流处理引擎,支持多种规则定义方式和描述方式。
  • 本文以一个常见的物联网使用场景为案例,介绍了如何利用边缘计算框架 Baetyl 来实现对业务的快速、低成本和有效地处理。 在各类物联网项目中,比如智能楼宇项目,需要采集和分析楼宇数据,如电梯、燃气、水电等。一种解决方案是将所有的设备直接接入在云端的物联网平台,类似于像 Baidu IoT Core 或者 AWS IoT Core。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部