返回
Edgex Foundry接入MQTT设备指南:轻松连接物联网世界
后端
2024-01-03 09:34:40
EdgeX Foundry接入MQTT设备指南:轻松连接物联网世界
引言
物联网(IoT)正在迅速改变我们的世界,将物理设备与数字世界连接起来,实现数据的收集、传输和处理,创造出无数的可能性。EdgeX Foundry是一个开源的物联网平台,可帮助您轻松连接设备、处理数据并实现智能自动化。
一、整体架构
在开始之前,让我们先了解一下Edgex Foundry的整体架构。Edgex Foundry由以下几个主要组件组成:
- 核心服务(Core Services) :负责管理设备和数据。
- 设备服务(Device Services) :负责与设备通信,收集数据。
- 应用程序服务(Application Services) :负责处理数据,提供各种服务。
- 用户界面(UI) :提供可视化界面,方便用户管理和监控设备。
二、接入MQTT设备
现在,让我们来接入一个MQTT虚拟设备。我们将使用MQTT.js库来模拟一个MQTT设备,并使用Mosquitto作为MQTT代理。
- 安装MQTT.js库
npm install mqtt
- 创建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);
- 运行MQTT设备脚本
node mqtt-device.js
- 安装Mosquitto
如果您还没有安装Mosquitto,请按照以下步骤进行安装:
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients
- 启动Mosquitto
sudo service mosquitto start
- 配置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
- 保存并关闭配置文件。
- 重启Edgex Foundry
sudo service edgex-core restart
三、使用服务API调用
现在,我们可以使用服务API来调用Edgex Foundry的功能。
- 安装curl
如果您还没有安装curl,请按照以下步骤进行安装:
sudo apt-get update
sudo apt-get install curl
- 获取设备列表
curl -X GET http://localhost:48080/api/v2/device/all
- 获取设备数据
curl -X GET http://localhost:48080/api/v2/reading/device/name/mqtt-device
结语
恭喜您!您已经成功地将一个MQTT虚拟设备接入到了Edgex Foundry。现在,您可以使用Edgex Foundry来收集和处理数据,实现智能自动化。