本文从宏观上介绍 IoT 的通信架构,让大家都日渐频繁的物联网设备工作原理有一个初步的理解,主要分为了直连、网关、云三种模式。 1. 直连模式(direct integration pattern) 通常我们使用的小米手环等物联网设备,和手机就是直连模式,但其使用的是蓝牙,并不能提供通用的接口来访问;解决这一问题的方法是使用已经成熟多年的 Web 技术,所以也有人提出了 Web of Things 的概念。 如果设备支持 HTTP 和 TCP/IP,并且能够直接连接互联网,比如使用 Wi-Fi,那么可以使用这种直连模式。通常设备需要较为强大的处理能力,并且有持续的电源,比如智能家居等。要通过 Web 直接控制设备,其自身需要实现类似下图的功能,从硬件控制、RESTFUL API 的设计到 HTTP 服务器的实现。 2. 网关模式 (gateway integration pattern) 如果设备的资源受限,或者不能直接接入互联网(比如仅仅支持蓝牙、ZigBee),它们可以通过接入功能强大的网关(gateway)来实现通过 Web 访问;网关将其他类型的协议转换成统一的对外接口(如将设备的 CoAP 转换为 HTTP 提供给用户),同时还可以提供安全认证、集成、临时数据存储、对设备的语义描述等功能。开源的网关项目有 Open Hab [2],此外很多大厂商也有自己的网关来支持自己的设备。 3. 云模式 (cloud integration pattern) 云模式可以看做网关模式的扩展,只不过网关在云端,提供协议的转换、数据处理等云服务,最大的特点在于可以通过外网访问各种设备。目前已经出现了各种提供物联网云服务的平台,如 AWS、阿里、微软等巨头,还有专门的平台如 Xively、机智云等,百家争鸣,但是他们大都采用类似下图的结构,通过 MQTT 协议来管理各种设备,云端有虚拟设备来保存设备状态,存储管理设备产生的数据,使用秘密的 API KEY 通过 REST API 来发送管理指令等。 4. 总结 通过云的模式往往使指令传输很慢,所以一个物联网设备可能同时允许上述几种操作模式。使用 Web 来控制设备,还可以轻松的使用 IFTTT 这样的第三方自动化平台,来设计条件自动化的执行一些功能,并于常用 App 如 Twitter 互动。最后,盗几张书中对协议介绍的图,来方便理解物联网中涉及的各种协议,如蓝牙、MQTT、ZigBee、Apple Homekit 等。
|