返回

Edgex Foundry接入MQTT设备指南:轻松连接物联网世界

后端

EdgeX Foundry接入MQTT设备指南:轻松连接物联网世界

引言

物联网(IoT)正在迅速改变我们的世界,将物理设备与数字世界连接起来,实现数据的收集、传输和处理,创造出无数的可能性。EdgeX Foundry是一个开源的物联网平台,可帮助您轻松连接设备、处理数据并实现智能自动化。

一、整体架构

在开始之前,让我们先了解一下Edgex Foundry的整体架构。Edgex Foundry由以下几个主要组件组成:

  • 核心服务(Core Services) :负责管理设备和数据。
  • 设备服务(Device Services) :负责与设备通信,收集数据。
  • 应用程序服务(Application Services) :负责处理数据,提供各种服务。
  • 用户界面(UI) :提供可视化界面,方便用户管理和监控设备。

二、接入MQTT设备

现在,让我们来接入一个MQTT虚拟设备。我们将使用MQTT.js库来模拟一个MQTT设备,并使用Mosquitto作为MQTT代理。

  1. 安装MQTT.js库
npm install mqtt
  1. 创建MQTT设备脚本
const mqtt = require('mqtt');

const client = mqtt.connect('mqtt://localhost:1883');

client.on('connect', () => {
  console.log('Connected to MQTT broker.');
});

client.on('message', (topic, message) => {
  console.log('Received message:', message.toString());
});

client.subscribe('test/topic');

setInterval(() => {
  client.publish('test/topic', 'Hello from MQTT device!');
}, 1000);
  1. 运行MQTT设备脚本
node mqtt-device.js
  1. 安装Mosquitto

如果您还没有安装Mosquitto,请按照以下步骤进行安装:

sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients
  1. 启动Mosquitto
sudo service mosquitto start
  1. 配置Edgex Foundry

现在,我们需要配置Edgex Foundry来接收MQTT数据。

  • 打开Edgex Foundry的配置文件/etc/edgex/edgex.conf
  • 找到[mqtt]部分。
  • 将以下内容复制到[mqtt]部分:
[mqtt]
enabled = true
host = localhost
port = 1883
qos = 0
topic = test/topic
  • 保存并关闭配置文件。
  1. 重启Edgex Foundry
sudo service edgex-core restart

三、使用服务API调用

现在,我们可以使用服务API来调用Edgex Foundry的功能。

  1. 安装curl

如果您还没有安装curl,请按照以下步骤进行安装:

sudo apt-get update
sudo apt-get install curl
  1. 获取设备列表
curl -X GET http://localhost:48080/api/v2/device/all
  1. 获取设备数据
curl -X GET http://localhost:48080/api/v2/reading/device/name/mqtt-device

结语

恭喜您!您已经成功地将一个MQTT虚拟设备接入到了Edgex Foundry。现在,您可以使用Edgex Foundry来收集和处理数据,实现智能自动化。