本书结合CC2530和ZigBee、CC1110和SimpliciTI、CC2540和低功耗蓝牙、CC3200和Wi-Fi,由浅入深地介绍物联网和云平台开发技术。全书采用任务式开发的学习方法,共积累了50多个趣味盎然、贴近社会和生活的案例,每个案例均有完整的开发过程,分别是明确的学习目标、清晰的环境开发要求、深入浅出的原理学习、详细的开发内容和完整的开发步骤,最后进行总结和拓展,将理论学习和开发实践结合起来,每个案例均附上完整的开发代码,在源代码的基础可以进行快速二次开发。本书将无线传感网络技术、物联网平台开发技术、Android移动互联网开发结合在一起,实现了强大的物联网数据采集、传输和处理,可以开发功能强大的物联网系统,并适用在多个行业的应用。
近年来,物联网和云计算的迅猛发展,逐渐地改变了社会的生产方式,大大提高了生产效率和社会生产力。我国在智能工业、智能农业、智能物流、智能交通、智能环保、智能安防、智能医疗、智能家居、智能环保9大重点领域推广物联网,并得到了广泛的应用且逐步改变着这些产业的结构。
物联网系统涉及的技术很多,从感知层到应用层都有不同的开发技术,需要掌握处理器基本原理及其外围接口的驱动开发技术,相应传感器的驱动开发,能开发应用程序和移动互联网程序。本书将详细分析CC2530和ZigBee、CC1110和SimpliciTI、CC2540和低功耗蓝牙、CC3200和SimpleLinkWi-Fi四种处理器和无线传感网络结合技术,各种传感器驱动、Android移动互联网开发技术和物联网高级应用技术,理论知识点清晰,实践案例丰富,带领读者掌握物联网的各种开发技术。
全书采用任务式开发的学习方法,利用近50多个趣味盎然、贴近社会和生活的任务和案例,由浅入深地介绍物联网感知层驱动和应用层功能的开发,每个任务均有完整的开发过程,分别是明确的学习目标、清晰的环境开发要求、深入浅出的原理学习、详细的开发内容和完整的开发步骤,最后进行总结与拓展,每个案例均附上完整的开发代码,在源代码的基础可以进行快速二次开发,能方便将其转化为各种比赛和创新创业的案例,也可以为工程技术开发人员和科研工作人员进行科研项目开发提供较好的参考资料。
第1章介绍了物联网和无线传感网络开发基础,先分析了物联网基本构成和重点发展领域,介绍了物联网中的ZigBee、SimpliciTI、低功耗蓝牙和SimpleLinkWiFi无线传感网络技术,分析了物联网开发平台的硬件构成和物联网开发环境搭建。
第2章以CC2530为例,介绍了TICC系列处理器口开发,CC2530外围接口电路驱动开发,有GPIO、外部中断、定时器/计数器、串口、ADC采集、DMA、看门狗和休眠与唤醒的驱动开发,引导读者掌握TICC系列处理器外围接口电路驱动开发。
第3章是传感器开发项目,在TICC系列处理器上完成各种传感器的原理学习与驱动开发,有光敏传感器、温湿度传感器、雨滴/凝露传感器、火焰传感器、继电器、霍尔传感器、超声波测距离传感器、人体红外传感器、可燃气体/烟雾传感器、空气质量传感器、三轴传感器、压力传感器和RFID读写等,对每个传感器进行原理学习和驱动开发。
第4章主要是ZStack协议栈的学习,介绍了ZStack协议栈的构成和基本配置,分析了ZStack协议栈工程架构和源代码,通过案例开发对ZStack协议栈多点自组织组网、信息广播/组播、星状网、树状网、串口应用、ZigBee协议分析、ZStack绑定等等,从而对ZigBee有个全面认识。
第5章结合CC1110和SimpliciTI协议栈,先通过安装、配置等了解SimpliciTI协议栈,然后学习SimpliciTI协议栈的组网技术、广播技术、RSSI采集技术以及路由功能,最后通过SimpliciTI协议栈实现对硬件的控制。
第6章结合CC2540和BLE(低功耗蓝牙)协议栈,先通过安装、配置认识了BLE协议栈,然后通过任务开发学习BLE协议栈的主从收发、硬件控制,并通过广播者(Broadcaster)和观察者(Observer)的任务深入了解BLE协议栈。
第7章结合CC3200和TI推出的SimpleLinkWiFi协议栈,先简单认识CC3200芯片,通过安装、配置CC3200SDK完成对WiFi的配置,并通过任务开发实现对AP模式和STATION模式的学习,然后分别学习了TCP和UDP的网络通信方式,并通过HTTPsever的学习,实现了基本网络知识的学习,最后对硬件进行控制。
第8章是云平台开发基础,先介绍了物联网平台有关技术、基本使用方法和通信协议,详细介绍了基于CC2530和ZigBee、CC1110和SimpliciTI、CC2540和低功耗蓝牙、CC3200和Wi-Fi等4种处理器和协议栈的硬件驱动开发方法,并介绍了Android应用接口Web应用接口以及开发调试工具。
第9章是物联网的高级案例开发,共有4个案例项目,分别是基于CC1110和SimpliciTI的智能灯光控制系统开发、基于CC2540和BLE智慧窗帘控制系统开发、基于CC3200和Wi-Fi的自动浇花系统开发以及基于CC2530和ZigBee的智能安防系统开发。高级应用涉及感知层更多的环境信息采集和控制,也实现了更为复杂的应用层功能,构建更为完整的物联网知识框架。
本书特色:
(1)任务式开发。抛去传统的理论学习方法,选取合适的案例将理论与实践结合起来,通过理论学习和开发实践,快速入门,由浅入深掌握物联网开发技术。
(2)各种知识点的融合。将嵌入式系统的开发技术、4种TICC系列的处理器基本接口驱动技术、传感器驱动技术、4种无线传感网络无线技术、Android移动互联网开发技术和Web开发技术等结合在一起,实现了强大的物联网数据采集、传输和处理功能和应用。
参与本书编写的人员有曹成涛、林晓辉、李彩红、黄良、李少伟、杨志伟和廖艺咪。本书既可作为高等院校相关专业师生的教学参考书,自学参考书,也可供相关领域的工程技术人员查阅之用,对于物联网开发爱好者,本书也为他们提供了一本的深入浅出的读物。
本书在编写过程中,借鉴和参考了国内外专家、学者、技术人员的相关研究成果,我们尽可能按学术规范予以说明,但难免有疏漏之处,在此谨向有关作者表示深深的敬意和谢意,如有请疏漏,请及时通过出版社与作者联系。
感谢中智讯(武汉)科技有限公司在本书编写的过程中提供的帮助,特别感谢电子工业出版社,出版社的编辑在本书出版过程中给予大力支持,该书也得到了“广东省高等职业教育品牌专业建设项目(2016gzpp044)”的资助。
由于本书涉及的知识面广,时间仓促,限于笔者的水平和经验,疏漏之处在所难免,恳请专家和读者批评指正。
作者
2017年5月
第1章 无线传感物联网开发基础 1
1.1 任务1 认识物联网与无线传感网络 1
1.1.1 物联网 1
1.1.2 物联网重点发展领域 2
1.1.3 物联网和“互联网+” 4
1.1.4 物联网中的无线传感网络技术 5
1.2 任务2 认识物联网开发平台 11
1.2.1 ZXBeeEdu无线节点介绍 11
1.2.2 ZXBee 系列无线模组介绍 12
1.2.3 跳线设置及硬件连接 13
1.2.4 无线节点硬件资源 16
1.3 任务3 搭建物联网开发环境 17
1.3.1 学习目标 17
1.3.2 开发环境 18
1.3.3 原理学习 18
1.3.4 开发步骤 18
1.4 任务4 创建第一个IAR应用程序 20
1.4.1 创建工程 20
1.4.2 工程设置 23
1.4.3 IAR程序的下载、调试 25
1.4.4 下载hex文件 28
第2章 TI CC系列处理器接口开发 30
2.1 任务5 GPIO驱动 31
2.1.1 学习目标 31
2.1.2 开发环境 31
2.1.3 原理学习 31
2.1.4 开发内容 33
2.1.5 开发步骤 34
2.1.6 总结与拓展 35
2.2 任务6 外部中断 35
2.2.1 学习目标 35
2.2.2 开发环境 35
2.2.3 原理学习 35
2.2.4 开发内容 37
2.2.5 开发步骤 38
2.2.6 总结与拓展 39
2.3 任务7 定时器 39
2.3.1 学习目标 39
2.3.2 开发环境 39
2.3.3 原理学习 39
2.3.4 开发内容 41
2.3.5 开发步骤 42
2.3.6 总结与拓展 43
第3章 TI CC系列处理器传感器接口开发 44
3.1 任务8 光敏传感器 44
3.1.1 学习目标 44
3.1.2 开发环境 44
3.1.3 原理学习 45
3.1.4 开发内容 45
3.1.5 开发步骤 47
3.1.6 总结与拓展 47
3.2 任务9 温湿度传感器 47
3.2.1 学习目标 47
3.2.2 开发环境 47
3.2.3 原理学习 47
3.2.4 开发内容 49
3.2.5 开发步骤 51
3.2.6 总结与拓展 52
3.3 任务10 雨滴/凝露传感器 52
3.3.1 学习目标 52
3.3.2 开发环境 52
3.3.3 原理学习 52
3.3.4 开发内容 53
3.3.5 开发步骤 54
3.3.6 总结与拓展 54
第4章 CC2530和ZigBee协议开发 55
4.1 任务11 认识ZStack协议栈 56
4.1.1 ZStack的安装 56
4.1.2 ZStack的结构 57
4.1.3 设备的选择 59
4.1.4 定位编译选项 59
4.1.5 ZStack中的寻址 61
4.1.6 ZStack中的路由 62
4.1.7 OSAL调度管理 63
4.1.8 配置信道 64
4.2 任务12 解析ZStack协议栈工程 65
4.2.1 学习目标 65
4.2.2 开发环境 65
4.2.3 原理学习 65
4.3 任务13 多点自组织组网 81
4.3.1 学习目标 81
4.3.2 开发环境 81
4.3.3 原理学习 81
4.3.4 开发内容 83
4.3.5 开发步骤 86
4.3.6 总结与拓展 88
4.4 任务14 信息广播/组播 88
4.4.1 学习目标 88
4.4.2 开发环境 88
4.4.3 原理学习 88
4.4.4 开发内容 89
4.4.5 开发步骤 92
4.4.6 总结与拓展 93
4.5 任务15 网络拓扑―星状网 94
4.5.1 学习目标 94
4.5.2 开发环境 94
4.5.3 原理学习 94
4.5.4 开发内容 94
4.5.5 开发步骤 98
4.5.6 总结与拓展 98
4.6 任务16 网络拓扑―树状网 99
4.6.1 学习目标 99
4.6.2 开发环境 99
4.6.3 原理学习 99
4.6.4 开发内容 100
4.6.5 开发步骤 103
4.6.6 总结与拓展 104
4.7 任务17 ZigBee串口应用 104
4.7.1 学习目标 104
4.7.2 开发环境 104
4.7.3 原理学习 105
4.7.4 开发内容 105
4.7.5 开发步骤 108
4.7.6 总结与拓展 108
4.8 任务18 ZigBee协议分析 108
4.8.1 学习目标 108
4.8.2 开发环境 109
4.8.3 原理学习 109
4.8.4 开发内容 110
4.8.5 开发步骤 112
4.8.6 总结与拓展 112
4.9 任务19 ZigBee绑定 113
4.9.1 学习目标 113
4.9.2 开发环境 114
4.9.3 原理学习 114
4.9.4 开发内容 115
4.9.5 开发步骤 117
4.9.6 总结与拓展 118
第5章 CC1110和SimpliciTI协议开发 119
5.1 任务20 认识SimpliciTI协议栈 119
5.1.1 SimpliciTI的安装 120
5.1.2 SimpliciTI协议栈的结构 120
5.1.3 SimpliciTI的配置 121
5.1.4 运行SimpliciTI协议栈 122
5.1.5 SimpliciTI的串口通信 127
5.2 任务21 SimpliciTI协议栈自组网 127
5.2.1 学习目标 127
5.2.2 开发环境 128
5.2.3 原理学习 128
5.2.4 开发内容 128
5.2.5 开发步骤 130
5.2.6 总结与拓展 130
5.3 任务22 SimpliciTI广播 131
5.3.1 学习目标 131
5.3.2 开发环境 131
5.3.3 原理学习 131
5.3.4 开发内容 131
5.3.5 开发步骤 135
5.3.6 总结与拓展 136
5.4 任务23 SimpliciTI的RSSI采集 136
5.4.1 学习目标 136
5.4.2 开发环境 137
5.4.3 原理学习 137
5.4.4 开发内容 138
5.4.5 开发步骤 140
5.4.6 总结与拓展 141
5.5 任务24 SimpliciTI路由 141
5.5.1 学习目标 142
5.5.2 开发环境 142
5.5.3 原理学习 142
5.5.4 开发内容 142
5.5.5 开发步骤 143
5.5.6 总结与拓展 144
5.6 任务25 SimpliciTI硬件驱动开发 144
5.6.1 学习目标 144
5.6.2 开发环境 144
5.6.3 原理学习 144
5.6.4 开发内容 145
5.6.5 开发步骤 148
5.6.6 总结与拓展 149
第6章 CC2540和BLE协议开发 151
6.1 任务26 认识BLE协议栈 152
6.2 任务27 BLE协议栈主从收发 159
6.2.1 学习目标 159
6.2.2 开发环境 159
6.2.3 原理学习 159
6.2.4 开发内容 160
6.2.5 开发步骤 161
6.2.6 总结与拓展 161
6.3 任务28 BLE协议栈主从收发(Android) 166
6.3.1 学习目标 166
6.3.2 开发环境 166
6.3.3 原理学习 167
6.3.4 开发内容 167
6.3.5 开发步骤 167
6.3.6 总结与拓展 168
6.4 任务29 BLE协议栈硬件驱动开发 169
6.4.1 学习目标 169
6.4.2 开发环境 169
6.4.3 原理学习 169
6.4.4 开发内容 170
6.4.5 开发步骤 171
6.4.6 总结与拓展 171
6.5 任务30 BLE协议栈串口开发 172
6.5.1 学习目标 172
6.5.2 开发环境 172
6.5.3 原理学习 172
6.5.4 开发内容 172
6.5.5 开发步骤 175
6.5.6 总结与拓展 175
6.6 任务31 BLE协议栈的Broadcaster与Observer 176
6.6.1 学习目标 176
6.6.2 开发环境 176
6.6.3 原理学习 177
6.6.4 开发内容 177
6.6.5 开发步骤 180
6.6.6 总结与拓展 181
第7章 CC3200和SimpleLink Wi-Fi协议开发 185
7.1 任务32 认识CC3200处理器及SDK 185
7.1.1 认识CC3200 185
7.1.2 CC3200程序的烧写 186
7.1.3 CC3200 SDK 188
7.2 任务33 CC3200 AP模式 193
7.2.1 学习目标 193
7.2.2 开发环境 193
7.2.3 原理学习 193
7.2.4 开发内容 193
7.2.5 开发步骤 196
7.2.6 总结与拓展 196
7.3 任务34 CC3200 STATION模式 198
7.3.1 学习目标 198
7.3.2 开发环境 198
7.3.3 原理学习 198
7.3.4 开发内容 199
7.3.5 开发步骤 202
7.3.6 总结与拓展 202
7.4 任务35 TCP与UDP开发 203
7.4.1 学习目标 203
7.4.2 开发环境 203
7.4.3 原理学习 203
7.4.4 开发内容 205
7.4.5 开发步骤 212
7.4.6 总结与拓展 212
7.5 任务36 HTTP sever开发 216
7.5.1 学习目标 216
7.5.2 开发环境 216
7.5.3 原理学习 216
7.5.4 开发内容 217
7.5.5 开发步骤 220
7.5.6 总结与拓展 220
7.6 任务37 CC3200硬件驱动开发 222
7.6.1 学习目标 222
7.6.2 开发环境 222
7.6.3 原理学习 222
7.6.4 开发内容 222
7.6.5 开发步骤 226
7.6.6 总结与拓展 227
第8章 云平台开发基础 228
8.1 任务38 智云物联开发基础 229
8.1.1 智云物联平台介绍 229
8.1.2 智云物联基本框架 230
8.1.3 智云物联常用硬件 231
8.1.4 开发前准备工作 232
8.2 任务39 智云平台基本使用 232
8.2.1 学习目标 232
8.2.2 开发环境 233
8.2.3 原理学习 233
8.2.4 开发内容 233
8.2.5 开发步骤 240
8.2.6 总结与拓展 245
8.3 任务40 通信协议 245
8.3.1 学习目标 245
8.3.2 开发环境 245
8.3.3 原理学习 245
8.3.4 开发内容 250
8.3.5 开发步骤 252
8.3.6 总结与拓展 253
8.4 任务41 硬件驱动开发一(CC2530 ZigBee) 253
8.4.1 学习目标 253
8.4.2 开发环境 253
8.4.3 原理学习 253
8.4.4 开发内容 255
8.4.5 开发步骤 266
8.4.6 总结与拓展 267
8.5 任务42 硬件驱动开发二(CC1110 SimpliciTI) 267
8.5.1 学习目标 267
8.5.2 开发环境 267
8.5.3 原理学习 268
8.5.4 开发内容 269
8.5.5 开发步骤 281
8.5.6 总结与拓展 283
8.6 任务43 硬件驱动开发三(CC2540 BLE) 283
8.6.1 学习目标 283
8.6.2 开发环境 283
8.6.3 原理学习 283
8.6.4 开发内容 285
8.6.5 开发步骤 297
8.6.6 总结与拓展 299
8.7 任务44 硬件驱动开发四(CC3200 Wi-Fi) 300
8.7.1 学习目标 300
8.7.2 开发环境 300
8.7.3 原理学习 300
8.7.4 开发内容 301
8.7.5 开发步骤 313
8.7.6 总结与拓展 315
8.8 任务45 智云Android应用接口 316
8.8.1 学习目标 316
8.8.2 开发环境 316
8.8.3 原理学习 316
8.8.4 开发内容 322
8.8.5 开发步骤 327
8.8.6 总结与拓展 328
8.9 任务46 智云Web应用接口 328
8.9.1 学习目标 328
8.9.2 开发环境 328
8.9.3 原理学习 328
8.9.4 开发内容 334
8.9.5 开发步骤 350
8.9.6 总结与拓展 357
8.10 任务47 智云开发调试工具 357
8.10.1 学习目标 357
8.10.2 开发环境 357
8.10.3 原理学习 357
8.10.4 开发内容 358
8.10.5 开发步骤 361
8.10.6 总结与拓展 363
第9章 云平台综合应用项目开发 364
9.1 任务48 智能灯光控制系统开发(CC1110 SimpliciTI) 364
9.1.1 学习目标 364
9.1.2 开发环境 364
9.1.3 原理学习 364
9.1.4 开发内容 366
9.1.5 开发步骤 377
9.1.6 总结与拓展 378
9.2 任务49 智慧窗帘控制系统开发(CC2540 BLE) 378
9.2.1 学习目标 378
9.2.2 开发环境 379
9.2.3 原理学习 379
9.2.4 开发内容 380
9.2.5 开发步骤 398
9.2.6 总结与拓展 400
9.3 任务50 自动浇花系统开发(CC3200 Wi-Fi) 401
9.3.1 学习目标 401
9.3.2 开发环境 401
9.3.3 原理学习 401
9.3.4 开发内容 403
9.3.5 开发步骤 421
9.3.6 总结与拓展 423
9.4 任务51 智能安防系统开发(CC2530 ZigBee) 423
9.4.1 学习目标 423
9.4.2 开发环境 424
9.4.3 原理学习 424
9.4.4 开发内容 427
9.4.5 开发步骤 447
9.4.6 总结与拓展 449
参考文献 450