• 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设备脚本的值。

  • 相关阅读:
    postgis数据库导出csv表再导入postgis
    vue可ctrl、shift多选,可添加标记的日历组件
    HT878T 可任意限幅、内置自适应升压的音频功放应用于哪些领域
    快速安装k8s
    node后端接收pdf接口
    前端页面根据后端返回的文本将换行符(“↵”)进行换行展示
    代码随想录算法训练营第五十二天|123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV
    CAS:474922-22-0 Maleimide-PEG-DSPE 磷脂-聚乙二醇-马来酰亚胺简述
    A Philosophy of Software Design读书笔记——分or合
    东北最大城商行退出异地助贷,发力区域自营业务
  • 原文地址:https://blog.csdn.net/qq_19734597/article/details/132965174