钡铼R40边缘计算网关与华为云合作,促进物联网传感器数据共享与应用

场景说明

微型气象是不可预测的,基本上不能通过人工手段来分析其变化,因此必须运用新技术,对气象进行实时监测,以便采取相应的措施来避免或解决事故的发生。而常规气象环境数据采集容易造成数据损失、人力成本高、数据安全性差、可追踪性差等问题。为解决上述问题,可以通过网关将设备采集的数据上报到华为云IoT平台,实现对现场设备数据的实时监控,您可通过华为云IoT平台实时查看现场温度、湿度、光照、风速等环境数据,并对数据进行转储、分析等处理,同时也能通过IoT平台对设备进行控制。本文以金鸽的R40设备为例进行演示。

整体流程

整体流程如图所示:

图1 整体流程图

前提条件

  • 硬件要求:三个输出为12V 1000mA的电源。

设备简介

R40(如图2)负责将传感器的数据收集上来,上报到华为云IoT平台,同时负责将华为云IoT平台下发的控制信息下发给传感器。其中演示的传感器设备有如下三种:

1. 风速变送器(如图3)将采集到的风速通过电流信号输出给R40;

2. 气象多要素百叶箱(如图4)将采集到的噪声、光照、温湿度信息通过RS485口(Modbus协议)输出给R40。

3. 报警器(如图5)通过R40的DO口接收从华为云IoT下发给的控制信息。

图2 R40介绍

图3 风速变送器

图4 气象多要素百叶箱

图5 警报器

硬件连接

  1. 将风速变送器的棕色线和黑色线分别接到外部电源的正级和负极,将蓝色线和绿色线分别接入到R40的AIN1口和AGND口(见下图)。图6 风速变送器连接R40

  2. 将气象多要素百叶箱的棕色线和黑色线分别接到电源的正极和负极,将黄色线和蓝色线分别接入到R40的485A口和485B口(见下图)。

    图7 气象多要素百叶箱连接R40

  3. 将报警器的红色线和黑色线分别接到电源正极和R40的DO2口,将电源的负极接入到R40的DO1口(见下图)。

    图8 报警器连接R40

控制台操作概览

在真实设备连接之前,需要在设备接入服务控制台创建产品、定义产品模型和注册设备。

  • 创建产品:在物联网平台上规定好某一款产品的协议类型、数据格式、厂商名称、设备类型。此处我们需要按照R40的特征,在控制台创建R40的产品。
  • 定义产品模型:产品模型是用来描述设备能力的文件,通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的属性信息,例如风速、光照强度、温湿度、噪声等。
  • 注册设备:将R40设备注册到物联网平台。

创建产品

某一类具有相同能力或特征的设备的集合称为一款产品。除了设备实体,产品还包含该类设备在物联网能力建设中产生的产品信息、产品模型(Profile)等资源。下面,我们按照R40的基本特征,在控制台上创建R40产品。

  1. 访问设备接入服务,单击“立即使用”进入设备接入控制台。
  2. 选择左侧导航栏的“产品”,然后单击右上角的创建产品,创建一个基于MQTT协议的产品,参考下表填写参数后,单击“确定”,完成产品的创建。

    基本信息

    所属资源空间

    选择您需要归属到的资源空间

    产品名称

    自定义,如“R40”

    协议类型

    选择“MQTT”

    数据格式

    选择“JSON”

    厂商名称

    自定义,如“huawei”

    所属行业

    设备类型

    EnvironmentalMonitoringDevice

  3. 产品创建成功后,单击“查看详情”按钮进入产品界面,进行后面操作。

上传产品模型

产品模型是用来描述设备能力的文件,通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备的功能。我们已提供开发好的产品模型,帮助您快速体验上云流程,如果您想体验产品模型的开发流程,可参考开发产品模型。

操作步骤

  1. 在产品详情“模型定义”页面,单击“上传模型文件”。
  2. 在弹出的页面中,上传提供的产品模型(本示例的产品模型),然后单击“确认”。

    图9 添加文件

注册设备

  1. 在管理控制台页面,选择左侧导航栏“设备 > 所有设备”,单击页面右上角的“注册设备”。
  2. 根据页面提示信息填写参数,然后单击“确定”。

    参数名称

    说明

    所属资源空间

    确保和之前创建的产品归属在同一个资源空间。

    所属产品

    选择之前创建的产品。

    设备标识码

    即nodeID,设备唯一物理标识。可自定义,由英文字母和数字组成。

    设备名称

    即device_name,可自定义。

    设备认证类型

    选择密钥。

    密钥

    设备密钥,可自定义,不填写物联网平台会自动生成。

    成功注册设备后,平台会自动生成设备ID和密钥,请妥善保管好设备ID(deviceId)和密钥(deviceSecret),用于设备接入。

R40配置

在R40上需要对传感器的参数进行配置:

风速变速器相关配置:

  • R40上电后,在自己的电脑上连接King开头的wifi,连上后在浏览器中输入地址192.168.3.1进入R40的配置界面。
  • 输入用户名(默认为admin)和密码(默认无密码)后,点击“登录”按钮。
  • 点击上方菜单栏“RTU I/O”,选中“模拟量接入”,进入模拟输入配置界面。

  • 在AIN1输入一行(因为风速变速器选择的是该口)中,选择“电流4~20mA”(风速变送器的输出为该值)。并且按照传感器推荐的将最小值设置为0,最大值设置为30,单位设置为m/s。
  • 设置完毕后,点击“保存并应用”。
  • 通过旋转风速变送器的扇叶,然后刷新一下当前的配置页,可以看到“当前值”那一栏中有数据,说明已经能采集到传感器的数据。

气象多要素百叶箱相关配置:

说明

从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。

映射地址为R40的寄存器地址,建议改为手动,同时设置映射地址。因为该地址跟物模型中的属性是对应的,属性名称需要设置成“REG”+ 映射起始地址。这里设置20004是因为物模型中已经设置了REG20004的属性名。

  • 从噪声查看页点击“返回至概况”,在Modbus设置界面下方的空白框处填写“lightIntensity”,点击“添加”按钮。添加完成后,点击“编辑”按钮(“删除”按钮旁的那一个),进入传感器的配置界面。
  • 在配置界面,将别名设置为“光照强度”,从机地址设置为“5”,寄存器类型设置为“32位数据”,功能码设置为“03”,寄存器起始地址设置为“0”,数据个数设置为“1”,映射地址分配设置为“手动”,映射起始地址设置为“20130”,从机接口设置为“RS485”。

  • 设置完毕后,点击“保存”。然后点击左下角的“返回至概况”。然后点击“保存并应用”
  • 点击“lightIntensity”这一行的“查询”按钮,可以看到“数据值”,如果周围光照强度发生改变,可以通过刷新按钮来查看值的变化。

说明

从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。

映射地址为R40的寄存器地址,建议改为手动,同时设置映射地址。因为该地址跟物模型中的属性是对应的,属性名称需要设置成“REG”+ 映射起始地址。这里设置20130是因为物模型中已经设置了REG20130的属性名。

  • 从光照强度查看页点击“返回至概况”,在Modbus设置界面下方的空白框处填写“shidu”,点击“添加”按钮。添加完成后,点击“编辑”按钮(“删除”按钮旁的那一个),进入传感器的配置界面。
  • 在配置界面,将别名设置为“湿度”,从机地址设置为“1”,寄存器类型设置为“16位数据”,功能码设置为“03”,寄存器起始地址设置为“500”,数据个数设置为“1”,映射地址分配设置为“手动”,映射起始地址设置为“20015”,从机接口设置为“RS485”。

  • 设置完毕后,点击“保存”。然后点击左下角的“返回至概况”。然后点击“保存并应用”
  • 点击“shidu”这一行的“查询”按钮,可以看到“数据值”,如果周围光照强度发生改变,可以通过刷新按钮来查看值的变化。

说明

从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。

映射地址为R40的寄存器地址,建议改为手动,同时设置映射地址。因为该地址跟物模型中的属性是对应的,属性名称需要设置成“REG”+ 映射起始地址。这里设置20115是因为物模型中已经设置了REG20115的属性名。

  • 从湿度强度查看页点击“返回至概况”,在Modbus设置界面下方的空白框处填写“wendu”,点击“添加”按钮。添加完成后,点击“编辑”按钮(“删除”按钮旁的那一个),进入传感器的配置界面。
  • 在配置界面,将别名设置为“温度”,从机地址设置为“1”,寄存器类型设置为“16位数据”,功能码设置为“03”,寄存器起始地址设置为“501”,数据个数设置为“1”,映射地址分配设置为“手动”,映射起始地址设置为“20003”,从机接口设置为“RS485”。

  • 设置完毕后,点击“保存”。然后点击左下角的“返回至概况”。然后点击“保存并应用”
  • 点击“shidu”这一行的“查询”按钮,可以看到“数据值”,如果周围光照强度发生改变,可以通过刷新按钮来查看值的变化。

说明

从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。

映射地址为R40的寄存器地址,建议改为手动,同时设置映射地址。因为该地址跟物模型中的属性是对应的,属性名称需要设置成“REG”+ 映射起始地址。这里设置20003是因为物模型中已经设置了REG20003的属性名。

R40上报到平台的配置:

  • 在上方的菜单栏中选择“云平台”,选择“华为云”。“认证方式”选择“设备密钥”,设备ID和密钥在iot平台注册所得,服务ID填写“basicData”,发布周期填写60。
  • 配置完后,点击“保存并应用”。设置完毕后,R40会自动连上华为云iot平台,并且每隔60s报一次数据。

设备上线及数据上报

在华为云IoT平台的“设备”>“所有设备”一栏里,可以看到注册的设备已经上线了。

在上述页面点击该设备右侧的“查看”按钮,可以看到上报的数据。

属性配置下发

单击上图的“设备影子”>“属性配置”>设置DO1为1,然后点击“确定”按钮,即可听到报警器发出报警声,代表属性设置成功。

说明

其中的服务名称basicData是在产品模型中自定义的,可以修改为自定义的内容,同时上报数据时也需要同步修改。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/92074.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PPPoE连接无法建立的排查和修复

嗨,亲爱的读者朋友们!你是否曾经遇到过PPPoE连接无法建立的问题?今天我将为你详细解析排查和修复这个问题的步骤。 检查物理连接 首先,我们需要确保物理连接没有问题。请按照以下步骤进行检查: - 检查网线是否插好&…

MATLAB中circshift函数转化为C语言

背景 有项目算法使用matlab中circshift函数进行运算,这里需要将转化为C语言,从而模拟算法运行,将算法移植到qt。 MATLAB中circshift简单介绍 circshift是循环移位函数。可以使用于数组和矩阵元素的循环移位。 当A是数组 Bcircshift(A,p);如果…

【Sword系列】Vulnhub靶机HACKADEMIC: RTB1 writeup

靶机介绍 官方下载地址:https://www.vulnhub.com/entry/hackademic-rtb1,17/ 需要读取靶机的root目录下key.txt 运行环境: 虚拟机网络设置的是NAT模式 靶机:IP地址:192.168.233.131 攻击机:kali linux,IP地…

unity界面上Global 与Local xyz- right up forward

gloabal 如果要沿这个方向移动就比较困难 local下就不一样了

Python 分析HTTP的可靠性

在这篇文章中,我们将介绍如何使用 Python 来分析代理服务提供商的可靠性。代理服务在许多场景中都非常有用,例如突破地理限制、保护隐私和提高网络安全性。然而,并非所有的代理服务提供商都是可靠的。因此,我们将使用 Python 来测…

ubuntu20.04+ROS noetic在线运行单USB双目ORB_SLAM

双目摄像头主要有以下几种,各有优缺点。 1.单USB插口,左右图像单独输出2.双USB插口,左右图像单独输出(可能存在同步性问题)3.双USB插口,左右图像合成输出4.单USB插口,左右图像合成输出 官方版…

专业数据恢复方法推荐,拯救数据靠它啦!

“谁能帮帮我!一不小心删除了一大堆电脑文件,很多还是超级重要的,有些文件我都没有备份啊!还有机会找回来吗?大家有没有比较好的专业数据恢复可以推荐?” 数据丢失对于个人和企业而言都可能造成严重影响&am…

Java设计模式:四、行为型模式-06:观察者模式

文章目录 一、定义:观察者模式二、模拟场景:观察者模式2.1 观察者模式2.2 引入依赖2.3 工程结构2.4 模拟摇号2.4.1 摇号服务接口2.4.2 摇号返回结果类 三、违背方案:观察者模式3.0 引入依赖3.1 工程结构3.2 添加摇号接口和实现3.2.1 摇号服务…

Flux语言 -- InfluxDB笔记二

1. 基础概念理解 1.1 语序和MySQL不一样,像净水一样通过管道一层层过滤 1.2 不同版本FluxDB的语法也不太一样 2. 基本表达式 import "array" s 10 * 3 // 浮点型只能与浮点型进行运算 s1 9.0 / 3.0 s2 10.0 % 3.0 // 等于 1 s3 10.0 ^ 3.0 // 等于…

关于C语言参数传递的

一、C语言参数传递是整体带入 #include <stdio.h> #define DF(a,b) (a2*b) int main() { int s5; int k DF((s1),(s-3)); printf("%d",k); }输出结果 原因&#xff1a; #define DF(a,b) (a2*b) int k DF((s1),(s-3)); //等效 int k DF((s1)2 * (s-3)); …

使用spring自带的发布订阅机制来实现消息发布订阅

背景 公司的项目以前代码里面有存在使用spring自带发布订阅的代码&#xff0c;因此稍微学习一下如何使用&#xff0c;并了解一下这种实现方式的优缺点。 优点 实现方便&#xff0c;代码方面基本只需要定义消息体和消费者&#xff0c;适用于小型应用程序。不依赖外部中间件&a…

40张酷炫可视化大屏,小白直接套用,提升你99%的工作效率!

做前端开发的各位&#xff0c;是不是都开始逐渐意识到&#xff0c;老板越来越喜欢用可视化大屏了。我老板前几天出差去苏州一个公司考察&#xff0c;刚进门就被领到了人家公司的大屏面前&#xff0c;只一张大屏就展现了客户行业分布、市场占有率、员工学历分布等各种信息&#…