图解物联网
上QQ阅读APP看书,第一时间看更新

1.3 实现物联网的技术要素

要实现物联网,需要很多技术要素。除了传感器等电子零件和电子电路以外,还包括Web应用中经常用到的技术,以及数据分析等。本书将会为大家整体解说这些技术。个别详细内容在第2章及以后的章节中会提到,这里我们先来总览一下本书将会讲解的全部内容。

1.3.1 设备

物联网与以往的Web服务不同,设备在其中担任着重要的作用。设备指的是一种“物”,它上面装有一种名为传感器的电子零件,并与网络相连接。比如大家拿着的智能手机和平板电脑就是设备的一种。家电产品、我们时刻戴着的手表以及伞等,只要能满足上述条件,就是设备(图1.6)。

图1.6 与网络连接的设备

这些设备起着两个作用:感测和反馈。下面我们分别说明它们各自的作用。

感测的作用

感测指的是搜集设备本身的状态和周边环境的状态并通知系统(图1.7)。这里说的状态包括房门的开闭状态、房间的温度和湿度、房间里面有没有人,等等。设备是利用传感器这种电子零件来实现感测的。

图1.7 感测的作用

打个比方,如果伞上有用于检测其开合的传感器并具备连接网络的功能,那么多把伞的开合状态就可以被检测到。利用这一点就能调查出是否在下雨。在这种情况下,如果一个地区有多把伞打开,就可以推测出该地区正在下雨。反过来,就能推断出大多数伞都合着的地区没有在下雨。此外,通过感测设备周边的环境还能搜集温度和湿度等信息。

反馈的作用

设备的另外一个作用是接收从系统发来的通知,显示信息或执行指定操作(图1.8)。系统会基于从传感器处搜集到的信息进行一些反馈,并针对现实世界采取行动。

图1.8 反馈的作用

反馈有多种方法。大体分成如图1.9所示的3种方法,分别是可视化、通知,以及控制。

图1.9 反馈的3种方法

比方说,用户通过“可视化”就能使用电脑和智能手机上的Web浏览器浏览物联网服务搜集到的信息。虽然最终采取行动的是用户,不过这是最简单的一个反馈的例子。只要把房间的当前温度和湿度可视化,人就能将环境控制在最适宜的条件下。

利用“推送通知”,系统就能检测到“物”的状态和某些活动,并将其通知给设备。例如从服务器给用户的智能手机推送通知,使其显示消息。近年来,Facebook和Twitter等SNS社交应用就在贴心地向我们的智能手机频繁推送朋友们吃饭和旅行的消息。如果你去逛超市时,推送通知能告诉你冰箱的牛奶过了保质期,洗涤用品卖完了,这个世界岂不就更方便了吗?

利用“控制”,系统就可以直接控制设备的运转,而无需借助人工。假设在某个夏天的傍晚,你正在从离家最近的车站往家走,你的智能手机会用GPS确定你现在的位置和前进的方向,用加速度传感器把你的步速通知给物联网服务。这样一来,服务就能分析出你正在回家的路上,进而从你的移动速度预测你到家的时间,然后发出指示调节家里空调的温度并令其开始运转。这样当你回到家的时候,家里就已经很舒服了。

1.3.2 传感器

要想像前文说的那样搜集设备和环境的状态,就需要利用一个叫作传感器的电子零件。

传感器负责把物理现象用电子信号的形式输出。例如有的传感器可以把温度和湿度作为电子信号输出,还有的传感器能把超声波和红外线等人类难以感知的现象转换成电子信号输出。

数码相机上使用的图像传感器也能把进入镜头的光线捕捉成3种颜色的光源,并将其转换成电子信号。因此它也可以归在传感器的分类里。传感器的种类如图1.10所示。关于这些传感器的种类和它们各自的结构,我们会在第3章详细介绍。

图1.10 具有代表性的传感器的种类

通过传感器输出的电子信号,系统就能够获取现实世界的“物”的状态和环境的状态。

人们很少单独利用这些传感器,通常都是将它们置入各种各样的“物”里来加以利用。最近的智能手机和平板电脑就内置了很多传感器,例如用于检测画面倾斜度的陀螺仪传感器和加速度传感器,采集语音的麦克风,用于拍摄照片的相机,具备指南针功能的磁场传感器。

还有一种东西叫作传感器节点,它把传感器本身置入环境中搜集信息。传感器节点是集蓝牙和Wi-Fi等无线通信装置与电池为一体的传感器。我们把这些传感器连接到一种叫作网关的专用无线路由器来进行传感器数据的搜集(图1.11)。

图1.11 传感器节点和网关

比如,在农场测量栽培植物的环境时,或是检测家里房间的温度和湿度时,就可以利用这些传感器节点。除此之外,市面上还有各种各样用于医疗保健的可穿戴设备,这些设备上装有加速度传感器和脉搏计,人们可以利用这些设备管理自己的生活节奏和健康状况。

这样一来,物联网服务就能利用传感器获取设备、环境、人这些“物”的状态。自己想实现的服务都需要哪些信息,为此应该利用哪种传感器和设备,这些都需要我们仔细分析。

1.3.3 网络

在把设备连接到物联网服务时,网络是不可或缺的。不仅要把设备连接到物联网服务,还得把设备连接到其他设备。物联网使用的网络大体上分为两种:一种是把设备连接到其他设备的网络,另一种是把设备连接到物联网服务的网络(图1.12)。

图1.12 用于物联网的两种网络

把设备连接到其他设备的网络

无法直接连接到互联网的设备也是存在的。我们通过把设备连接到其他设备,就能通过其他设备把这些不能连接到互联网的设备连接到互联网。前面我们介绍的传感器节点和网关正是两个典型的例子。此外,还有通过智能手机把可穿戴设备采集到的数据发送给物联网服务这一办法。

蓝牙和ZigBee是两种具有代表性的网络标准。它们是用无线连接的,利用的通信协议也是固定的。这些协议的特征有采用擅长近距离通信的无线连接、低功耗、易于嵌入嵌入式设备等。

要把设备连接到其他设备,除了1对1之外,还可以采用1对NNN的方式连接。特别是NN连接的情况,我们称这种情况为网状网络(图1.13)。

图1.13 设备之间的网络连接

有一种与网状网络对应的通信标准,名为ZigBee。通过采用NN的通信方式,设备可以一边接管其他的设备,一边进行远程通信。除此之外它还有一个优点,那就是即使有一台设备发生故障无法通信,其他设备也会代替它来执行通信。

关于上述设备的通信规格我们会在第3章讲解。

把设备连接到服务器的网络

把设备连接到物联网服务的网络时,会用到互联网线路。3G和LTE等移动线路最为常用。

除了现在Web服务中广泛使用的HTTP和WebSocket协议以外,还有一些专为机器对机器通信和物联网而产生的轻量级协议,如MQTT等。关于该协议,我们会在第2章进行详细说明。

1.3.4 物联网服务

物联网服务有两个作用:一是从设备接收数据以及发送数据给设备;二是处理和保存数据(图1.14)。

图1.14 Web系统的作用

我们来具体看一下这两个作用。

数据交换

通常的Web服务会根据Web浏览器发送的HTTP请求发送HTML,然后用Web浏览器显示。物联网服务则不采用Web浏览器,而是接收从设备直接发来的数据。设备发来的数据内容包括设备搭载的传感器所采集到的信息,以及用户对设备进行的操作。设备和物联网服务的通信方法大致分为两种:同步传输和异步传输(图1.15)。

在同步传输的情况下,设备发送数据时会把数据发送给物联网服务。接下来直到物联网服务接收完数据之前,不管设备向物联网服务发送多少次数据,都算作一次传输。反过来,物联网服务在执行对设备的反馈时,则是先由设备向物联网服务发送请求消息,然后物联网服务会响应请求并将消息发送给设备。就这种方法而言,直到设备发送请求之前,物联网服务都不能把消息发送给设备。但是这种方法只适用于不知道设备IP地址的情况,因为就算不知道设备的IP地址,只要设备发送了请求,物联网服务就能把消息发送给设备。

在异步传输中,设备会把数据发送给物联网服务,每发送一次,就算作一次传输。此外,从物联网服务向设备进行传输时,无需等待设备发来的请求,可以在任意时间点执行发送。采用这个方法能在物联网服务规定的任意一个时刻发送消息。但是,物联网服务需要预先知道发送消息的设备的IP地址。

图1.15 Web系统和设备的通信

第2章会用一些实际使用的协议来讲解这种通信。

处理和保存数据

就如大家在图1.14看到的那样,处理和保存数据的操作包括把从设备接收到的数据保存到数据库,以及从接收到的数据来判断如何控制设备。

从设备接收到的数据不只有能用计算机简单处理的数值型数据,根据要实现的内容,还包含图像、语音、自然语言这些很难直接用计算机处理、没有被结构化的数据。我们把这种数据叫作非结构化数据。处理时,有时也会把那些易于用计算机处理的数据从非结构化数据中提取出来,例如把表示图像和语音特征的值提取出来。这些信息会被保存到数据库中。

设备按照所提取数据的判断逻辑来决定反馈的内容,例如基于某个房间的温度数据来决定空调的开关状态和目标温度。这些处理和保存的方法大体上分为两种:一种是对保存的数据定期进行采集和处理的批处理,另一种是将收到的数据逐次进行处理的流处理(图1.16)。

图1.16 保存和处理数据的时机

根据房间的温度变化来调整空调的运转时,从向空调发出指示到温度发生变化,这中间会需要一段时间。这种情况下就适合采用批处理来持续记录每隔一定时间的温度值,并定期执行处理。此外,如果希望回到房间之后再打开空调,那么就适合采用能立即执行操作的流处理。

1.3.5 数据分析

前一节我们以“温度传感器和空调运转的关系”为例进行了说明。那么我们能像这个例子那样,轻松实现“根据房间温度控制空调”这一目的吗?

要实现这一目的,需要决定控制空调开/关的房间温度值,也就是决定温度的阈值。这种情况下,阈值会根据使用者目的而有所不同。举个例子,把空调的功耗降到最小所需要的阈值和保持令人体感舒适的温度所需要的阈值就是两个不同的值。此外,为了能准确判断房间里有没有人,需要从多个传感器的值所包含的关联性来判断人在或不在房间里。人类很难光凭经验去摸索和决定这种值。这就凸显出了数据分析的重要性。

数据分析的代表性方法有两种,分别是统计分析和机器学习。这里就来看看我们用这两种方法能办到什么(图1.17)。

图1.17 数据分析的两种方法

统计分析

统计分析是用数学手法通过搜集到的大量数据来明确事物的联系性的方法。比如为了实现给空调节能的目的,我们调查了空调在某个固定的温度下运转时,房间的温度和空调的耗电量,并将这些数据制成了表格(图1.18)。

图1.18 空调的电力和室温的关系示例

从这个关系中可以推导出在室温下把空调温度设定在多少才能最省电,由此就能决定阈值了。

上述示例采用的是先填表再分析的方法,除此之外还有一种叫作回归分析的统计方法,此方法我们会在第6章详细说明。

机器学习

统计分析基于大量数据之间的联系性,明确当前数据间形成的关联。机器学习则不仅仅能进行分析,还能预测今后的发展状况。

机器学习就如它的字面意思一样,计算机会按照程序决定的算法,机械性地学习所给数据之间的联系性。当给出未知数据时,也会输出与其对应的值。

机器学习分为两个阶段:学习阶段和识别阶段(图1.19)。在学习阶段,一个名为学习器的程序会基于一些训练数据,机械性地掌握这些数据之间的联系。作为学习阶段的结果,计算机会根据机器学习的算法输出参数,然后以这个参数为基础创建叫作鉴别器(discriminator)的程序。只要把未知的数据给这个鉴别器,就能输出最适合这个值的结果。

图1.19 机器学习示例

举个例子,假设我们想使用若干种传感器来识别房间里有没有人。这种情况下需要准备两种数据,即房间里有人时的传感器数据(正面例子)和房间里没人时的传感器数据(反面例子)。计算机通过把这两种数据分别交给学习器,可以获取制作鉴别器用的参数。对于以参数为基准制作的鉴别器而言,只要输入从各个感测设备接收到的数据,鉴别器就能输出结果,告诉我们现在房间里是否有人。

上述内容属于机器学习的示例之一,被称作分类问题。在用于执行数据分类的机器学习算法中有很多途径,如用于垃圾邮件过滤器的贝叶斯过滤器和用于分类文档及图像的支持向量机(Support Vector Machine, SVM)等。此外,除了分类问题以外,机器学习还能解决很多领域的问题。