EdgeX Foundry MQTT设备服务

一、部署edgex

        1.运行命令行,进入放置docker-compose-fuji-no-secty.yml文件的路径下

        下载到本地的docker-compose文件

        执行:

docker-compose -f docker-compose-fuji-no-secty.yml pull

        拉取相关镜像,这里默认将文件中没有注释的服务镜像全部拉取,其实用户可以根据自行需要只拉取edgex的核心镜像也是可以的(只需要将不需要的服务注释即可)

二、拉取edgex的镜像文件后,拉取eclipse-mosquitto镜像

        这是一个broker,用于发布订阅mqtt消息的:

docker pull eclipse-mosquitto:latest

三、运行eclipse-mosquitto

docker run -mosquitto -p 1883:1883 eclipse-mosquitto

四、修改mqtt设备脚本,这里示范python脚本的修改:

mqtt脚本修改

注:主机信息必须与你的broker主机保持一致,不然该设备脚本无法连接至broker;主题可以随便起,但是必须与edgexUI当中添加的设备的topic保持一致。

五、运行mqtt脚本,在mqtt脚本文件的路径下执行以下命令:

python2 mock-device-for-mqtt.py

        脚本成功运行

        注:只有出现Connected with result code 0才表示模拟设备脚本成功连接至mosquitto broker

六、运行edgex的容器,这里只需要执行一行命令即可:

docker-compose -f docker-compose-fuji-no-secty.yml up -d

        运行后执行docker ps -a显示正在运行的容器信息,

        报错的mqtt服务

        注:这里我展示的是很早就运行的容器信息,所有会有一些不一样,大家只需要关心device-mqtt-go即可,可以看到,框中服务的状态显示:Excited(2) ...这个表示容器异常退出,OK,没有关系,继续按照步骤来。

7.打开浏览器,输入:

http://192.168.194.131:8500(192.168.194.131为运行edgex的主机ip,8500为edgex中consul服务的运行端口)

        修改一下consul当中字段即可:具体修改请按照图所示:

7.1可以看到edgex-device-mqtt的Tags为错误状态。

        consul界面

7.2打开:

        consul中要修改的地方

7.3找到当前页面,将IncomingHost与ResponseHost当中的ip地址信息修改为运行broker的主机ip,这里为:http://192.168.194.131

        只有这样,edgex的mqtt设备服务才能成功连接到mosquitto broker。

consul中要修改的地方

7.4修改IP字段

        填写broker的主机ip

8.在命令行重启mqtt设备服务:

        重启mqtt服务

        验证mqtt设备服务是否成功启动:

8.1通过命令行验证:

        命令行中成功启动的mqtt服务

8.2 通过consul界面查看:

        consul界面中成功启动的mqtt服务

        综上两点所述:edgex当中的mqtt服务已经成功启动了。

9.打开UI界面http://192.168.194.131:4000/

        注:4000为edgex当中UI服务的运行端口:

        UI登录界面

        注:用户名和密码都是admin

        Gateway信息填写

        以上信息主要主要的是Gateway中的Address字段,填写的是edegx实例所运行的主机IP,请如实填写。

        接下来点击左边当中的device-service按钮。

        选择service按钮

        依次进入如下界面,可以看到这里有一个edegx-device-mqtt设备服务,但是下方的device-profile处为空。

        service界面

10添加设备配置文件:

        添加配置文件

        将之前提到的设备配置文件上传即可。

11添加设备:

        添加设备的步骤

        添加设备的界面

        要填写的核心key-value字段

        源码中的相关字段

        注:以上文件的链接:https://github.com/edgexfoundry/device-mqtt-go/blob/fuji/internal/driver/config.go

        最后该教程中填写示例如下:

        填写示例

12测试。

        OK。现在让我们测试一下是否可以在UI界面中成功获取到mqtt设备脚本的值:

        获取数据

        通过上图我们发现,我们已经成功地在UI界面中获取到了mqtt设备脚本的值。

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

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

相关文章

27、Flink 的SQL之SELECT (SQL Hints 和 Joins)介绍及详细示例(2-1)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

HarmonyOS开发环境搭建

一 鸿蒙简介: 1.1 HarmonyOS是华为自研的一款分布式操作系统,兼容Android,但又区别Android,不仅仅定位于手机系统。更侧重于万物物联和智能终端,目前已更新到4.0版本。 1.2 HarmonyOS软件编程语言是ArkTS&#xff0c…

Flutter快速入门学习(一)

目录 前言 新建项目 项目入口 Dart的入口(项目的入口) 布局 视图组件 Container(容器) Text(文本) Image(图片) Row(水平布局)和Column&#xff08…

C++ 算法学习 之 vector assign

参考c官方手册 vector::assign是C标准模板库中的一个函数&#xff0c;它的主要功能是给vector容器重新赋值。具体来说&#xff0c;vector::assign函数会删除vector中的所有元素&#xff0c;并根据用户提供的参数重新填充。 这个函数有三种形式&#xff1a; template <cla…

P2P协议的传输艺术

TP 采用两个 TCP 连接来传输一个文件。 控制连接&#xff1a;服务器以被动的方式&#xff0c;打开众所周知用于 FTP 的端口 21&#xff0c;客户端则主动发起连接。该连接将命令从客户端传给服务器&#xff0c;并传回服务器的应答。常用的命令有&#xff1a;list——获取文件目…

随机抽样一致RANSAC

文章目录 RANSAC简介RANSAC算法Ransac在3D视觉中的用法直线拟合单应性矩阵拟合RANSAC的优缺点RANSAC的优点RANSAC的缺点RANSAC在弯曲场景中的缺点:RANSAC适用场景RANSAC简介 RANSAC是 RANdom SAmple Consensus 的缩写,中文翻译叫随机采样一致。它可以从一组观测数据中,找出…

【ROS】Ubuntu20.04+ROS Noetic 配置PX4-v1.12.2和Gazebo11联合仿真环境【教程】

【ROS】Ubuntu20.04ROS Noetic 配置PX4-v-v1.12.2和Gazebo11联合仿真环境【教程】 文章目录 【ROS】Ubuntu20.04ROS Noetic 配置PX4-v-v1.12.2和Gazebo11联合仿真环境【教程】0. 安装UbuntuROS1. 安装依赖2. 安装QGC地面站3. 配置PX4-v1.12.23.1 安装PX43.2 测试PX4是否成功安装…

hive工具-zeppelin部署

zeppelin部署 解压安装包至/opt/soft 并改名 /etc/proofile中配置环境变量并source生效 #ZEPPELIN export ZEPPELIN_HOME/opt/soft/zeppelin010 export PATH$ZEPPELIN_HOME/bin:$PATH &#xff08;1&#xff09;conf目录下拷贝一份初始配置文件 [rootkb129 conf]# pwd /opt/s…

Linux内核4.14版本——drm框架分析(12)——DRM_IOCTL_MODE_SETCRTC(drm_mode_setcrtc)

目录 1. drm_mode_setcrtc 1.1 根据应用传入的crtc_id找到crtc 1.2 根据应用传入的fb_id,找到对应的drm_framebuffer 1.3 根据应用传入的mode&#xff0c;创建一个drm_display_mode 1.4 根据传入的set_connectors_ptr&#xff0c;找到驱动对应的connector 1.5 将以上信息…

go语言基础--面向对象杂谈

面向过程 所谓的面向过程就是&#xff1a;强调的是步骤、过程、每一步都是自己亲自去实现的。 面向对象 所谓的面向对象其实就是找一个专门做这个事的人来做&#xff0c;不用关心具体怎么实现的。 所以说&#xff0c;面向过程强调的是过程&#xff0c;步骤。而面向对象强调的…

C++编译过程

文章目录 1、c编译 1、c编译 鼠标右键选择“Open in Integrated Terminal”&#xff0c;然后在下面的终端输入“cmake . -B build”&#xff0c;或者是这个命令也可以“cmake --build build -j12”&#xff0c;完成之后再次在终端输入“cmake --build build”&#xff0c;完成之…

2023Web前端逻辑面试题

1、现有9个小球&#xff0c;已知其中一个球比其它的重&#xff0c;如何只用天平称2次就找出该球&#xff1f; ①把9个球分成三份&#xff0c;三个一份&#xff1b; ②拿出其中两份进行称量&#xff1b;会分为两种情况 若拿出的两份小球称量结果&#xff0c;重量相等&#xff1b…

使用香橙派 学习Linux的串口开发

串口的回顾 & 硬件接线 关于串口也是之前学习过很多次了&#xff0c;详见&#xff1a; 认识串口 和 蓝牙模块HC08_hc08蓝牙模块_mjmmm的博客-CSDN博客 串口的再认识-CSDN博客 香橙派提供了两路串口&#xff0c;第一路就是在刷机时串口连接的引脚&#xff08;对应驱动ttyS0&…

MAC MINI 2012安装Montery折腾笔记

MAC MINI 2012安装Montery折腾笔记&#xff08;作为电视盒子/远程开发机&#xff09; 起因&#xff1a; 手头有个mac mini&#xff0c;2018年买的2手。一直都是10.12系统&#xff0c;处理python和苹果开发都受制于旧系统&#xff0c;很多软件也装不上&#xff0c;于是有了升级…

python有限差分法求解一维热传导方程

​1、方程及其离散 1.1一维热传导方程 1.2离散化 设定步长&#xff0c;依据上述方程得到递推关系&#xff1a; 2、python求解实现 import numpy as np import matplotlib.pyplot as plth 0.1#空间步长 N 30#空间步数 dt 0.0001#时间步长 M 10000#时间的步数 A dt/(h**2)…

Java8实战-总结29

Java8实战-总结29 并行数据处理与性能并行流将顺序流转换为并行流测量流性能 并行数据处理与性能 到目前为止&#xff0c;Stream接口最重要的好处是可以对这些集合执行操作流水线&#xff0c;能够自动利用计算机上的多个内核。 例如&#xff0c;在Java 7之前&#xff0c;并行…

如何开发你的第一个Vue.js插件:完整指南

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

ModbusTCP服务端

1在Device下&#xff0c;添加设备net&#xff1a; 公交车。 2在net下添加 ModbusTCP

【深度学习】 Python 和 NumPy 系列教程(十九):Matplotlib详解:2、3d绘图类型(5)3D等高线图(3D Contour Plot)

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 2、3d绘图类型 0. 设置中文字体 1. 3D线框图&#xff08;3D Line Plot&#xff09; 2. 3D散点图&#xff08;3D Scatter Plot&#xff09; 3. 3D条形图&#xff08;3D Bar Plot&#xff09; 4. 3D曲面图…

MySQL数据库详解 三:索引、事务和存储引擎

文章目录 1. 索引1.1 索引的概念1.2 索引的作用1.3 如何实现索引1.4 索引的缺点1.5 建立索引的原则依据1.6 索引的分类和创建1.6.1 普通索引1.6.2 唯一索引1.6.3 主键索引1.6.4 组合索引1.6.5 全文索引 1.7 查看索引1.8 删除索引 2. 事务2.1 事务的概念2.2 事务的ACID特性2.2.1…