太阳集团tcy8722

当前位置: 首页 >应用方案 >技术应用 >

Docker容器实现搭建边缘采集网关的案例教程

之前我们发布的《串口服务器基于EMQX平台自建MQTT服务器实现通讯教程》一文中简单的介绍了安装Docker以及在Docker中部署EMQX 服务教程,也介绍了Docker系列优势优点及其安装部署教程,本文我们将通过Node-RED环境搭建、项目镜像实现docker安装、安装Modbus功能插件、边缘计算网关配置等教程详细的介绍了Docker容器实现边缘采集网关搭建案例教程。

Node-RED环境搭建

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

1Docker容器实现边缘采集网关搭建教程案例
1 Node-RED网关开发环境安装流程


docker环境如何部署,网上已经有很多教程,这里不在说明,推荐参考官方安装说明,地址:http://docs.docker.com/engine/install/centos/(国内可能访问比较慢),也可以在阿里云的文档中心查看如何部署docker环境。

项目镜像安装

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

2Docker容器实现边缘采集网关搭建教程案例
2 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官方文档(http://nodered.org/docs/后进行,我这里只是介绍这个工具的一种用法就不使用自定义安装功能;

安装Modbus功能插件

通过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。

3Docker容器实现边缘采集网关搭建教程案例


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

4Docker容器实现边缘采集网关搭建教程案例

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

5Docker容器实现边缘采集网关搭建教程案例

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

6Docker容器实现边缘采集网关搭建教程案例

边缘计算网关搭建

7Docker容器实现边缘采集网关搭建教程案例

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

8Docker容器实现边缘采集网关搭建教程案例

图左通过双击打开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数据:

9Docker容器实现边缘采集网关搭建教程案例

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

10Docker容器实现边缘采集网关搭建教程案例

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

11Docker容器实现边缘采集网关搭建教程案例

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

12Docker容器实现边缘采集网关搭建教程案例

采集上报数据库与MQTT服务器流程举例。至此,一个简单的边缘采集网关搭建完成。


今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多边缘计算网关产品和边缘技术技术资料信息,感兴趣的小伙伴可以登录我们的太阳集团tcy8722官网进行了解,也可以直接拨打400电话咨询技术专员!

相关文章推荐:

什么是边缘计算网关?边缘计算网关有什么特点?

一文看懂边缘采集原理及边缘计算网关优势

论边缘计算的重要性


太阳集团tcy8722