MQTT、HTTP、CoAP 设备(除了通信协议)之间有什么区别?

物联网 协议 系统架构
2021-06-10 05:50:46

我是物联网平台的新手,经过几天的阅读,我仍然对不同类型的物联网设备感到困惑。目前,我已经了解了通过 MQTT、HTTP、LWM2M 等不同方式连接到云的智能设备。物联网设备是否真的是碎片化的(如 MQTT 设备、HTTP 设备),或者我只是误解了这一点。如果将它们分开,那么每种类型的特征是什么(例如与其他类型相比更聪明、更快)?

更具体地说,我正在研究 Eclipse IoT 项目,尤其是 Eclipse Hono。Hono 提供了不同的协议适配器,如 MQTT 和 REST,它们中的每一个都旨在连接到一种类型的设备,如本链接Hono的第一幅图中所示我的问题是 MQTT IoT 设备在功能上是否与 HTTP 等其他类型完全不同,还是仅在通信协议上有所不同?标有“MQTT”的设备是否可以交换为“HTTP”,反之亦然?

如果您能给我一些归类为 MQTT、HTTP 或 LWM2M 的设备示例,那就太好了,这样我就可以更轻松地进行可视化。

3个回答

我已经联系之前,另外一个问题,这种指甲吧。一开始就有一个比较的协议列表。

HTTP 和 MQTT 在该表上,而LwM2M(如其站点所述)在 coap之上工作,该表出现在表中。

主要区别在于通信的性质:HTTP 和 coap 提供基于请求和响应的通信,而 MQTT 依赖于订阅和发布。

在 LwM2M 站点上,它是一种用于在更高级别管理设备的规范,而不仅仅是像其他两个一样提供数据。它是一种 M2M 协议,而不是纯骨骼上的通信方式。

这是按通信分类的,也有类似的安全方面的选项列表。对他们来说,只有名字,没有提到属性。

这两种方式是多变的,您选择适合您需求的方式。当涉及硬件产品系列时,编码语言、内存和其他资源量都有限制,这使得思考决定成为必要,而且金钱也很重要。

对于 ESP8266 系列等某些硬件,您确实必须考虑限制,但例如 raspberry pi 可以做很多您想要的事情。

LwM2M 似乎是一堆你不能改变的,它是一种产品系列锁定的情况。

MQTT物联网设备在功能上与HTTP等其他类型完全不同,还是仅在通信协议上有所不同?标有“MQTT”的设备是否可以交换为“HTTP”,反之亦然?

这取决于设备,但 HTTP 和 MQTT 是协议,同一设备可以同时支持两者。更常见的情况是设备的旧版本可能支持 HTTP,而较新的版本支持 MQTT。在排他性地转移到另一个协议之前,向后兼容性可能会保持一段时间。

我的经验是在工业领域,其中物联网设备包括机器人、建筑控制系统、高炉、机床以及运行该设备的计算机控制 (CNC) 和可编程逻辑控制器 (PLC)。LWM2M 在该领域并不常见。HTTP 很常见。MQTT 正在迅速普及。

MQTT物联网设备在功能上与HTTP等其他类型完全不同,还是仅在通信协议上有所不同?

区别在于协议级别。如果需要,同一设备可以运行 MQTT 和 HTTP。但是,设备制造商将根据问题陈述选择协议。

标有“MQTT”的设备是否可以交换为“HTTP”,反之亦然?

是的,您可以基于 RPi 板制作自己的设备,并附有温度和湿度传感器。并且您可以根据需要选择通过 MQTT/HTTP 上报传感器数据。

Eclipse Hono

Hono 的目标是将大量物联网设备连接到后端,并使业务应用程序与设备的交互以统一的方式与设备通信协议无关。Hono 适配器有助于实现这一点。Hono 服务器通过相应的适配器与支持 MQTT/HTTP 的设备交互,这样任何类型的设备都可以部署在现场。该应用程序使用 AMQP 与 Hono 服务器交互。

现在换个角度来看,假设您正在编写一个位于核电站控制室的应用程序,该应用程序在一个仪表板中显示来自所有传感器的数据。电源平台可能会从不同供应商处采购传感器。某些传感器可能构建为使用 MQTT,而其他传感器可能构建为使用 HTTP。如果您的应用程序必须为所有人实现适配器,那将是乏味的。Hono 表示愿意这样做。您的应用程序可以更简单并与 Hono 服务器交互。现场传感器可能会出现故障,最终供应商 A 的传感器 A(使用 MQTT)可能会被供应商 B 的传感器 B(使用 HTTP)替换。由于 hono 提供了两个适配器,因此切换传感器是微不足道的,因为您的应用程序受到的影响最小,并且仍然像往常一样获取数据。