EdgeX Foundry--MQTT设备服务(一)

Edgex Foundry

EdgeX Foundry

EdgeX Foundry是一个供应商中立的边缘网络开源软件平台,它与物理设备相互作用,例如每天工作的设备、传感器、执行器以及其他物联网对象。其目的在于构建一个工业化的物联网边缘计算的通用框架。EdgeX 平台鼓励快速增长的物联网供应商社群共同工作于一个互操作组件的生态系统,该系统能减少不确定性,加速市场化,并促进规模化。

通过带来此急需的互操作性,EdgeX 使得一些工作都变得更容易,例如监控物理世界的设备、收集其数据、传送数据到云(云是数据被存储、集合、分析,以及变成信息、驱动信号、发挥作用等的地方)上。因此 EdgeX 使数据从南区传输到云端和旁边的相关网关,或返回给设备、传感器和执行器。

MQTT协议

为什么使用MQTT 协议?

MQTT(英语全称,Message Queue Telemetry Transport),中文翻译过来就是遥测传输协议:其主要提供订阅/发布模式,更为简约、轻量,易于使用,针对受限环境(带宽低、网络延迟高、网络通信不稳定),属于物联网(Internet of Thing)的一个传输协议。设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于此:

MQTT协议的优势是可以支持所有平台,它几乎可以把所有的联网物品和互联网连接起来。特别适合于网络代价昂贵,带宽低、不可靠的环境。能在处理器和内存资源有限的嵌入式设备中运行。

使用发布/订阅消息模式,提供一对多的消息发布,从而解除应用程序耦合。

准备工作

主机需要提前安装好docker与docker-compose,docker安装方式参见前几篇文章,docker-compose自行安装即可。
本教程docker安装好后docker版本信息如下:


idocker version

初始时主机上的docker容器镜像如下:


image列表

这里表示一个镜像文件都没有。

我们需要准备以下四个必要步骤:

1.edgex运行所需的容器(一个docker-compose文件即可)

本次运行我们采用最简单最快速的运行fuji版本的edgex:通过docker-compose文件下载docker镜像并运行的方式,并且通过Edgex UI的方式添加设备:
edgex foundry的fuji版本的docker-compose文件链接如下:
https://github.com/edgexfoundry/developer-scripts/blob/master/releases/fuji/compose-files/docker-compose-fuji-no-secty.yml

要下载的docker-compose文件

2.模拟mqtt设备的脚本文件;

模拟mqtt发送数据的脚本,链接地址如下:
https://github.com/SHILIANG17671467654/mock-device-driver
大家根据自己的情况选择相应的脚本运行,这个示范运行的是python的脚本(注:这里运行需要的是python2环境,Python3环境需要适当的调整代码,建议还是python2环境)

3.一个eclipse-mosquitto容器,通过这个broker用于发布订阅mqtt的消息,部署的过程中将broker与edgex部署在同一个设备上,该设备的ip为:192.168.194.131)
先通过docker pull eclipsemosquitto-mosquitto拉取镜像,然后通过:

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

运行broker容器。

4.一个mqtt设备的配置文件,添加设备时需要上传的。

mqtt设备配置文件链接地址:
https://github.com/edgexfoundry/device-mqtt-go/blob/fuji/cmd/res/example/mqtt.test.device.profile.yml

来一条长长的分界线!!!

———————————————————————————————

准备工作结束,接下来我们开始正式部署edgex。
转下一篇:

你可能感兴趣的:(EdgeX Foundry--MQTT设备服务(一))