1.2 IoT组件
几个不可忽略的要素推动着IoT生态系统的发展,要了解IoT,就要弄清楚它们在其中扮演的角色,这对更好地理解我们将使用Android Things构建的项目也相当有用。
IoT由一个个智能对象组成。它们是能够交换数据并且连接到互联网的设备,可以是用于测量压力、温度等环境变量的简单传感器,也可以是更复杂的一套完整系统。烤箱、咖啡机,甚至洗衣机都可以是智能对象连接到互联网的例子。所有这些智能对象都可以当作IoT中的成员。总之,IoT对象不仅可以是智能化的家用电器,还可以是汽车、建筑物和执行器等。可以在连接时引用这些对象,使用某种唯一标识符与它们交流互动。
在底层,这些设备使用网络层中的相关技术来交换数据。在IoT底层,重要且常用的协议包括:
• Wi-Fi;
• Bluetooth;
• ZigBee;
• Cellular network;
• NB-IoTLoRA。
在应用层中,IoT项目也广泛使用了几种通用协议。其中一些协议派生自特定的环境(如Web),也有一部分特定于IoT。常见的有以下几种:
• HTTP;
• MQTT;
• CoAP;
• AMQP;
• Rest;
• XMPP;
• Stomp。
现在,它们在你眼中可能只是一个空洞的英文名称,但在本书深入探讨如何在Android Things中使用这些协议后,你将豁然开朗。
原型开发板在IoT中扮演着至关重要的角色,有助于开发具有一定量级的连接对象。使用开发板,可以实现多种IoT项目。本书将一一探究如何使用与Android Things兼容的一些开发板构建并测试IoT项目。我们可能已经了解了市场上已经有的几种原型开发板,它们各具特色且功能各异。例如:
• Arduino(配置各异);
• Raspberry Pi(配置各异);
• Intel Edison;
• ESP8266;
• NXP。
在本书的项目中,我们将主要使用Raspberry Pi 3主板和Intel Edison主板,因为目前Android Things官方支持这两款主板。在本书中,我们也将会使用一些其他主板,以了解它们各自的集成方式。