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

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

3天内不再提示

Docker容器实现边缘采集

亿佰特物联网应用专家 2023-12-15 08:20 次阅读

Node-RED环境搭建

Node-RED是构建物联网IoT,Internet of Things)应用程序的一个强大工具,其重点是简化代码块的“连接”以执行任务。它使用可视化编程方法,允许开发人员将预定义的代码块(称为“节点”,Node)连接起来执行任务。连接的节点,通常是输入节点、处理节点和输出节点的组合,当它们连接在一起时,构成一个“流”(Flows)。

ce2c249e-9adf-11ee-9788-92fbcf53809c.png

Node-RED网关开发环境安装流程

docker环境如何部署,网上已经有很多教程,这里不再说明,推荐参考官方安装说明。


项目镜像安装

docker安装项目文件非常的简单,只需要两条指令即可实现Node-RED开发环境部署,其中第一条通过“docker pull 存储库名称”,就可以项目镜像,也可以通过“docker --help”查询指令说明。

ce3e8b3e-9adf-11ee-9788-92fbcf53809c.png

docker --help指令(部分)


从Node-RED 1.0开始,Docker Hub上的存储库已重命名为“nodered/node-red”,使用“docker pull nodered/node-red”拉取项目镜像。

要以最简单的形式在 Docker 中运行,只需运行:

docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red

让我们解读下指令:

docker run:运行容器;

-it:打印安装会话,可以省略;

-p:配置本地端口和外部映射端口;

-v node_red_data:/data:挂载一个名为“node_red_data”的docker到容器/数据目录;

--name mynodered:命名为“mynodered”;

nodered/node-red:镜像地址;

只使用“Docker run”不先拉取项目镜像也是可以的,该指令会查询本地镜像如果没有就会自动从Docker Hub存储库下载项目镜像;

其他的自定义安装建议仔细阅读Node-RED官方文档后进行,笔者这里只是介绍这个工具的一种用法,不使用自定义安装功能。

安装插件

通过Node-RED默认安装环境是无法实现RTU设备的边缘采集,还需要通过安装不同的功能插件才能实现,安装Modbus功能插件(node-red-contrib-modbus)实现Modbus RTU/Modbus TCP协议转换和边缘采集,安装数据库插件(node-red-node-mysql)实现边缘采集数据的存储,除了安装插件还需要少量的“javascript”脚本转换格式和数据上报等。

好在安装插件的过程可以通过可视化网页界面实现,无需理解复杂的安装指令,这也是Node-RED的优点之一,在地址栏中输入部署Node-RED环境的IP地址和端口,这里为192.168.88.5:1880。

ce4dcaea-9adf-11ee-9788-92fbcf53809c.png

打开右上角的菜单,选择节点管理,点击“安装”,搜索框中输入Modbus功能插件(node-red-contrib-modbus)和数据库插件(node-red-node-mysql)。

ce6e8320-9adf-11ee-9788-92fbcf53809c.png

成功安装节点后在工具栏新增以下节点:

ce8475a4-9adf-11ee-9788-92fbcf53809c.png

“node-red-contrib-modbus”节点作者,制作了不同用法的示例,可以通过导入功能,测试理解不同节点的功能,强烈建议多去理解这些实例,方便后续使用。

ce9e4524-9adf-11ee-9788-92fbcf53809c.png

网关实现

ceb620f4-9adf-11ee-9788-92fbcf53809c.png

添加“Modbus read”节点周期查询Modbus设备状态,第一需要配置Modbus设备的地址,笔者这里使用“Modbus Slave”软件模拟,地址为192.168.88.100:8890:

cec679a4-9adf-11ee-9788-92fbcf53809c.png

图左通过双击打开“Modbus read”配置界面,图右新增Modbus设备连接地址,图中配置寄存器参数,这里以地址0x0000的保持寄存器为例,配置“Poll Rate”查询周期。

使用“function”节点提取“Modbus read”节点周期查询的数据,双击打开函数节点,编辑以下脚本:

msg.payload=msg.payload.data;

msg.payload=msg.payload.slice(0,1);

return msg;

使用“template”将“function”节点处理的结果进行打包,这里将数据打包为JSON数据:

cedc324e-9adf-11ee-9788-92fbcf53809c.png

最后通过TCP连接将数据传输到指定服务器:

ceef5b62-9adf-11ee-9788-92fbcf53809c.png

“6”为“DEBUG”节点用于调试,通过上述配置就可以将Modbus TCP指令采集到的数据转换为JSON数据并将数据上报到指定服务器:

cf01556a-9adf-11ee-9788-92fbcf53809c.png

也可以通过Node-RED提供的MQTT连接节点将数据传输到服务器,同时也可以通过“mysql”节点将将采集数据通过sql语句传输到数据库。

cf22dd70-9adf-11ee-9788-92fbcf53809c.png

采集上报数据库与MQTT服务器流程举例


至此,一个简单的边缘采集网关搭建完成。

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

    关注

    2893

    文章

    43121

    浏览量

    365508
  • 容器
    +关注

    关注

    0

    文章

    490

    浏览量

    21977
  • Docker
    +关注

    关注

    0

    文章

    446

    浏览量

    11734
收藏 人收藏

    评论

    相关推荐

    如何使用 Docker容器化技术

    对于开发人员来说,Docker肯定都不陌生,今天小编带大家重新学习一下Docker。 什么是 Docker 官话: Docker 是一种开源的容器
    的头像 发表于 09-30 11:24 1.6w次阅读

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

    容器实现边缘采集”。前文指引:《【教程】图文详解!Docker容器
    的头像 发表于 06-07 08:21 2401次阅读
    Node-RED<b class='flag-5'>实现</b>电表数据<b class='flag-5'>采集</b>并上云

    ARM平台实现Docker容器技术

    及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,亦可实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构
    发表于 07-17 11:05

    ARM平台实现Docker容器技术

    及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,亦可实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构
    发表于 07-25 14:36

    如何在Docker中创建容器

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal
    发表于 01-03 15:58

    理解Docker容器并畅玩docker

    !命令行!玩docker,简单几句命令就够了。Docker容器响应迅速,执行迅速,回忆一下VM启动要多久?最佳的试验场所,想怎么玩怎么玩,rm -rf /* 根本不是大问题。主机上删掉容器
    发表于 11-05 09:54

    请问docker容器如何查看日志?

    docker容器如何查看日志
    发表于 11-19 07:29

    Docker容器管理命令(一)

    1、Docker容器管理命令的使用方法查看当前主机本地docker镜像:启动容器必须依赖镜像,所以要获取到镜像的唯一标识docker
    发表于 04-20 17:55

    Docker容器管理命令(二)

    1、Docker容器管理命令的使用方法批量删除docker 容器docker cp命令docker
    发表于 04-21 11:31

    基于DOCKER容器的ELK日志收集系统分析

    针对Docker容器集群中日志的收集和集中处理的问题。本文采用Docker Swarm和Etcd实现容器的管理、服务发现以及调度,并为分布式
    发表于 11-06 14:15 3次下载
    基于<b class='flag-5'>DOCKER</b><b class='flag-5'>容器</b>的ELK日志收集系统分析

    docker容器删除后数据还在吗

    Docker作为一个容器化平台,提供了轻量级的虚拟化解决方案,能够方便地创建、部署和管理应用程序。然而,对于Docker容器的数据持久性是一个令人关注的问题。当我们删除一个
    的头像 发表于 11-23 09:32 1428次阅读

    docker容器容器之间通信

    Docker是一种轻量级容器化技术,能够将应用程序及其依赖项封装在一个独立、可移植的容器中。而容器化的应用程序通常是以分布式方式设计的,因此实现
    的头像 发表于 11-23 09:36 1164次阅读

    docker进入容器的方法有哪些

    Docker是一种流行的容器化平台,它能够快速构建、交付和运行应用程序。在使用Docker时,我们经常需要进入容器进行调试、管理和运行命令等操作。本文将详细介绍
    的头像 发表于 11-23 09:45 8442次阅读

    docker容器有几种状态

    Docker 是一种流行的容器化平台,它能够帮助开发人员将应用程序和其依赖打包成一个独立的容器,并且能够在不同的环境中进行部署和运行。在 Docker 中,
    的头像 发表于 11-23 09:50 1684次阅读

    ARM平台实现Docker容器技术

    ,亦可实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构。通过利用Docker的快速发布、测试和部署代码的方法,可显著减少产
    的头像 发表于 03-07 13:48 525次阅读
    ARM平台<b class='flag-5'>实现</b><b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技术