目前国内物联网通信领域,主要分为两大阵营:以三大运营商和华为为主的NB通信方式,以阿里巴巴和Lora联盟为主的Lora和LoraWan通信方式(还有传统的GPRS通信方式和SMS通信方式)。
NB借用运营商已有的基站作为网络节点发送数据,而Lora多用于自组网,需要自行搭建网关。两种方式各有优缺点。例如有些共享单车就采用了短信(SMS)+NB+蓝牙的通信方式。其中NB通信方式多采用Coap协议进行。Coap协议是基于UDP的应用层协议,较Http轻量,专为物联网终端设计,采用无状态连接。因为采用无状态连接故Coap并不擅长主动下发命令。Mqtt协议基于TCP协议,有商业和开源的mqtt broker供选择,支持ACL访问控制、集群、共享订阅等高级功能,能够实现实时命令下发,相较于TCP协议大大简化服务器端的开发工作量。采用NB通信方式需要从电信运营商处采购物联卡,并且开通NB流量套餐。目前三大运营商皆有物联卡。
为了方便管理设备的连接,通信协议的解析,以及设备的鉴权,各大运营商都推出了自己的Iot平台。比如中国移动的OneNet平台,华为的OceanConnect平台,以及中国电信在OceanConnect平台基础上,开发出的中国电信Iot平台。目前OceanConnect平台为收费使用且价格不菲,中国电信则免费使用,但是限制只能够使用中国电信的物联卡,且中国电信的物联卡也只能将数据发送到中国电信Iot平台,实现了双向绑定。中国移动的物联卡目前没有这一限制,并且可以使用GPRS(2G\3G\4G\4G+)通信方式。
Iot平台都自带设备接入功能,设备状态管理功能,提供了通信协议解析的接口。用户可根据终端设备的通信协议,安装平台接口标准自行编写编解码插件用于数据的解析,即将Hex格式的数据解析为json格式,反之亦然。Iot平台与用户应用平台的交互也都提供了api接口,用户在应用平台调用对应的接口即可。关于解析好的数据,可以通过订阅/推送的方式发送到应用平台,也可以应用平台通过接口主动请求获取数据。