我们玩ESP常见的物联网协议:MQTT NB-IOT,LoRa.了解即可。
MQTT 协议(Message Queue Telemetry Transport,消息队列遥测传输协议)是 IBM 的 Andy Stanford-Clark 和 Arcom 的 Arlen Nipper 于 1999 年为了一个通过卫星网络连接输油管道的项目开发的。为了满足低电量消耗和低网络带宽的需 求,MQTT 协议在设计之初就包含了以下几个特点:
MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
MQTT 协议的架构由 Broker 和连接到 Broker 的多个 Client 组成
它在移动互联网领域也大有作为,很多 Android App 的推送功能都是基于 MQTT 协议实现的,一些 IM 的实现也是基于 MQTT 协议的.
MQTT-SN(MQTT for Sensor Network)协议是 MQTT 协议的传感器版本。
MQTT 协议是运行于 TCP 协议栈之上的,TCP 协议对于某些计算能力和电量非常有限的设备来说,比如传感器,就不太适用 了。
MQTT-SN 运行在 UDP 协议上,同时保留了 MQTT 协议的大部分信令和特性,如订阅和发布等。
MQTT-SN 协议引入了 MQTT-SN 网关这一角色,网关负责把 MQTT-SN 协议转换为 MQTT 协议,并和远端的 MQTT Broker 进行通信。MQTT-SN 协议支持网关的自动发现。
CoAP(Constrained Application Protocol)协议是一种运行在资源比较紧张的设备上的协议。
CoAP 协议通常也是运行在 UDP 协议上的。 CoAP 协议设计得非常小巧,最小的数据包只有 4 个字节。CoAP 协议采用 C/S
架构,使用类似于 HTTP 协议的请求 - 响应的 交互模式。 CoAP 提供一种观察模式,观察者可以通过 OBSERVE 指令向 CoAP
服务器指明观察的实体对象。当实体对象的状态发生变化时,观察者就可以收到实体对象的最新状态,类似于 MQTT 协议中的订阅功能。
LwM2M( Lightweight Machine-To-Machine )协议是由 Open Mobile Alliance(OMA)定义的一套适用于物联网的轻量级协议。它使用 RESTful 接口,提供设备的接入、管理和通信功能,也适用于资源比较紧张的设备。
LwM2M 协议底层使用 CoAP 协议传输数据和信令。而在 LwM2M 协议的架构中,CoAP 协议可以运行在 UDP 或者 SMS(短
信)之上,通过 DTLS(数据报传输层安全)来实现数据的安全传输。 LwM2M 协议架构主要包含 3 种实体——LwM2M
Bootstrap Server、LwM2M Server 和 LwM2M Client。 LwM2M Bootstrap Server
负责引导 LwM2M Client 注册并接入 LwM2M Server,之后 LwM2M Server 和 LwM2M Client 就可
以通过协议指定的接口进行交互了。
正如我们之前所讲,物联网也是互联网,HTTP 这个在互联网中广泛应用的协议,在合适的环境下也可以应用到物联网中。
在一些计算和硬件资源比较充沛的设备上,比如运行安卓操作系统的设备,完全可以使用 HTTP 协议上传和下载数据,就好像在开发移动应用一样。设备也可以使用运行在 HTTP 协议上的 WebSocket 主动接收来自服务器的数据。
LoRaWAN 协议是由 LoRa 联盟提出并推动的一种低功率广域网协议,它和我们之前介绍的几种协议有所不同。
LoRa(Long Range)是一种无线通信技术,它具有使用距离远、功耗低的特点。在上面的场景下,用户就可以使用 LoRaWAN 技术进行组网,在工程设备上安装支持 LoRa 的模块。
通过 LoRa 的中继设备将数据发往位于隧道外部的、有互联网接入的 LoRa 网关,LoRa 网关再将数据封装成可以在 IP 网络中 通过 TCP 协议或者 UDP 协议传输的数据协议包(比如 MQTT 协议),然后发往云端的数据中心。
NB-IoT(Narrow Band Internet of Things)协议和 LoRaWAN 协议一样,是将设备接入互联网的物理层 / 数据链路层的协议。
与 LoRA 不同的是:
NB-IoT 协议相比传统的基站,增益提高了约 20dB,可以覆盖到地下车库、管道、地下室等之前信号难以覆盖的地方。
https://blog.csdn.net/weixin_45020839/article/details/106660207