用于配置 IoT 设备设置的协议

物联网 联网 MQTT 协议
2021-06-21 01:49:00

MQTT 在物联网中广泛用于在终端设备和主机服务之间交换应用程序数据。发布-订阅模型使其易于使用:无需握手、协商等(至少在 MQTT 协议层之上)。它主要面向数据生产者,能够轻松地将他们的数据分发给消费者。

但是,当涉及到想要在终端设备上配置设置的中央服务器时,我不确定该模型是否非常合适。服务器将要向设备发送命令并等待响应返回(例如读取特定设置,等待响应),这并不真正适合 MQTT 的发布-订阅模型。

我想知道是否有任何针对发送和接收命令以及配置远程设备的现有协议?

2个回答

听起来像是CoAP的工作

与 HTTP 一样,CoAP 基于非常成功的 REST 模型:服务器在 URL 下提供资源,客户端使用诸如 GET、PUT、POST 和 DELETE 等方法访问这些资源。

从开发人员的角度来看,CoAP 感觉非常像 HTTP。从传感器获取值与从 Web API 获取值没有太大区别。

它显然可以以非常低的开销实现:

CoAP 设计用于低至 10 KiB RAM 和 100 KiB 代码空间的微控制器

CoAP 在RFC 7252 中指定,并且有各种实现(例如在C 中)。

它非常受 REST 的启发,用于 Web API 的 HTTP,因此如果您熟悉这些,您将很快掌握 CoAP。如果没有,您可能会发现此演示文稿对上下文很有用这个想法是每个 HTTP 方法都有一个语义,例如GET从设备请求信息而不改变任何东西和POSTPUTDELETE改变数据。

正如您所说,发布/订阅模型不适用于您的设备充当中央系统协调的“服务器”(充当每个设备的客户端)的情况。相反,类似于 HTTP 的模型是理想的,除了 HTTP 的开销太大,这就是 CoAP 的用武之地。

我想知道是否有任何针对发送和接收命令以及配置远程设备的现有协议?

是的,物联网中有更好的设备管理协议。它是LwM2M - 它比 MQTT 和 COAP、MQTT 和 HTTP 更高效。

LwM2M 带有明确定义的数据和设备管理模型,提供各种即用型标准对象(IPSO 智能对象)、连接监控、远程设备操作和结构化 FOTA 和 SOTA 更新,而在 MQTT 中,这些功能完全特定于供应商和平台。接下来是使用 MQTT,必须从头开始创建固件更新或任何其他管理功能。相比之下,LwM2M 提供固件升级作为其基本功能之一,因此无需发明任何新的通信构建块。

在这里,您可以比较MQTT 与 LwM2M以及整个速成课程。