0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Node-RED实现电表数据采集并上云

亿佰特物联网应用专家 2024-06-07 08:21 次阅读

本案例将通过Docker容器安装DLT-645协议插件采集实现电表数据上云,前面已经讲过Modbus RTU协议通过Node -RED上云,如果采用支持Modbus RTU电表可以参考之前的“Docker容器实现边缘采集”。

首先需要搭建Node-RED运行环境,可以参考以往案例,也可以直接百度搜索,接下来的部分都是在搭建好环境的基础上进行。

安装插件

打开“菜单”选择“节点管理”在点击控制板,选择“安装”;

d080d218-2463-11ef-bd4a-92fbcf53809c.png

搜索插件“node-red-contrib-meter-works”,点击安装即可,该插件由Node-RED社区的三方开发者制作的免费插件。

d0908032-2463-11ef-bd4a-92fbcf53809c.png

创建“流程”

这次使用MQTT服务器来转发数据,Node-RED内置MQTT3.1.1协议可以快速接入云服务器,创建一个“MQTT IN”节点用于接收平台请求数据;

d09cd26a-2463-11ef-bd4a-92fbcf53809c.png

上图“2”为添加一个MQTT连接(通过EMQX搭建的私有服务器,使用阿里云、ONENET等支持标准MQTT3.1.1服务器与此处类似);

d0c0b202-2463-11ef-bd4a-92fbcf53809c.pngd0ca85c0-2463-11ef-bd4a-92fbcf53809c.png

以阿里云为例演示如何配置标准MQTT3.1.1服务连接方法。

d0e70a4c-2463-11ef-bd4a-92fbcf53809c.pngd1008cce-2463-11ef-bd4a-92fbcf53809c.png

登录阿里云查询三要素;

d11835e0-2463-11ef-bd4a-92fbcf53809c.png

填入上面查询得到的三要素;

d135a12a-2463-11ef-bd4a-92fbcf53809c.pngd1570ce8-2463-11ef-bd4a-92fbcf53809c.png

查询或定义用于测试的Topic,也可以使用标准物模型的订阅发布Topic,如果使用标准物模型需要加入编解码过程,笔者这里先不讲,大家可以自己先研究下,只需要使用一个节点一个脚本即可实现;

d15eb3da-2463-11ef-bd4a-92fbcf53809c.png

配置订阅地址(也就是刚才选择的MQTT IN节点):

d17538a8-2463-11ef-bd4a-92fbcf53809c.png

点击部署,连接成功后于节点下方会提示“已连接”代表设备连接服务器成功,并成功订阅;

d196a2f4-2463-11ef-bd4a-92fbcf53809c.pngd1ae2ef6-2463-11ef-bd4a-92fbcf53809c.png

code_meter(DLT654查询节点)采用固定查询方式,为了实现不同的数据查询引入“SWITCH”节点,如若使用阿里云标准物模型就可以在“SWITCH”节点前加入“function”节点实现数据的解码;

d1ba781e-2463-11ef-bd4a-92fbcf53809c.png

笔者为了演示方便直接使用服务器下发“1”“2”“3”“4”分别代表查询“正向有功功率”“当前电压”“当前电流”“当前功率”;

d1dc2658-2463-11ef-bd4a-92fbcf53809c.png

配置code_meter节点的表号和功能码,按照相同方法配置“当前电压”“当前电流”“当前功率”;

d1f6e56a-2463-11ef-bd4a-92fbcf53809c.pngd22320bc-2463-11ef-bd4a-92fbcf53809c.png

DLT645是一个用于串口的收发协议,笔者暂时没有测试过Node-RED直接驱动串口节点(node-red-node-serialport),并且搭建Node-RED的USB被之前搭建的3D打印机(Kilpper)占用,不想调试参数,这里就使用串口服务器来转发数据,添加网络节点“tcp out”;

d24044ee-2463-11ef-bd4a-92fbcf53809c.png

根据配置的服务器参数配置串口服务器网络参数和串口参数,DDSU666电表默认采用2400-8O1,将串口服务器的串口参数与电表一致;

d26c717c-2463-11ef-bd4a-92fbcf53809c.png

至此已经完成指令发送的全部过程,如下所示。

d28ddcae-2463-11ef-bd4a-92fbcf53809c.png

接下来处理电表返回数据,配置“tcp in”节点采集串口服务器返回数据;

d2a9fd30-2463-11ef-bd4a-92fbcf53809c.png

添加“decode_meter”节点解析电表返回参数;

d2b15e04-2463-11ef-bd4a-92fbcf53809c.png

配置发布地址用于向服务器返回采集数据,一图为自建MQTT服务器,二图为阿里云MQTT服务器;

d2c19b20-2463-11ef-bd4a-92fbcf53809c.pngd2dab70e-2463-11ef-bd4a-92fbcf53809c.png

至此就完成了Node-RED服务器采集DLT645电表全部流程。

d2e4c8d4-2463-11ef-bd4a-92fbcf53809c.png

测试演示

自建服务器查询当前电压,利用MQTTX连接服务器,向Node-RED订阅地址“DLT645SUB”发送数据2,就会从Node-RED发布地址“DLT645PUB”收到当前电压值,发送其他指令代码也会收到对应数据;

d2f89ce2-2463-11ef-bd4a-92fbcf53809c.png

利用阿里云查询“当前电压”,利用云服务器调试接口向“/a1iJTfIclao/DEV01/user/get”Node-RED订阅地址发送数据2,就会从Node-REN发布地址“/a1iJTfIclao/DEV01/user/test”收到当前电压值,发送其他指令代码也会收到对应数据;

d31a0436-2463-11ef-bd4a-92fbcf53809c.png

查询MQTT日志,电表返回数据成功传输到服务器;

d32f35d6-2463-11ef-bd4a-92fbcf53809c.png

如果采用物模型就可以利用阿里云的提供的安卓软件“云智能”查看DDSU666的采集的参数。

产品推荐

d3609356-2463-11ef-bd4a-92fbcf53809c.jpg

E870-G1边缘计算网关是基于亿佰特自行研发的通讯协议《亿佰特云设备通讯协议》开发的以太网/4G边缘采集云网关,可通过服务器下发指令到设备达到控制或采集功能;可采集500个边缘数据点。设备上支持多种协议(TCP、UDP、MQTT)接入服务器,支持心跳包、注册包设置;同时该产品支持多种配置方式,支持网页平台;采用工业级设计标准,保证设备的高可靠性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据采集
    +关注

    关注

    38

    文章

    5898

    浏览量

    113503
  • 电表
    +关注

    关注

    12

    文章

    529

    浏览量

    35268
  • 智能电表
    +关注

    关注

    25

    文章

    930

    浏览量

    108899
  • Docker
    +关注

    关注

    0

    文章

    454

    浏览量

    11807
  • docker容器
    +关注

    关注

    0

    文章

    30

    浏览量

    3326
收藏 人收藏

    评论

    相关推荐

    基于node-Red和Raspberry Pi的物联网实验设计

    基于node-Red和Raspberry Pi的物联网实验设计,都是小实验,有人会吗?
    发表于 03-06 12:11

    Node-Red是什么?如何去学习Node-Red

    Node-Red是什么?如何去学习Node-Red?有哪些方法可以去学习Node-Red
    发表于 07-02 06:11

    新手求助如何去学习Node-Red

    如何去学习Node-Red?怎样去安装dashboard这个UI控件库?
    发表于 09-01 06:53

    第2部分:使用Node-RED的程序

    Understand how to use the Node-RED* interface to add sensors and send data to the AWS* cloud.
    的头像 发表于 10-26 07:17 6639次阅读

    运用 Node-RED 开发 LoRa 应用

    在之前的课程LoRa G-IoT模块基础应用中,我们已经知道如何将从LoRa得到的数值上传服务器,本文我们将学习撰写Node-RED,将数据传送到自己设计的网页监测接口。
    的头像 发表于 12-25 17:54 772次阅读

    在Raspberry Pi中利用Node-RED控制LED

    在今天的教程中,我们将研究如何使用 Node-RED 在树莓派上部署简单的项目。
    的头像 发表于 09-01 16:00 5779次阅读
    在Raspberry Pi中利用<b class='flag-5'>Node-RED</b>控制LED

    虹科工业树莓派Node-RED应用(一) : 低代码实现状态监测

    Node-RED是一种可视化编程工具,可以快速实现代码块的复用,简单快捷地构建IIOT程序。本文为大家讲解虹科工业树莓派如何结合Node-RED实现状态监测,赶紧点开文章了解学习吧!
    的头像 发表于 11-15 09:58 2215次阅读

    Node-RED在ARM嵌入式工控机上的应用

    BL302 ARM嵌入式工控机Node-RED使用教程
    的头像 发表于 03-02 18:45 4905次阅读
    <b class='flag-5'>Node-RED</b>在ARM嵌入式工控机上的应用

    Node-red启动电脑摄像头案例

    通过Node-red实现打开电脑自带的摄像头或者USB摄像头
    的头像 发表于 06-01 06:50 5046次阅读
    <b class='flag-5'>Node-red</b>启动电脑摄像头案例

    基于Node-RED的优易通串口服务器应用实例

    以实例的方式,详细介绍了基于Node-RED的优易通串口服务器采集Modbus-RTU水位传感器数据,并将数据可视化的过程。
    的头像 发表于 05-29 21:15 2208次阅读
    基于<b class='flag-5'>Node-RED</b>的优易通串口服务器应用实例

    虹科干货 | 虹科工业树莓派Node-RED应用(一) : 低代码实现状态监测

    虹科IIoT虹科工业树莓派Node-RED应用(一)低代码实现状态监测HongKeTechnology虹/科/干/货01前言Node-RED是一种编程开发工具,用于以新颖有趣的方式将硬件设备、API
    的头像 发表于 11-03 17:57 1006次阅读
    虹科干货 | 虹科工业树莓派<b class='flag-5'>Node-RED</b>应用(一) : 低代码<b class='flag-5'>实现</b>状态监测

    物联网与ESP32、Node-RED和InfluxDB与WebSocket

    电子发烧友网站提供《物联网与ESP32、Node-RED和InfluxDB与WebSocket.zip》资料免费下载
    发表于 07-13 09:51 0次下载
    物联网与ESP32、<b class='flag-5'>Node-RED</b>和InfluxDB与WebSocket

    Node-RED安装本地教程

    Node-RED是一个基于流的开发工具,广泛应用于物联网(IoT)、家庭自动化和其他数据驱动的应用程序。它通过图形化的编程界面,使得非专业程序员也能轻松上手。本文将介绍如何在本地环境中安装Node-RED,帮助你快速开始项目开发
    的头像 发表于 06-24 12:10 1871次阅读
    <b class='flag-5'>Node-RED</b>安装本地教程

    Node-RED如何制作漂亮的界面

    Node-RED深度融合(如成都的纵横智控和苏州稳联科技将Node-RED与物联网网关深度融合,打造可视化、硬件加持的物联网开发平台,使用者无需编码即可快速实现各类应用,开拓物联网无限可能)。未来或许将会有越来越多的企业步入此
    的头像 发表于 06-26 16:50 4019次阅读
    <b class='flag-5'>Node-RED</b>如何制作漂亮的界面

    Node-RED初学者教程-三分钟学习

    通过这短短三分钟的教程,你已经掌握了Node-RED的基本操作。你可以利用Node-RED的强大功能来创建更复杂的数据流和自动化任务,无论是物联网应用、API集成还是数据处理。
    的头像 发表于 06-27 17:09 2345次阅读
    <b class='flag-5'>Node-RED</b>初学者教程-三分钟学习