按网络四层协议:
-
NB-IoT,LORA,WIFI,蓝牙,zigbee,4G都是物理层的,这几个都需要芯片模组支持(硬件支持)
-
而MQTT,COAP,HTTP都是应用层协议,这些需要开发服务器,或者对接云平台厂商(软件支持)
所以(MQTT,COAP,HTTP)是居于(NB-IoT,LORA,WIFI,蓝牙,zigbee,4G)的上层协议
物理层:
- 不需要网关:NB-IoT,4G(芯片可以直接连上移动,联通,电信运营商)
- 需要网关:LORA,WIFI,zigbee(不能直接连上电信运营商,需要通过一个网关中转才能连上电信运营商)
- 蓝牙:比较特别,是两个蓝牙设备之间互联
NB-IoT,4G对比:
NB-IoT低功耗,传输小数据,传输速度底,芯片模组和套餐便宜
4G:传输速度快和可以传输大的数据,但是功耗高,价格贵
WIFI和zigbee对比:
wifi 功耗高,传输数据快,一个路由只能加入较少设备
zigbee功耗低,传输数据慢,可以中继,一个zigbee网关可以加入成千上万的zigbee设备
应用层
- MQTT
MQTT的特点是可以保持长连接,具有一定的实时性,云端向设备端发送消息,设备端可以在最短的时间内接收到并作出响应,所以MQTT更适合需要实时控制的场合,更适合执行器。要保持长连接,那么就要时不时地发送心跳包,这就不会省电了。所以低功耗的场合并不适合MQTT。MQTT的长连接需要建立在TCP的基础上,TCP协议的复杂性决定了对设备的要求是比较高一些的,相比UDP。 - CoAP
CoAP的特点是低功耗,数据发完就可以休眠了。所以CoAP更适合数据采集的场合,更适合纯粹的传感器设备,特别是电池供电的传感器设备。基于UDP协议,对设备的要求比较简单。华为出的NB-IoT芯片就只支持UDP和CoAP,华为的决策告诉我们CoAP和NB-IoT是一对。