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


9

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

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

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


1
您确定MQTT不允许客户端订阅控制频道吗?我认为这是开始寻找答案的地方,但是我并没有足够的速度来总结答案en.wikipedia.org/wiki/Representational_state_transfer
Sean Houlihane

1
别忘了,端点必须是启动通道的端点,因此它可以控制功耗。
肖恩·霍利哈内

1
@SeanHoulihane当然可以使用MQTT来发送和接收您所描述的命令/设置,但是按照我的看法,理想情况下,您需要具有“基于会话”的协议,即创建会话,发送命令并在同一会话中接收到响应,从而轻松地将响应链接到原始命令。MQTT是基于消息的,因此根本没有链接彼此之间的链接-由您来处理这一部分。我想知道是否有一个现成的协议可以用于此目的。
Amr Bekhit

1
en.wikipedia.org/wiki/OMA_LWM2M我不确定具体如何,但是云似乎能够进行PUT或POST调用以触发客户端中的回调。
肖恩·霍利哈内

MQTTv5具有标头字段,用于将消息标记为对先前消息的响应。
hardillb

Answers:


6

听起来像是CoAP的工作:

像HTTP一样,CoAP基于广受欢迎的REST模型:服务器在URL下提供资源,客户端使用GET,PUT,POST和DELETE等方法访问这些资源。

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

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

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

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

它非常受REST启发,因为REST与用于Web API的HTTP一起使用,因此,如果您熟悉它们,您将很快采用CoAP。如果没有,您可能会发现此演示文稿对上下文很有用。这个想法是,每种HTTP方法都具有语义含义,例如,GET从设备请求信息而无需更改任何内容和POSTPUT并对DELETE数据进行突变。

如您所说,在您的设备充当中央系统协调的“服务器”(充当每个设备的客户端)的情况下,发布/订阅模型不起作用。取而代之的是,类似于HTTP的模型是理想的,除了HTTP具有太多的开销(这是CoAP的所在)。


0

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

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

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

在这里,您可以比较MQTT与LwM2M以及整个崩溃过程。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.