描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787030610102
本书共分8章,内容涉及物联网“端-管-云”全链路开发流程。第1章介绍物联网发展现状、应用架构、典型应用;第2、3章分别从硬件平台和操作系统的角度介绍物联网设备端开发;第4章介绍基于TinyLink系统的物联网设备端快速开发;第5、6章分别介绍物联网应用中常用的低功耗短距离以及长距离通信技术;第7、8章分别介绍目前主流的物联网云平台和物联网云-端一体开发平台。
本书适合作为高等院校计算机、通信、物联网工程等专业高年级本科生、研究生的教学用书,也适合作为物联网专业开发人员的技术参考用书。
图书在版编目(CIP)数据
第1章 物联网概述 1
1.1 物联网的定义和发展趋势 1
1.2 物联网的应用架构及挑战 2
1.2.1 应用架构 2
1.2.2 机遇及挑战 3
1.3 物联网典型应用 4
1.3.1 智慧城市——鸿山物联网小镇 4
1.3.2 智慧校园——CMU Living Lab 7
1.3.3 空气质量监测——Mosaic 11
1.4 物联网相关学术研究及前沿问题 15
1.4.1 相关学术研究领域 15
1.4.2 物联网的关注点及其前沿挑战问题 17
1.5 总结与展望 23
习题 23
参考文献 24
第2章 物联网硬件平台 25
2.1 概述 25
2.1.1 简介 25
2.1.2 平台组成 27
2.2 关键特性 27
2.2.1 成本与体积 27
2.2.2 能耗 28
2.2.3 运算速度和内存大小 29
2.2.4 接口类型 30
2.2.5 安全性 39
2.3 常见的硬件平台 40
2.3.1 传感器节点平台 40
2.3.2 Arduino系列硬件平台 42
2.3.3 树莓派系列硬件平台 48
2.4 案例开发——室内环境监测 51
2.4.1 基于Arduino UNO的开发 52
2.4.2 基于树莓派3B的开发 55
2.5 学术研究前沿 58
2.6 总结 59
习题 59
参考文献 61
第3章 物联网操作系统 63
3.1 概述 63
3.1.1 简介 63
3.1.2 系统构成 64
3.2 关键特性 65
3.2.1 编程模型 65
3.2.2 调度方式 68
3.2.3 I/O操作方式 69
3.2.4 内存分配 70
3.2.5 软件更新 71
3.2.6 网络服务 72
3.2.7 系统安全 72
3.3 典型物联网操作系统 75
3.3.1 TinyOS 76
3.3.2 Contiki OS 82
3.3.3 AliOS Things 91
3.4 案例开发——物联网防盗节点(增强版) 95
3.4.1 基于TinyOS的开发 96
3.4.2 基于Contiki OS的开发 99
3.4.3 基于AliOS Things的开发 101
3.5 学术研究前沿 105
3.6 总结与展望 105
习题 106
参考文献 109
第4章 基于TinyLink的软硬件一体开发 111
4.1 概述 111
4.2 TinyLink使用说明 114
4.2.1 开发流程 114
4.2.2 功能描述 117
4.2.3 API说明 119
4.3 TinyLink开发实例 121
4.3.1 功能使用 122
4.3.2 功能扩充 126
4.4 TinyLink实现机理 127
4.4.1 TinyLink系统框架 127
4.4.2 硬件生成系统 128
4.4.3 软件生成系统 129
4.5 远程实验室uDevice Center 130
4.5.1 uDevice Center简介 130
4.5.2 uDevice Center与TinyLink的集成 131
4.5.3 开发示例 132
4.6 案例开发——物联网防盗节点(增强版) 135
4.6.1 使用默认功能开发 135
物联网的概念由来已久,但其大规模实际应用则是近年来的事情。十几年前,我接触并研究传感网,经历了传感网到物联网发展过程中核心技术的巨大变化。目前,物联网硬件平台的异构性进一步加剧,工业界开始主导物联网操作系统领域,低功耗广域网的飞速发展使得物联网设备接入因特网不再困难,各大企业纷纷推出物联网云平台,物联网云-端一体化的趋势日益明显。
尽管物联网技术在飞速发展,但从应用开发的角度来看,用户想要开发一个完整的物联网应用仍不容易,他需要熟悉并掌握物联网设备端、云端、移动端中各种不同的技术。这些技术所需要的开发环境、工具链成熟度各不相同,从而给应用开发带来巨大挑战。
物联网领域中多种新技术的出现,以及物联网应用开发的困难性,使我觉得有必要撰写一本物联网开发方面的教材。愿望大都是美好的,但实施过程中往往会遇到很多选择和困难,本书的撰写也不例外。
首先是重原理还是重实践的选择。从本书的书名看,应该是重实践。但如果太偏重实践而忽略原理介绍,知识点的组织将变得十分零散,教师上课就无法围绕知识点展开,学习者也无法系统地掌握物联网各种关键技术。所以,本书借鉴了经典教材Computer Networks(Andrew S. Tanenbaum)的写法:每章先介绍基本原理,再介绍现有技术,最后是案例开发。介绍完基本原理之后,对各种技术的介绍就会更加简洁,也容易看出各种不同技术的相似点和不同点。案例开发部分则尽量自成一体,使得工程开发人员也可以跳过前面部分快速上手。
其次是全面性还是针对性的选择。物联网产业链长,开发技术多。硬件平台有TelosB、Arduino、树莓派、BeagleBone等;操作系统有TinyOS、Contiki OS、Huawei liteOS、AliOS Things、Android Things等;通信技术有ZigBee、蓝牙、NFC、红外、可见光、NB-IoT、LoRa、SigFox等;物联网云平台更是有亚马逊AWS IoT、微软Azure IoT、中国移动OneNet、阿里云IoT、华为OceanConnect等。每一个方面都可以单独出一本教材。但是,一个完整的物联网应用恰恰包括了物联网硬件、操作系统、通信协议、云平台以及移动端等各个方面。本书的内容涵盖了典型物联网应用架构的四个方面:物联网设备硬件及软件、通信协议、物联网云平台、移动/应用端。在每个方面只选取了最具代表性的几个技术做了详细介绍。我们希望读者通过对这些技术的深入理解,能够举一反三,快速学习并掌握其他相关技术。
最后是新颖性还是基础性的选择。新颖性无论是对一篇论文还是一本书都十分重要。本书介绍了目前物联网领域比较新的技术,如Huawei liteOS、AliOS Things、NB-IoT、LoRa、微软Azure IoT和阿里云IoT的IoT Studio开发平台等。此外,在与学术研究相关的章节中,专门介绍了最新的学术研究前沿。基础性的知识也同样重要。引用Tanenbaum教授的话,某类技术非常优美,虽然现在没被使用,但有可能在未来解决某个关键问题。所以我们既要学习当前流行的各种技术,也要学习很多设计优美、在未来可能大有用处的技术。因此,本书也介绍了TinyOS、Contiki OS、基于802.15.4的传感网协议中重要的基础性知识,包括其中组件化编程的思想、轻量级线程的设计、低功耗MAC的设计等。
变与不变是一个领域微妙的两面。不变,领域就没有生机;经常变,领域就没有知识的沉淀。研究了十多年的传感网/物联网,我经常在思考,物联网到底是重在系统,还是网络,或是感知与信号处理?什么是物联网专业的特长?在写完本书之后,我自己的一个体会就是,系统、网络、感知等方面都是物联网不可或缺的要素。对物联网从业者来说,熟悉并了解上述每个方面固然重要,但更重要的是怎样去更好地理解各种不同的应用场景,怎样去选择并定制各种不同的技术,怎样去提高快速开发并实现一个完整的物联网应用的能力。
本书面向的读者
本书适合作为高等院校计算机、通信、物联网工程等专业的高年级本科生、研究生的教学用书,也适合作为物联网专业开发人员的技术参考用书。
本书的内容组织
如图1所示,本书共分8章内容,涉及物联网“端-管-云”全链路开发流程。第1章介绍物联网发展现状、应用架构、典型应用;第2、3章分别从硬件平台和操作系统的角度介绍物联网设备端开发;第4章介绍基于TinyLink系统的物联网设备端快速开发;第5、6章分别介绍物联网应用中常用的低功耗短距离以及长距离通信技术;第7、8章分别介绍目前主流的物联网云平台和物联网云-端一体开发平台。
本书配套的电子材料
本书配备丰富的电子材料,包括课程讲义、案例示例代码、参考答案、案例开发视频教程等。为方便读者学习,其中,案例开发视频教程及部分内容的详细讲解在书中以二维码的形式呈现。其他材料读者可向本书责任编辑索取,发送E-mail至[email protected]。
致谢
要在短时间内深入了解本书涉及的许多新技术,特别是要基于这些技术做实际案例的开发着实不易。为此,自我从2018年8月决定编写教材以来的半年内,浙江大学物联网系统与网络(EmNets)课题组的学生都花费了大量的时间和精力准备素材,在此对他们的努力表示感谢。他们是:蔡振宇、曹晨红、陈共龙、程志浩、管高扬、靖远、李博睿、李惠康、林宇翔、刘汶鑫、吕嘉美、宋心怡、王一卉、张甲栋、张文照。
还要感谢阿里云IoT事业部的支持,在过去的一年多时间里,课题组与阿里云IoT事业部同为阿里巴巴-浙江大学前沿技术联合研究中心(AZFT)物联网实验室的成员,双方在物联网平台方面的合作与交流也是本书许多重要内容的来源。此外,需要特别感谢科学出版社的赵丽欣女士,没有她的大力支持,这本书不会这么快和读者见面。
由于编者知识有限,加之时间仓促,书中难免存在疏漏,恳请读者批评指正。
董 玮
2019年3月
第1章 物联网概述
【学习目标】
● 理解物联网的定义,了解物联网的发展趋势;
● 掌握物联网的应用架构及挑战;
● 了解物联网的典型应用;
● 了解物联网相关的学术领域和学术关注点;
● 掌握物联网与传感网的不同点。
1.1 物联网的定义和发展趋势
什么是物联网?根据维基百科上的定义,物联网就是物理设备以及其他嵌入了电子器件、软件、传感器的物件组成的网络。这些物件具有感知能力、计算能力以及连接能力,从而能更直接地将物理世界集成到数字世界中。
近年来,在学术界和工业界的共同推动下,物联网技术有了极大的发展。早在2003年,ACM就组织了嵌入式网络传感器系统大会(Conference on Embedded Networked Sensor Systems,SenSys),聚焦基于微型传感器节点的系统设计、组网、计算以及感知等关键问题。2016年,IEEE、ACM共同资助首届物联网设计与实现大会(Internet of Things Design and Implementation,IoTDI),该会拓展了基于传统微型传感器节点的研究范围,关注基于物联网的交互性、可靠性、安全性等前沿问题。在物联网领域的学术期刊方面,IEEE和ACM分别推出了两本期刊:IEEE Internet of Things Journal和ACM Transactions on Internet of Things,值得物联网领域的科技工作者参考借鉴。
在工业界,物联网也得到了极大的关注。2017年6月,工业和信息化部发布了《关于全面推进移动物联网(NB-IoT)建设发展的通知》。华为、中国移动、中国电信等公司投入巨资建设物联网基础设施,大量低功耗物联网设备如何接入互联网的关键问题有望得到全面解决。阿里巴巴、IBM、亚马逊、微软等互联网公司以及众多创业公司正在物联网平台与应用方面布局,以解决大量物联网数据如何存储、查询、处理等共性问题。相继推出的物联网开发云平台包括亚马逊IoT平台、微软Azure IoT云平台、阿里云Link平台等。
1.2 物联网的应用架构及挑战
1.2.1 应用架构
一个典型物联网应用的架构如图1-1所示,包括4个主要部分。
① 物联网设备 这是物联网的终端感知设备。例如,可以是一个PM2.5感知节点,该节点采集PM2.5空气质量数据,并通过某一种通信方式上传到物联网云平台。
② 网关 物联网设备通常通过无线方式接入互联网。传统的接入方式包括WiFi、GPRS等,新兴的接入方式包括NB-IoT、蓝牙5.0等。在这些接入方式中通常需要一个网关(如WiFi接入点、蜂窝网基站等)。网关通过无线接收数据,并通过有线将数据传输到物联网云平台。
③ 物联网云平台 物联网云平台的功能主要包括存储物联网感知数据,并提供相应的数据查询、分析、处理、展示;物联网终端、网关设备的接入和管理;设备间通信支持;多重安全防护保障等。
④ 用户端 基于物联网云平台,应用开发者也可以开发各类用户端应用,可以是PC(个人计算机)应用程序、网站,或者是智能手机App等。
由此可见,一个物联网应用的开发涉及多个方面。而在每一个方面都可能涉及众多不同的软硬件平台。图1-2展示了部分常见的设备与平台。
1.2.2 机遇及挑战
在物联网云平台方面,目前各大互联网公司基于已有的云计算技术推出了相对成熟的物联网平台产品,大大简化了物联网数据的存储、分析和处理。但在物联网设备的选型和开发、无线接入方式的选择、应用程序流程的简化和优化等方面还面临很大的机遇和挑战。这些机遇和挑战可以总结为以下几个方面:
● 开发链长。一个完整的物联网应用包括嵌入式开发、云端开发以及用户端开发。目前,物联网应用的开发还是非常复杂的,需要不同类型的开发人员共同协作。国际著名芯片半导体公司TI曾明确提出:如何使物联网的设计和开发变得简单非常必要。物联网应用的开发需要让所有开发者觉得容易,而不仅限于专家。
● 物联网领域还没有出现固定的终端类型。在PC领域,大家熟知的硬件架构有Intel、AMD,操作系统有Windows、Linux; 在移动领域,大家熟知的有Android平台、iOS平台。但是在物联网领域,还没有形成被大家广泛接受的硬件平台和软件平台。
● 目前,物联网应用开发的架构还是属于“垂直一体化”的。如图1-3所示,构建一个完整的物联网应用,开发者需要考虑硬件平台、软件系统、传输技术、云平台以及用户端应用。但在每一个层次,都还没有统一的平台和技术。作为对比,我们来看一下计算机软件和网络协议的系统架构,如图1-4所示。它们的一个共同点是这个架构形成一个倒沙漏的形状,即中间部分形成统一的接口,而在底层和上层则有很多不同的技术和应用。这样的架构分离了上层应用逻辑和底层的技术细节,使得应用和协议的开发可以基于统一的接口而不必考虑底层细节。这可能是物联网应用开发架构应该努力的一个方向。
图1-3 物联网应用开发架构 图1-4 计算机软件和网络协议的系统架构
1.3 物联网典型应用
下面分析几个典型的物联网应用,包括阿里巴巴无锡鸿山物联网小镇、卡内基梅隆大学展开的智慧校园以及我们课题组近年来开展的城市空气质量监测项目。
1.3.1 智慧城市——鸿山物联网小镇
城市是世界一半以上人口的家园。伴随着快速的城市化,环境压力日益增大,居民对基础设施的需求日益增长,如何以可持续发展的方式提供更好的生活质量是全球发展面临的关键挑战。
在中国的智慧城市实践中,无锡鸿山物联网小镇在国内外物联网产业中享有盛誉。鸿山地处无锡国家传感网创新示范区,是全国首个以物联网为产业特色的小镇,又入选江苏省首批特色小镇。阿里巴巴、华为、中电海康、西门子、中国移动、中国电信等一批行业巨头纷纷抢滩入驻。
鸿山物联网小镇的建设规划主要包括6大系统模块:
① 智慧数据系统 小镇将建设全国第一个千兆网络覆盖小镇、第一个 NB-IoT/ 5G小镇。
② 智慧交通系统 引入车联网、无人驾驶技术,智能化地实施车牌识别、车辆间距感应控制、可变车道、停车场诱导交通流量疏导等新型智能交通控制系统。
③ 智慧旅游系统 在国家梁鸿湿地公园、中华赏石园、鸿山遗址博物馆等重点旅游区域建立智能旅游系统,让鸿山历史积淀更好地展现在大众眼中。
④ 智慧医疗系统 依托中国(无锡)健康产业先行发展试验区建设,以瑞金医院无锡分院为智慧医疗示范基地,实现对人的智能化医疗和对物的智能化管理。
⑤ 智慧农业系统 依托部署在农业生产现场的各种传感器节点和无线通信网络实现农产品生产全过程的智能感知、智能预警和智能分析,为农业生产提供精准化种植、可视化管理、智能化决策的服务。
⑥ 智慧社区系统 在社区广泛应用感知、安防、节能、远程控制、信息服务、公共管理、社区服务等物联网技术,全面提高社区整体服务能力和社区居民生活信息化、便利化水平。
1.3.1.1 物联网基础设施建设
为了支撑上述智能化系统,物联网基础设施的部署是十分必要的,其决定了智能化水平和最终效果。
在鸿山物联网小镇的实施阶段,铺设了大量目的明确、分工合作的传感器节点群。针对环保、城管、公安、交通、教育、健康等确定的前期示范项目,优先布设项目涉及的传感器,建设智能交通传感群、智能生态传感群、智能能源传感群、智能农业传感群、公共服务传感群。例如,智能交通传感群中的物联网设备包括智能停车闸口、停车场传感器、单车停放点电子围栏、RFID电子车牌、路口灯控、路口信号机、公交车位置传感器、公交车车载传感器等。
1.3.1.2 飞凤城市物联网平台
为了支持大量异构物联网设备的接入,也为了方便支持大量物联网创新应用,在无锡鸿山物联网小镇项目实施过程中,开发了飞凤物联网开发平台[1]。
飞凤平台,是集阿里云在物联网领域多年的研发和积累所建设的物联网基础平台。该平台按照开放标准,打通物联网云架构基础层、平台层、应用层,包容NB-IoT、LoRa等主流物联网通信协议和技术标准。飞凤平台作为物联网基础设施,主要解决物联网技术“统一规则”的问题,即如何将成千上万个传感器和上百种传输协议,有机形成一个可结构化复用,同时能打通互联网的云架构,并为物联网产业应用提供基础服务。
飞凤平台为物联网开发者提供一站式服务,基于飞凤平台能够实现硬件开发、数据开发、应用开发、服务开发。
● 在硬件开发方面,飞凤平台提供对传感、设备、模组的开发集成管理,涉及连接、数据标准等一系列开发配套服务。
● 在数据开发方面,飞凤平台提供数据接入、清洗、建模,涉及数据加工等一系列开发配套服务。
● 在应用开发方面,飞凤平台提供对网页控制台、移动应用的开发构建,涉及开发过程的一系列配套和能力组件服务。
● 在服务开发方面,飞凤平台提供对服务的开发构建,涉及服务开发过程的一系列开发配套和能力组件服务。
在鸿山物联网小镇示范建设中,飞凤平台逐步实现大规模应用数据的接入,打破物联网产业碎片化、小规模的瓶颈,推进产业规模化发展。此外,针对开发者,飞凤平台可以提高应用开发效率55%,降低应用开发成本60%。针对企业用户,飞凤平台可以共享阿里云生态能力,让物联网应用的复制变得十分简单。
1.3.1.3 智慧城市创新应用
1. 智能楼宇
通过在楼宇中布设多种传感器,使得人们可以方便地知道室内温度、光线强度、PM2.5和CO2浓度、声音、饮水情况、每个工位的使用时间等。楼宇中能源使用的监控,可以使人们实时知道各个地方能耗的情况,从而为节能减排提供必要的支撑数据。图1-5为飞凤平台楼宇系统界面,图1-6为飞凤平台能耗系统界面。
2. 智能垃圾桶
目前,在大部分的城市中,为了检查每个垃圾桶是否溢满了,环卫工人需要在每条路线上来回查看。智能垃圾桶可以自动监测垃圾桶内的情况,一旦垃圾量达到一定程度,就会直接预警,环卫工人看到预警消息再去清运垃圾,可以大大减轻他们的工作量。
3. 智能井盖
在城市中,窨井盖子被偷了,或被水冲跑了的事情时常发生,容易发生行人坠落其中的危险。在鸿山小镇,目前有200个智能窨井盖。这批智能窨井盖最大的特点就是,在窨井盖下方带有传感器,只要窨井盖倾斜程度超过30°,就会自动报警。如果有人为移动的情况,窨井盖都能及时监测到,避免安全隐患的发生。
4. 智能消防
通过遍布城市的传感器及边缘计算网关,可提早发现火情并预警,自动提醒城管和交警疏散群众。与此同时,水源感知系统可实时调节消防栓所需水压,节省救援准备时间,提升消防人员和受困人员安全系数。
此外,鸿山小镇中的安全广告牌具有摇晃预警功能,能保护行人安全;智能路灯具有自动调节亮度功能,可以降低40%综合能耗。在未来,将基于飞凤平台开发越来越多的物联网应用,不断提升城市智能化水平。
1.3.2 智慧校园——CMU Living Lab
卡内基梅隆大学的研究者在谷歌公司的资助下,开展了一个名为GIoTTO的项目[2]。该项目旨在创建一个传感器、设备、楼宇互相通信的基础平台,从而将一个大学校园变成一个应用创新实验室(Living Lab)。他们在加州大学圣迭戈分校和卡内基梅隆大学超过55幢建筑物里面进行传感器/执行器部署,系统运行时间长达3年。
GIoTTO具备4个重要的特点。
● 安全与隐私保护。GIoTTO采用OAuth 2.0、HTTPS/SSL、访问控制层等方法,保护用户隐私,有效提高系统安全性。
● 面向终端用户可编程。用户可以利用GIoTTO提供的应用程序编程接口轻松地进行应用程序的开发。
● 支持机器学习。机器学习在GIoTTO中占据很重要的位置,它降低了GIoTTO的使用难度。
● 支持广泛部署。GIoTTO使用MongoDB、InfluxDB、REDIS REST接口的方式,已在55幢建筑物(超过20万个传感器节点)上部署了多个应用。
整个GIoTTO的系统架构可以用图1-7简要表示。
可以将系统大致分成三部分:数据产生层、数据管理层和应用程序服务层。数据产生层位于系统底端,由大量的传感器和执行器组成;数据管理层是GIoTTO的中心部分,包括数据集成、云与边缘端分析计算、数据控制、机器学习等功能;最顶层为应用程序服务层,系统提供了一系列标准的应用程序编程接口,方便用户开发。
接下来具体介绍GIoTTO每一部分的组成。
1.3.2.1 数据产生层
GIoTTO支持集成多种传感器,如压力传感器、惯性传感器、声学传感器等。用户可以根据自己的需要,集成传感器到GIoTTO系统中,满足开发应用程序时的各种需求。底层传感器产生各种各样源源不断的数据送入GIoTTO中对应的数据服务器中,等待用户读取使用。
1.3.2.2 数据管理层
GIoTTO的数据管理层有4个主要元素:中心服务器、数据服务器、数据连接器和机器学习层。图1-8展现了数据管理层的结构。
① 中心服务器 这是数据管理层的核心,每个GIoTTO项目有且只有一个中心服务器。它在MongoDB上托管了传感器列表、用户列表、建筑物结构列表(如建筑物的楼层、房间号等)、访问控制列表等信息。同时,它还提供了传感器和数据服务器的映射。
② 数据服务器 数据服务器利用时序数据库InfluxDB存储并管理来自数据产生层的时序数据。一个GIoTTO可以有多个数据服务器,用户可以根据自己的需要确定数据服务器的管理粒度:建筑物群粒度、单建筑物粒度、楼层粒度甚至房间粒度都是可以的。每个数据服务器都有一张用户列表,单独控制可以访问底层传感器数据点的用户。
③ 数据连接器 连接器是GIoTTO的“驱动器”,实现各种物联网设备和GIoTTO之间的通信,现已支持BACnet、BLE、ZigBee等多种通信协议。
④ 机器学习层 机器学习层是GIoTTO的一大亮点,使用监督学习的方式,能帮助用户轻松地使用传感器数据。那么,机器学习层是如何工作的呢?
首先,用户选择某些特殊位置(如门上)、特殊时间段(如开门时)的多个传感器(如加速计、磁力计等)数据,给它们打上标签(如开门)。其次,机器学习层与中心服务器和对应的数据服务器通信,使用用户输入的标签和数据服务器中对应时间和来源的传感器数据训练分类器,训练完成的分类器就成了一个具有实际意义的虚拟传感器(如开关门检测传感器)。该虚拟传感器能对新输入的传感器数据进行实时分类,进行状态检测。图1-9表示了机器学习层的工作过程。
机器学习层使用分类算法隐藏了许多传感器细节,用户只需根据常识选择一些可能适用的传感器进行应用开发,不必纠结选择何种传感器、如何确定传感器数据阈值等细节,极大地降低了用户开发的难度。
1.3.2.3 应用程序服务层
在开发应用程序的时候,用户通常不关心通信协议、数据格式等细节,因此GIoTTO提供了标准的应用程序编程接口帮助用户轻松构建应用程序。用户选择时间间隔和数据粒度,通过系统提供的接口访问数据服务器中的时序数据。这种访问形式不仅简化了用户操作,还有利于保护数据安全。
1.3.2.4 安全与隐私
GIoTTO使用三层保障机制来保证信息安全,如图1-10所示。
① HTTPS 用户与GIoTTO中心服务器和数据服务器之间的通信都是建立在以HTTPS为基础的加密连接上。HTTPS在HTTP下加入安全套接层,是以安全为目标的HTTP通道。区别于HTTP以明文的方式发送内容,HTTPS需要验证服务器的身份,并为通信加密,极大地降低了物联网敏感信息泄露的风险。
② OAuth 2.0 GIoTTO使用了OAuth 2.0协议来进行用户认证与授权。用户利用账户名、密码登录中心服务器后,将获得唯一的ID和密钥。当用户开发的应用程序需要访问GIoTTO数据库时,首先必须用ID和密钥获取OAuth令牌,才能获得数据的访问权限。访问令牌的有效期为24h,之后必须重新生成。
③ 访问控制层 GIoTTO使用访问控制层进行访问控制,实现数据安全保护。GIoTTO中定义了两种用户类型:管理员和普通用户。管理员不但具有所有传感器数据的访问权限,还能定义普通用户的访问权限,制定访问控制列表。普通用户根据访问控制列表中定义的权限,访问传感器数据。
1.3.2.5 开发流程
下面简单介绍一个部署在GIoTTO上的、帮助学生查找安静且有空闲座位的教室的应用程序来说明GIoTTO的工作流程。本案例所需传感器为声音传感器和加速度计。
(1)实现虚拟分贝计。训练声音传感器收集的声音数据,区分环境的嘈杂/安静。
(2)实现座位占用虚拟传感器。训练安装在座椅上的加速度计收集的数据,区分座椅上是否有人。
(3)实现最终的安静环境下空闲座位的虚拟传感器。结合前两步得到的分贝计以及座位占用传感器,达到检测安静环境下空闲座位的目的。
(4)终端用户编程。开发人员根据得到的虚拟传感器数据开发应用程序,帮助学生寻找安静环境下的空闲座位。
以上工作流程体现了GIoTTO的核心工作部分。从上述工作流程可以看出,利用GIoTTO,就算是没有任何专家知识的普通用户也能根据自己的需要,轻松开发自己的应用程序。
1.3.3 空气质量监测——Mosaic
空气质量是人们关心的重要问题。空气中的细微污染物会突破我们的身体防线,深入我们的呼吸和循环系统,损害我们的肺部、心脏和大脑。
治理空气污染的有效方法之一就是有针对性地对重度污染区域集中整治,这首先需要精准的空气质量监测装置,对于区域范围较大的情况则更要求监测装置成本低廉,Mosaic由此诞生。
空气质量通常用空气质量指数(air quality index, AQI)来衡量。AQI是考虑了粒子、臭氧、二氧化碳、二氧化硫等浓度的一个综合指标。颗粒物(PM)是影响空气质量的一个重要因素。通常所说的PM2.5是指粒子直径小于2.5µm的粒子;PM10则是指粒子直径小于10µm的粒子。PM2.5粒子直径很小,大概只有人类头发丝直径的几十分之一,而人类一根头发的直径仅有50~70µm。
空气质量的监测有几种传统的方法。
第一种方法依靠卫星遥感。但卫星遥感只能做粗粒度的测量,并且它测量的主要是高层大气中的空气质量情况。而人们更关心的是地面的空气质量情况。
第二种方法依靠空气质量监测站。但一个空气监测站的造价不菲,且每年维护费用很高,因此其部署比较稀疏。
那么,能不能通过设计低成本的传感器节点实现城市空气质量细粒度的监测呢?我们课题组从2014年开始探索这一问题。基本思想是通过设计低成本的空气质量监测节点,并将其安装在移动的车辆上,对城市空气质量进行细粒度监测,该系统命名为Mosaic。相比传统方法,其优势在于:
● 单个节点成本低,可以部署许多个节点达到对空气质量的细粒度监测。
● 为了进一步降低节点的数目,可以通过移动感知的思路达到测量数据在时间和空间上的良好折中。
图1-11所示为Mosaic系统架构。最底层是我们自主设计并实现的PM2.5传感器节点。节点通过GPRS技术将数据传输到阿里云服务器。在用户端,我们开发了基于PC的Web网站和手机App来支持用户对空气质量数据的查询。下面详述在每一部分实现的功能和解决的关键问题。
1.3.3.1 传感器节点
如表1-1所示,我们开发了三种不同类型的传感器节点。Mosaic节点版本1和版本2用于室外空气质量监测。miniMosaic主要用于室内空气监测,通过蓝牙与手机进行通信。一个Mosaic节点一般由以下几个功能部分构成。
表1-1 Mosaic节点构成
续表
① 微处理器 Mosaic节点版本1和miniMosaic是基于Arduino平台的传感器节点。Arduino平台开源且易于定制。Arduino采用的CPU是AVR ATmega328P,该CPU的工作电压为1.8~5.5V。AVR采用的是哈佛体系结构。与传统的冯·诺依曼体系结构相比,哈佛体系结构采用独立的数据地址空间和程序地址空间,提供更好的隔离性和安全性。AVR ATmega328P内存空间十分有限。数据内存仅为2KB,程序内存为32KB。Mosaic节点版本2采用了集成度更高的LinkIt ONE平台。该平台集成了GSM/GPRS、WiFi、蓝牙等模块。LinkIt ONE的CPU采用了ARM7 EJ-STM。该处理器的数据内存为4MB,程序内存为16MB。
② 电源 因为Mosaic节点用于安装在移动车辆上,主要通过车载电源供电。
③ 传感器 Mosaic节点使用了温/湿度、GPS等常用的传感器,同时采用了粒子传感器用于粒子浓度的测量。在版本1中,采用了PPD42NS粒子传感器,而在版本2中,采用SDS011传感器。相比于专用的粒子传感器,上述两款粒子传感器在价格上具有很大的优势。例如,Dylos是目前市场上可以直接买到的手持粒子传感器,它的价格在700美元左右,而上述两款传感器的价格分别是7美元和28美元。详情如表1-2所示。
表1-2 粒子传感器性能、价格对比
粒子传感器为什么能测量PM2.5浓度?它的原理是什么?
图1-12给出了基于激光散射的粒子传感器的基本原理。传感器一般搭载一个风扇,向上提供稳定的空气流。激光发射器发出一束红外激光。激光照射到空气流上,被空气流中的粒子反射,并被光照传感器感知。空气中粒子的数据可以通过反射的强弱程度来测量。
传感器节点的设计和实现是Mosaic系统中重要的部分。但要使整个系统正常工作,还必须解决几个关键问题。
第一是传感器节点的部署。在我们的场景中,传感器节点一般部署在固定行驶轨迹的公交车上。那么,给定节点数目,如何部署使得覆盖的范围最大?或者说,要覆盖指定的区域,最少要部署多少个节点,怎么部署?这个问题有别于传统的传感器节点部署覆盖问题。因为传统的传感网覆盖一般考虑的是节点静态部署的场景,考虑的问题是要覆盖一个二维区域,要部署多少节点才能保证覆盖性以及连通性。
第二是传感器数据的校准。低成本的粒子传感器的测量精度比较有限。因此,需要借助高精度的空气质量监测站或者较高精度的Dylos手持设备进行数据校准。数据校准可以发生在两个层面:第一个是节点层面,即在节点上就将原始数据转换为校准后的数据。例如,在AirCloud系统中,每个PPD42NS节点在使用之前,都要进行一个校准工作:将16个PPD42NS传感器同时放置在可控的测量环境中,每个PPD42NS的数据都被校准到16个PPD42NS数据的平均值。第二个层面是在云端。在云端进行数据校准的一个好处是可以利用多个传感器的在线数据,甚至是采集到的来自空气质量监测站的高精度数据。
1.3.3.2 传输技术、云端以及用户端
用于室外的Mosaic节点版本1和版本2主要用GPRS传输。用于室内的miniMosaic节点通过蓝牙与手机进行数据传输。
我们使用阿里巴巴提供的阿里云服务。使用了两个云服务器,每个服务器配备单核的CPU、512MB的内存、20GB的硬盘,100Mb/s的以太网连接。使用的操作系统是Ubuntu 14.04.3 LTS。
在云端,我们不仅采集来自传感器节点的原始传感数据,而且也采集了来自高精度空气监测站以及较高精度Dylos手持设备的感知数据。这些数据都被存储在MySQL数据库中。
我们提供的一个核心服务是云端的数据校准。使用了一个在线的多跳校准方法:当一个移动节点与另一个高精度参考节点相遇时,就形成了一个匹配点;相遇多次后,就形成了多个匹配点;移动节点可以借助多个匹配点形成一个校准模型对其数据进行校准。在多跳校准方案中,一个移动节点不仅可以由一个高精度的参考节点校准,还可以由另一个校准后的移动节点校准,只要它们能相遇多次。
基于多个匹配点,可以构建一个线性模型Y=ax b,从而将原始数据转换为校准数据。但粒子传感器的数据不仅仅与其测量值本身相关,也与速度、温湿度等相关。一个更好的方案是考虑多维测量数据,得到一个多元线性模型:Y=b0 b1x1 b2x2 … bnxn。其中,x1代表粒子原始测量数据,而x2,x3,…,xn代表温湿度等其他测量数据。
多元线性模型虽然考虑了多维测量数据,但假设它们与最终数据之间是线性关系。这在很多情况下是不成立的。作为改进,我们提出了一种结合多元线性模型与随机森林模型的二阶段数据校准方法[3],其主要流程如图1-13所示。
首先是特征的提取。最直接相关的特征就是粒子传感器测量的原始数据;其次,还有温湿度、速度,甚至是人流密度、车流密度等。但如果都放进多元线性模型中,就可能产生过拟合的问题,所以必须要有选择地把最相关的特征选择出来放进多元线性模型,这一步采用Akaike信息准则特征选择方法。当特征选择完成以后,采用多元最小二乘法决定多元线性模型的参数。
在第二阶段,使用随机森林模型再去拟合多元线性模型的残差,随机森林可以很好地近似非线性的关系,在避免过拟合这一问题上比决策树模型做得更为出色。
通过校准之后的数据可以提供给上层应用使用。在用户端,我们开发了基于Web的应用和手机App来支持用户对空气质量数据的查询和可视化。
1.4 物联网相关学术研究及前沿问题
1.4.1 相关学术研究领域
无线射频识别(radio frequency identification,RFID)技术、普适计算(pervasive computing)、无线传感器网络(wireless sensor network)这三个学术研究领域跟物联网紧密相关。
一个典型的无线射频标签系统由一个有源的阅读器和若干无源的标签构成。当它们接近的时候,可以进行短距离通信:阅读器可以主动向标签发送数据,而标签只能通过反射阅读器的发射能量向阅读器发送数据。由于RFID标签成本极低,通常又无需电池供电,因此RFID系统已被广泛应用于各种应用场景中,如身份识别、供应链管理、仓储管理等。IEEE RFID是专门针对RFID的国际学术会议,在每年的IEEE INFOCOM会议上也有不少RFID相关的论文。
普适计算则是一种新的计算理念:区别于桌面计算,普适计算强调在任何时间、地点都可以进行计算。这些计算设备包括桌面计算机、平板、手机以及其他嵌入式设备。普适计算特别关注用户行为及所处环境(也被称为上下文,即context)的感知。例如,通过采集并分析手机传感器的数据,可以推测手机是否在口袋中,是否在桌面上,是否正在被人关注,一旦这些上下文信息能够被精确推测,手机上的应用软件就能更好地与人们交互。ACM UbiComp和IEEE PerCom是普适计算领域的两大旗舰会议。
无线传感器网络在学术界的兴起源于20世纪90年代末。得益于微机电系统(MEMS)的发展,研究人员可以设计并实现微型化的传感器节点。通过大量部署这些集成了感知、计算和通信能力的传感器节点,组成多跳传输的无线传感网,可以更直接地感知并数字化物理世界。无线传感器网络经过近20年的发展,形成了较为完善的软硬件系统。在硬件平台方面,MicaZ和TelosB是两款早期被广泛使用的节点平台。前者具有4KB的内存和128KB的程序闪存,后者具有10KB的内存和48KB的程序闪存。TinyOS[4]和Contiki OS[5]是两种典型的节点操作系统,可以运行在这些资源严重受限的节点平台上。节点操作系统一般也提供多跳网络协议的支持,如CTP支持传感数据收集,FTSP支持全网时间同步,Deluge协议支持网络重编程,Drip协议支持系统参数的配置和分发。ACM SenSys和ACM/IEEE IPSN是传感器网络领域两大旗舰会议。
上述三个学术研究领域与物联网的理念紧密相关。物联网的基本理念是万物互联,即将嵌入了电子设备的物件互相连接并接入因特网中,从而架起物理世界与数字世界的桥梁。
这种理念的实现途径可能大不相同。物件可以贴上RFID标签,通过RFID技术,将信息传输到数字世界中。RFID标签通常无需电源,因此感知计算能力十分弱小;此外RFID系统只能进行数米范围内近距离传输,并不能满足物联网领域的各种需求。物件也可以携带微型的传感器节点实现对周围环境的感知。传感器节点由于有电池供电,感知计算能力要强于RFID标签,但要广泛使用,仍面临着价格、大小、功耗、可定制性等一系列挑战。传感器节点如何组网也是一个挑战,尽管基于IEEE 802.15.4标准的低功耗多跳组网机制在学术界研究了10余年,但在实际使用中仍面临可靠性、可管理性等一系列问题。
不可否认的是,近年来多种新技术的出现使得上述领域界限也日益模糊。例如CRFID就是具备了计算能力的RFID标签,它可以在接近阅读器的时候进行充电。此外,Intel公司实现的WISP标签节点采用了与传感器节点TelosB相同的处理器MSP430,它们都可以支持某种程度上的计算。近年来,无线感知技术的兴起,使得普适计算可以在RFID上进行:通过部署RFID系统,采集并分析其无线信号特征,可以实现对周围环境的感知计算。低功耗通信技术方面,传感器节点实现互联并不一定通过无线传感器网络多跳组网的方式,也可以通过蓝牙低功耗(BLE)、LoRa、NB-IoT等技术实现联网。
1.4.2 物联网的关注点及其前沿挑战问题
正是由于物联网跟多个学术领域相关,科技人员在交流时可能会出现一些误解,即一个人理解的物联网与另一个人理解的物联网可能不是同一件事。在本节中,我们试图从与无线传感器网络的对比中,一窥目前学术界对物联网的关注点以及前沿挑战问题。
1.4.2.1 供电技术方面
在无线传感器网络中,传感器节点一般通过两节AA电池进行供电。电池的容量可以用毫安时(mA·h)来度量,如两节AA电池的容量一般为2800mA·h。它的直观意思是,如果系统平均电流消耗为20mA,则系统可以持续工作2800mA·h/20mA=140h。如果用C表示电池电量,I表示系统平均电流消耗,T表示节点生命周期,那么一个简单和理想化的能量模型就是T=C/I。
但节点真实的生命周期的计算可能要复杂许多。一是由于电压变化、环境变化等多种因素,电池的容量并不能被完全用完;二是电池放电可能取决于多种因素,如电池的自放电特性;三是系统的电流消耗可能是动态变化的,在发送大量数据包时,电流消耗会很大,而在系统空闲时,电流消耗会很小。
无线传感器网络中大量的研究集中在如何使用软件技术来降低节点的平均电流消耗。在传感器节点上,相比于计算模块而言,通信模块的耗能要大得多。例如在TelosB平台上,仅计算模块工作时的功耗约为0.5mA,而无线电模块收/发状态的能耗要达到20mA。一个直观的节能方法是使无线电模块处于低占空比的工作模式下,即该模块仅工作少量时间,在其他大部分时间中,模块处于睡眠状态。例如在1%工作占空比的情况下,如果忽略睡眠状态的能耗,无线电模块的平均电流消耗仅为20mA×1% 0mA×99%=0.2mA。
在物联网时代,如何进行节能十分重要。在这一点上,研究者进行了多方面的尝试。
一个研究方向是,在物联网节点上使用可再生能源,如太阳能、风能等。例如,在太阳光直射的情形下,每6.45cm2的太阳能板能提供10mW的电能。白天收集的电能可供节点晚上工作。如何储存能量是使用可再生能源的关键技术,一般有两种技术,一种是使用充电电池。充电电池的主要优点是自放电较少,电能利用率比较高,主要的缺点是充电的效率较低,且充电次数有限。另一种比较新的技术是使用超电容。超电容的主要优点是充电效率高,充电次数可达100万次,且不易受温度、振动等因素的影响。例如明尼苏达大学研发的TwinStar平台,利用太阳能板收集太阳能,利用超电容存储电能。使用超电容存储的最大挑战是电容自放电很大,尤其在接近满电容的时候。因此,需要设计能量自适应的机制以确保节点在两次充电之间能够正常工作。
近年来另一个前沿的研究方向是无线后向散射(backscatter)技术。如果采用后向散射技术,一个物联网设备在发送数据时可以不消耗能量,这听起来相当不可思议。但如果光说后向散射而不加限定,那么这个技术其实并不新,因为在传统RFID系统中,标签向阅读器的通信就是采用这种后向散射技术。传统后向散射技术的限制在于,一个无源设备(标签)必须跟一个有源设备(阅读器)进行通信。而最近的一项新技术——环境后向散射(ambient backscatter)[6]摆脱了有源阅读器的限制,允许两个无源的物联网设备进行通信。例如在美国华盛顿大学提出的环境后向散射系统中,两个无源设备可以通过反射环境中广泛存在的信号(如TV信号),实现互相通信。
图1-14给出了环境后向散射系统的示意图。在图中,无源设备Alice可以向另一个无源设备Bob发送数据。Alice通过反射TV的信号,向Bob发送数据,该数据可以被Bob成功解码。该系统并不影响已有的TV接收系统,因为对已有的TV接收方而言,Alice反射的信号可以被看成一种多径效应带来的干扰,并不影响在已有TV接收方的解码。
初步的实验结果表明,在室外环境中,76.2cm的距离下,环境后向散射系统可以达到1kb/s的数据传输率;在室内环境中,45.7cm的距离下,也可以达到1Kb/s的数据传输率。环境后向散射技术实现了无源设备间直接的互联互通,这允许我们实现之前很多不能实现的新的物联网应用。例如,可以摆脱电池的限制,在蜻蜓身上安装极小的无源物联网设备,实时监测蜻蜓的飞行行为。
根据反射信号源的不同,环境后向散射系统被拓展到很多不同的场景中。例如,WiFi后向散射通过反射广泛部署的WiFi接入点信号,实现无源设备的互相通信。
1.4.2.2 节点平台方面
微机电系统和嵌入式技术的发展极大地促进了物联网设备的小型化及低功耗。例如,2000年之后,无线传感器网络的发展就得益于小型化和低功耗的传感器节点,包括MicaZ、TelosB等。这些节点集成了通用的传感器、802.15.4通信芯片、低功耗微控制器等,具有感知、通信和计算能力,是无线传感器网络研究的基础。然而,这些平台难以直接应用在实际的物联网场景中。例如,传统的TelosB节点并不提供空气质量监测应用中需要的关键组件,如PM2.5传感器、存储模块和GPRS通信模块,并且由于其集成化程度较高,传感器节点难以改造和扩展。
另外,在物联网时代,智能硬件得到了长足的发展。代表性平台包括Arduino、树莓派等。这些平台与传统传感平台存在着两个显著不同的特点:
● 扩展性和易用性。Arduino主板及扩展板包含很多接口,可以支持多种不同类型的功能模块。
● 节点平台的异构性进一步加剧。有功能弱小的平台(如Arduino),也有功能强大的、可直接运行Linux操作系统的平台(如树莓派)。这些功能强大的平台也被称为智能物件(smart things)。智能物件与传统嵌入式平台的界限日益模糊。数据处理从云侧迁移到边缘侧是目前新的发展趋势。
如何基于智能硬件最新进展构建一个相对通用的物联网设备平台是一个极具挑战的问题。例如,美国加州大学伯克利分校教授Prabal Dutta等早在2008年发表的论文[7]中就指出:构建一个通用的传感器节点平台需要数十年的经验来满足感知、功耗、软硬件兼容性的要求。
为了解决这个问题,微软公司推出了.NET Gadgeteer系统平台。该平台基于.NET Micro Framework和Visual Studio,使得开发者在并不熟练掌握硬件知识的情况下,通过在集成开发环境中拖拉各种外界模块,就可以组合成一个满足需求的智能硬件。这种强大的组合特性,使构建一个功能齐全设备的用时仅为几小时,而不是原来的几天甚至几周。但是为了兼容.NET Gadgeteer系统,该平台能使用的硬件组件需要进行定制,而定制的硬件价格往往不菲,如主板模块需120美元,USB模块需25美元。
为了解决物联网设备快速开发的上述问题,我们课题组开发了TinyLink系统(http://tinylink.emnets.org)。该系统改变了传统嵌入式开发自底向上的模式,将其变为自顶向下的模式,即开发者首先基于抽象的编程语言进行应用的开发,TinyLink系统对代码进行自动分析,获得应用所需要的组件(如PM2.5传感器、GPS等),系统将在综合考虑各种硬件限制条件的基础上,自动给出硬件选型的建议。当硬件定型后,上层应用代码将自动交叉编译成硬件匹配的目标代码。这样由软件定义硬件、自顶向下的开发模型将大大加速物联网应用的开发。与.NET Gadgeteer系统不同,TinyLink支持市场已有的主流的硬件平台和功能模块,而不是定制的功能模块。目前,TinyLink支持Arduino、LinkIt One、BeagleBone、树莓派、Mbed Tiny BLE、AliOS MK3060共6个主要的硬件平台,并支持100多个不同的外设模块。TinyLink采用了云编译的技术,即将应用程序代码上传到云端进行编译,因此仅需要一个轻量级的本地开发环境,免去了不同开发环境兼容性、依赖性的问题。在本书的后续章节中,将详细介绍如何基于TinyLink进行物联网应用快速开发。
物联网设备构建自动化的思想与近年来体系结构领域出现的“硬件设计大众化”的趋势不谋而合:物联网大规模应用的关键是“排除专用物联网设备设计的障碍,使得硬件设计变得像软件设计那样敏捷、便宜和开放。软件开发团队可以利用丰富的、现成的可重用部件的生态系统(通常是免费和开源的),使用高级语言加速提高单个开发者的能力,并依靠强大和自动化的程序分析、集成、测试和调试来保证品质。”
1.4.2.3 通信与组网方面
低功耗通信是物联网实现万物互联的基础。在无线传感器网络中,节点通常是基于低功耗短距离通信技术的,如IEEE 802.15.4。对无线传感器节点而言,低功耗通信十分重要。因为在一个无线传感器节点的能量消耗中,通常通信芯片消耗能量最多。例如,在TelosB节点上,CPU在正常状态的电流只有500µA,而通信芯片在发送和接收数据时电流近20mA。也正因为低功耗,节点之间的传输距离也比较短——通常小于100m。
低功耗短距离通信不能很好地满足物联网实际应用的需求。为了实现长距离数据传输,节点必须多跳自组织形成一个网络,依靠多跳路由协议将数据传输到汇聚节点。例如CTP是TinyOS中默认的多跳路由协议,后来IEEE又设立了专门的工作组(ROLL)制定了RPL协议[8],专门针对低功耗有损网络(low power and lossy network,LLN)。尽管在传感器网络领域的研究,有大量的学术论文探讨了如何设计可靠、高效的多跳路由协议,但是它们在实际部署中往往不能取得满意的效果。
物联网万物互联的问题到底能不能得到有效解决?近年来,广受关注的低功耗广域网(LPWAN)技术有望能在很大程度上解决这一问题。
LPWAN代表性技术包括NB-IoT、LoRa、SigFox等。其看起来很有前景,是否可以取代已有的技术呢?我们认为未必。在有基础设施的场景中,如办公大楼,WiFi技术已经广泛普及。目前相关专家也在积极推进WiFi的低功耗版本WiFi HaLow/802.11ah协议的制定和标准化。在家居场景中,蓝牙低功耗是一个吸引人的技术,因为智能手机普遍配备蓝牙低功耗芯片。ZigBee技术在工业等通信环境复杂的场景中依然适用。
针对室外大范围部署,LPWAN的确是一个很好的解决方案。NB-IoT是基于LTE的改进版本,具有技术成熟、可以复用已有基站的好处。LoRa则需要部署LoRa基站,但也适用于智慧园区等场景中,而且LoRa技术开放程度更高,更容易二次开发。
1.4.2.4 智能感知方面
无线传感器网络早期的很多研究集中在系统和网络方面。近年来,智能感知技术得到了很大的关注和发展。我们认为有三个典型的特征:
● 新的感知手段和感知场景不断涌现。2011年,华盛顿大学、微软研究院和因特尔实验室的研究人员开发了一套工具[9],可以在通用的Intel 5300网卡上得到WiFi信道细粒度的信道状态信息(channel state information,CSI),从而引起了学术界对“无线感知”这一新技术的极大关注:无线信号之前都是用来做信息传输的,有了CSI信息则可以做入侵检测、呼吸监测,甚至是口语识别。其他新的感知手段,如基于声音的感知、基于可见光的感知、基于60GHz毫米波的感知也不断涌现。
● 特别关注与人的交互。在早期的研究中,传感器节点一般部署在野外,较少强调与人的交互。近年来,随着新的感知手段与感知场景的出现,人们越来越关注节点与人的交互。传统的无线传感网络学术会议SenSys、IPSN等与普适计算会议UbiComp等的交汇越来越明显。例如,DartMouth大学的研究者提出了如何用可见光来感知人的运动姿势[10],相比传统基于视觉的方法,这种技术具有成本更低、更易于使用等特点。南京大学的研究者提出了在手机上使用声音信号对手指运动进行非接触式感知的技术[11]。这些技术有可能带来新的人机交互方式的变革。
● 催生新的通信与计算模式。新的感知技术(如WiFi感知)需要对信号进行连续的感知与计算,对计算提出了新的挑战。由于物联网设备资源受限,复杂的计算一般需要在云端进行。近年来,半导体领域的进展大大促进了协处理器的发展。例如图形处理器(graphics processing unit,GPU)可以执行计算复杂的深度学习算法,视觉处理器(vision processing unit, VPU)可以有效执行视觉处理算法。这使得上述复杂的计算可以迁移到网络的边缘上,从而降低应用的延迟,并有效保护用户数据的隐私(图1-15)。由此出现了边缘计算的概念。“边缘计算”是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的开放平台,就近提供边缘智能服务。
从狭义上讲,边缘计算是指在边缘网关上进行计算。但是传统的边缘网关往往没有配置强大的计算能力且功能较为单一,不一定能满足计算复杂度高、日趋多元化的应用需求。从广义上讲,边缘计算也包括在物联网设备上计算。网关可以在其管辖的设备之间进行计算资源分配,从而降低单设备的计算负载。同时不同类型的物联网设备能够支撑不同的应用,满足多元化的需求。边缘计算和云计算并非是非此即彼,两者的有机结合将为万物互联时代的信息处理提供较为完美的软硬件支撑平台。
实际上,亚马逊物联网云平台、微软的Azure物联网云平台均已扩展并支持边缘计算(AWS Greengrass、Azure IoT Edge)。图1-16显示了微软Azure平台云计算与边缘计算的区别:原先在云端执行的计算,如流数据分析、Azure函数,都可根据应用需求迁移到边缘网关上执行。
以WiFi路由器为例,要进行边缘计算就需要改变以往的网络设备,将其变为智能网关。目前,Intel公司、中国移动均推出了智能网关设备。一般来说,智能网关主要由以下功能模块构成(图1-17)。
① 连接模块 该模块通过WiFi、BLE、ZigBee等接收物联网设备数据,并将其转发到物联网云平台。
② 计算和存储模块 该模块是区别于传统网络的最大不同。物联网数据可以存储在边缘网关上,边缘网关同时支持复杂数据分析处理。
③ 安全模块 该模块提供安全功能,如物联网设备认证、用户数据隐私保护等。
④ 管理模块 该模块用于配置智能网关设备以及其管辖的物联网设备。
1.5 总结与展望
近年来,在学术界和工业界的共同推动下,物联网的关键技术与应用得到了很大的发展。
从物联网的应用架构看,一个典型物联网应用包括物联网设备、网关、物联网云平台、用户端共四个部分。目前,物联网应用的开发涉及多个环节、多种技术。
物联网发展离不开物联网的真实应用。例如,城市细粒度空气质量监测、智慧校园、智慧城市等。这些应用的发展推动了物联网关键技术的发展,而物联网关键技术的突破必将推进越来越多物联网应用的落地。物联网领域存在巨大的应用创新空间,蕴含巨大的市场潜力。
物联网相关的学术研究领域包括RFID、普适计算、无线传感网。近年来多种新技术的出现使得上述领域界限也日益模糊。物联网在电池节能技术、节点平台、通信与组网、智能感知等方面突破了传统传感网的技术。后向散射通信、软硬一体化开发、低功耗广域网、边缘计算等前沿技术有望能解决物联网时代低耗自组、异构互联、泛在协同等关键科学问题。
习题
1. 物联网的定义是什么?你能列举出一种生活中的物联网应用吗?
2. 无线传感网技术与RFID技术有何异同?
3. 一个无线传感器节点有两节AA电池供电,电池总的电量为2800mA·h。假设节点工作时电流消耗为20mA,休眠时电流消耗为0.5mA。
(1)节点工作占空比为10%时,求节点的工作时长。
(2)节点工作占空比为1%时,求节点的工作时长。
(3)节点工作占空比为1%,且考虑电池自放电率为0.5%/天时,求节点的工作时长。
4. 最新的后向散射技术与传统的RFID技术有什么不同?
5. 考虑无线环境中,链路收包率为0.8。如果链路层协议最多重传3次,则有效链路收包率为多少?
6. NB-IoT、LoRa都是低功耗广域网技术。从使用场景上看,它们有什么不同?
7. 边缘计算的定义是什么?边缘计算网关有哪些必要的组件?
8. 一个典型物联网应用架构包括哪些部分?物联网开发与传统PC端程序开发有什么不同?
9. 在CMU Living Lab项目中,如何保证安全性?机器学习层起到了什么作用?
10. 在Mosaic项目中,PM2.5测量的原理是什么?使用一元线性模型做数据校准有什么缺陷?
参 考 文 献
[1] 飞凤平台.http://feifengiot.com/.
[2] CMU Living Lab.http://www.iotexpedition.org.
[3] Lin Y, Dong W, Chen Y. Calibrating low-cost sensors by a two-phase learning approach for urban air quality measurement[C]// Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies. Singapore: ACM, 2018:18.
[4] TinyOS. http://webs.cs.berkeley.edu/tos/.
[5] Contiki OS. http://www.contiki-os.org/.
[6] Liu V, Parks A, Talla V, et al. Ambient backscatter: Wireless communication out of thin air[C]//ACM SIGCOMM 2013 Conference on SIGCOMM. Hong Kong: ACM, 2013:39-50.
[7] Dutta P, Taneja J, Jeong J, et al. A building block approach to sensornet systems[C]//Proceedings of the 6th ACM conference on Embedded network sensor systems. Raleigh: ACM, 2008:267-280.
[8] Gaddour O, Koubâa A. RPL in a nutshell: A survey[J]. Computer Networks, 2012, 56(14): 3163-3178.
[9] Halperin D, Hu W, Sheth A, et al. Tool release: Gathering 802.11n traces with channel state information[J]. ACM SIGCOMM Computer Communication Review, 2011, 41(1): 53-53.
[10] Li T, An C, Tian Z, et al. Human sensing using visible light communication[C]//Proceedings of the 21st Annual International Conference on Mobile Computing and Networking. ACM, 2015: 331-344.
[11] Wang W, Liu A X, Sun K. Device-free gesture tracking using acoustic signals[C]//Proceedings of the 22nd Annual International Conference on Mobile Computing and Networking. New York: ACM, 2016:82-94.
第2章 物联网硬件平台
【学习目标】
● 了解常见的物联网硬件平台;
● 掌握典型物联网硬件平台的能耗计算方法;
● 了解开发板和外设的常用物理接口类型、数据通信协议,掌握UART缓存区的计算方法,掌握基于总线频率计算SPI数据传输率的基本方法,掌握I2C的数据传输过程;
● 了解传感器节点平台、Arduino平台和树莓派平台的特点,掌握根据应用需求进行硬件选型的基本方法;
● 掌握基于Arduino IDE和Grove Pi的应用软件开发方法。
2.1 概述
2.1.1 简介
物联网的一个重要作用就是将物理世界数字化。这离不开大量的物联网硬件设备。据预测,到2025年,全世界的物联网设备将达到270亿个[1]。它们可以感知物理世界的方方面面,并将信息传输到数据中心,供后续分析处理。
在日常生活中,我们可以看到多种多样的物联网硬件,如图2-1所示。例如,燃气报警器可以自动检测厨房的燃气浓度,并在发生危险时,自动报警;共享单车上的智能车锁可以接收用户的开/关锁指令,并在骑行过程中自动跟踪骑行的路线;智能电表可以自动读取电表的读数,并上报到电力部门。
我们接触的物件之所以变得智能离不开近年来物联网硬件的飞速发展。从1946年诞生第一台计算机开始,计算机系统经历了几次重大变革。如图2-2所示,从巨型机、工作站,到台式计算机,再到笔记本电脑、智能手机,最后到智能物联网硬件。我们看到单个节点的体积越来越小,价格也越来越低。
本章将重点介绍现有的主要物联网开发平台,它们是形成物联网硬件设备的基础。如果仔细观察,可以发现,现有的物联网硬件平台具有很强的异构性。有功能弱小的平台(如TelosB传感器节点),也有功能强大的、可直接运行Linux操作系统的平台(如树莓派)。
根据物联网硬件平台的特点,可以将其分为三类,如表2-1所示。第一类称为类PC的嵌入式设备,它们功能强大,其实就是“缩小版”的PC。第二类称为智能物件,它们功能相对强大,可以执行相对复杂的智能运算。第三类可称为物件,它们功能比较弱小。例如,2000年之后兴起的小型化和低功耗的传感器节点,包括MicaZ、TelosB等。这些节点只有8位或16位的微控制器(MCU),程序内存仅有48~128KB。本章以智能物件和物件为重点讲述物联网硬件平台。
表2-1 物联网硬件平台分类
2.1.2 平台组成
什么是物联网硬件平台呢?我们认为可以分为狭义和广义两种定义,如图2-3所示。狭义的硬件平台是指一块开发板,其中至少包含一个微控制器;广义的物联网硬件平台
评论
还没有评论。