将树莓派4打造为一个边缘网关:第二部分

by liam zheng on 17 March 2020

第一部分教程中,我们已经在树莓派4上安装和配置好了EdgeX foundry以将其打造为一个边缘网关。今天的教程将介绍把网关连接到到虚拟的IoT(物联网)设备上。这些虚拟的设备是使用软件模拟的。模拟的虚拟设备将通过托管在云端的MQTT消息服务器发送随机的消息,这些信息将被转发到已订阅接收消息的MQTT客户端上。

连接Southbound

设备端与边缘网关的物联网数据流被称之为Southbound。在EdgeX中,物联网设备和网关之间的通信被称为设备服务。一个设备服务就是由诸如Modbus,OPC-UA,REST,BLT,Zigbee,MQTT,BACNet,SNMP等等的物联网通信协议的接口实现的一个微服务

虚拟设备服务的设定是方便进行配置和调试树莓派4边缘网关。它允许在不连接实际设备的情况下进行测试。基于这种方式,边缘网关上运行的微服务在不连接物联网设备的情况下进行配置和诊断。虚拟设备服务还模拟虚拟物联网设备,这些设备会生成和传输不同类型的随机数:整数,无符号整数,布尔值和浮点数。

虚拟设备服务可以很容易地通过以下命令开启:

sudo snap set edgexfoundry device-virtual=on

开启后,模拟的服务和虚拟设备可通过EdgeX浏览器管理界面显示。

在云端创建一个MQTT服务器

边缘网关是设备和服务器间的连接点。现在,我们将在云端配置一个自定义的MQTT消息接收服务器。MQTT消息接收服务器将接收来自虚拟设备的消息。这些消息将被发送到已订阅的客户端设备上。

我们在AWS创建了一个运行Ubuntu 18.04的实例,上面已安装MQTT消息接收服务器。在Ubuntu上可使用snap方式方便地安装MQTT。命令如下:

sudo snap install mqtt

查询消息接收服务器的状态:

sudo systemctl status snap.mosquitto.mosquitto.service

连接Northbound

有了云端MQTT服务器,还需要在树莓派4网关和服务器之间建立一个northbound连接。EdgeX 导出服务(EdgeX Export Service)是一个将设备服务已收集的数据传输到云端服务器的微服务。导出服务可以使用下面命令创建:

sudo snap set edgexfoundry export-client=on
sudo snap set edgexfoundry export-distro=on

通过上述命令激活后,MQTT服务器的数据传输已配置好。下面截图展示了如服务器IP地址,端口,通信协议,数据格式,主题和加密等参数。

保存后,导出服务将连接到MQTT消息服务器,然后创建一个主题。导出服务将把从虚拟设备端收集的数据通过该主题发布出去。

读取虚拟物联网数据流

通过以上操作,你有了一个监听虚拟物联网设备的树莓派4网关,它不断地把设备端收集到的数据转发到云上的MQTT服务器上。

现在,任何运行MQTT客户端的设备将可接收来自虚拟设备的物联网数据流。 客户端只需订阅来自于MQTT服务器相关的主题即可。

要读取这个数据流,我们需要在Ubuntu桌面上安装一个MQTT客户端,然后订阅通过导出服务创建的主题。当然,这个数据流可以通过任何桌面设备上的MQTT客户端进行访问。

sudo snap install mqtt
mosquitto_sub -h <your_ip_adress_here> -t <topic_name_here>

当然,你也可以在终端查看虚拟物联网数据流。流与虚拟设备产生的数据的响应,格式为导出服务指定的格式。如下图:

资源列表

下一步

本系列教程的第三部分将把网关与一个物联网实体设备连接。我们也会测试EdgeX foundry的设备管理兼容性。

查看更多内容

Canonical将参加研华AIoT x物联网线上研讨会

边缘智能的产生来源于深度学习与边缘计算,即将边缘计算与人工智能等应用相结合。AI、IoT“一体化”后,“人工智能”逐渐向“应用智能”发展,万物智联时代的到来更是为边缘智能提供了广阔的天地,“大智能”在云端,“小智能”在边缘,仍将是长期趋势。 2020年7月9日,研华将以“AIoT x 嵌入式单板创新,赋能行业专属边缘智能应用”为主题携合作伙伴Intel及Canonical举办线上论坛,共同分享AIoT产业热点及趋势,探讨在万物智联的新时代如何透过嵌入式平台创新&嵌入式软硬整合,协助您的行业专属边缘智能应用快速落地。 活动亮点 AIoT产业趋势、热点技术及创新应用 跨平台嵌入式软件服务打造 研华嵌入式单板及技术创新方案 AIoT边缘智能应用案例分享 如何参加 扫描上方二维码 […]

MAAS 2.8——新功能介绍

新版本特性一览: MAAS 2.8新版本带了3个关键特性: LXD虚拟机(测试版) UX(User Experience)响应更快 外部/远程 PostgreSQL数据库 如果您了解您所需要的内容,可前往maas.io/install继续操作。或者请跟我们一起来了解更多。 使用LXD创建虚拟机(测试版) MAAS 2.8可创建基于LXD的VM主机和虚拟机。这是一项在现有基于libvirt虚拟主机、虚拟机功能的额外选项。 不像libvirt KVM,LXD虚拟机无需虚拟主机SSH访问的情况下进行管理。 作为一个系统管理员,对其他员工使用LXD VM意味着您不必向他们提供SSH访问裸机服务器的权限,这意味着可以更好地实现资产权限管理。 最后,LXD拥有简单的API使得部署镜像 […]