智能家居行业的特殊需求,要求在网络不可靠情况下依然能够进行家居设备监测控制,边缘计算网关是智能家居的必然选择;导致智能家居网关开发难度大、周期长、实现可靠稳定代价大。
为了降低智能家居网关的研发难度成本,采用开源技术实现部分功能组件成为必然的选择;本文将针对智能家居网关关键技术进行选型对比。
——Vensi威士丹利
技术选型对比
边缘计算网关开源关键技术包括:
操作系统
消息服务
数据库技术
物联技术
网关集群技术
操作系统选型
从对比表中,可以知道:
1. Widows平台的网关成本高,难以推广市场;
2. Android对硬件资源要求较高、带来硬件成本较高;但UI开容易并且美观;
3.在低成本网关中,以Openwrt、Ubuntu为主;但其开发难度、周期较长;
综合分析:未来对路由要求高的场合将以Openwrt,对UI要求高的将以Android为主;
消息服务选型
为了实现网关软件的解耦,使系统更易于开发,更加健壮,同时也为了便于与云平台进行对接,采用MQTT broker非常必要,典型的有mosquitio、Apollo、emqttd等。
数据库选型
适用于嵌入式平台下的数据库对比如下:
MySQL是目前最受欢迎的开源数据库,PostgreSQL则是我认为最先进的开源数据库。MySQL是C/C++混合开发,PostgreSQL则是完全的C语言开发。
物联技术造型
有RS485、ZigBee、蓝牙mesh、wifi等设备物联通信技术,而未来随着智能家居市场的成熟,逐渐具有无线化趋势,其中zigbee3.0、蓝牙mesh会是未来的佼佼者。
蓝牙Mesh、zigbee(thread)相对差劲些,穿墙性能弱,带宽相对较小,需要一个或多个分布式网关(一个网关大概100-500元不等,换算下来相当于一个好的路由器的钱)才能覆盖全屋,支持点到点直连控制,无需联网,同时低功耗最低待机功耗5毫瓦(理论上zigbee协议更省电一些,但是蓝牙5.0后zigbee协议的省电优势不明显了,zigbee协议在省电方面更胜一筹,也不用频繁换电池),纽扣电池都可以搞定,控制模块成本低,其次Zigbee的协议更为成熟和标准化,价格也相对比蓝牙协议贵些
目前最好的办法是蓝牙、蓝牙Mesh、Zigbee多合一智能网关,如果没有这种网关就只能买独立网关,买1到3个解决所有烦恼,要想体验好,覆盖和性能好的路由器和智能网关。
目前大概做智能家居的厂家大概思路是:插电的设备首选WiFi;无线开关和传感器等上电池的被动设备用Zigbee,考虑到成本次之选蓝牙Mesh
不考虑成本的情况下目前 Zigbee 最好,其次就是WiFi和蓝牙Mesh,如果未来 WiFi 支持低功耗IP协议,可能会成为最好的方案,目前我更倾向 WiFi 与 Zigbee
模块成本(贵 -> 便宜):WiFi > Zigbee > 蓝牙Mesh
小数据包省电性能(省电 -> 费电):Zigbee > 蓝牙Mesh > WiFi
大数据包省电性能(省电 -> 费电):WiFi > 蓝牙Mesh > Zigbee
传输带宽(大 -> 小):WiFi > 蓝牙Mesh > Zigbee
穿墙性能(强 -> 弱):WiFi > Zigbee > 蓝牙Mesh
延迟性能(低 -> 高):Zigbee > WiFi > 蓝牙Mesh
抗干扰性能(强 -> 弱):Zigbee > WiFi > 蓝牙Mesh
不依赖专用网关(非必须 -> 必须):WiFi > 蓝牙Mesh > Zigbee
不依赖云执行指令(非必须 -> 必须):Zigbee > 蓝牙Mesh > WiFi
跨厂家之间互操作性(兼容 -> 不兼容):Zigbee > 蓝牙Mesh > WiFi
WIFI 组网
2.4G WiFi好,穿墙性能好一个路由器全屋搞定,连接方便无需网关控制器,带宽大,但是功耗高,低功耗被动唤醒的WiFi协议目前没普及。
WIFI组网方式一般都是采用了星型的拓扑结构,一般处于中心点的是一个路由器,其他设备通过输入WiFi密码从而接入网络。
该网络中的设备直接交互都是通过路由器实现转发。当中心设备(路由器)挂掉时,设备间的组网连接就被中断了。同时网络中的设备连接数量受限于中心设备,通常一个路由器只能支持0~50个设备连接。
不插电的WIFI组网设备需要频繁的更换电池,给用户来说十分不方便。
WIFI组网的优点也很明显,支持大数据量的数据传输,可以实现千兆速率的数据传输。传输距离较远,一般可达10~300m范围。
蓝牙 mesh 组网
mesh组网方式的安全性较高,针对窃听攻击、中间人攻击、重播攻击、垃圾桶攻击等均有有效的防控措施。
蓝牙mesh在理论上可以支持65000个设备实现组网,这个跟WIFI可组网设备数量显示不是一个量级的。
蓝牙mesh设备功耗较低,不需要频繁更换电池。
Zigbee 组网
Zigbee组网方式具有跟mesh组网类似的低功耗、连接设备多、安全性高等优点,也具有类似的传输速率低等缺点。
Zigbee理论上也可以支持65000个设备同时组网。
网关集群技术
为了实现网关之间的互通,实现集群控制能力;本章将提出集群解决方案。
消息服务器集群基于分布式设计,集群原理可简述为下述两条规则:
MQTT 客户端订阅主题时,所在节点订阅成功后广播通知其他节点:某个主题(Topic)被本节点订阅。
MQTT 客户端发布消息时,所在节点会根据消息主题(Topic),检索订阅并路由消息到相关节点。
消息服务器同一集群的所有节点,都会复制一份主题(Topic)-> 节点(Node)映射的路由表,例如:
topic1 -> node1, node2
topic2 -> node3
topic3 -> node2, node4
集群方式分别有以下方式:
manual手工命令创建集群
static静态节点列表自动集群
mcastUDP 组播方式自动集群
dnsDNS A 记录自动集群