本书是一本由浅入深对物联网系统进行开发的书籍,全书采用任务式开发的学习方法,共积累了近50生动有趣、贴近生活的案例,每个案例均有完整的开发过程,分别是明确的学习目标、清晰的环境开发要求、深入浅出的原理学习、详细的开发内容和完整的开发步骤,最后得出任务结论,引导读者一步一步轻松完成理论学习,并将理论学习用于开发实践进行验证,避免的枯燥的理论学习,强调理论与实践的有机结合,全书配套了相应的源代码,在书本源代码的基础可以进行快速二次开发。本书由浅入深地讲述物联网系统的开发,采用任务式开发的方法,通过大量生动有趣、贴近生活的案例来讲述物联网系统的开发。每个案例均有完整的开发过程,包括学习目标、开发环境、原理学习、开发内容和开发步骤,最后得出任务结论,引导读者轻松完成理论学习并用于实践进行验证,避免枯燥的理论学习,强调理论与实践的结合。该书按照知识点分类,分为入门篇、基础开发篇和云平台开发篇,将嵌入式系统的开发技术、处理器基本接口驱动、传感器驱动、无线射频技术、Android移动互联网开发和云平台用一种通信协议结合在一起,实现了强大的物联网数据采集、传输和处理,能适用在多个行业的应用。
第1篇 入门篇
第1章 物联网开发硬件与软件 3
1.1 任务1:认识物联网 3
1.1.1 物联网 3
1.1.2 国外物联网 4
1.1.3 国内物联网 5
1.1.4 物联网重点领域 6
1.1.5 国外物联网发展重点方向和机遇 7
1.2 任务2:认识物联网开发硬件 8
1.2.1 物联网开发硬件――TI CC2530处理器 8
1.2.2 CC2530无线节点 9
1.2.3 跳线设置及硬件连接 9
1.2.4 CC2530无线节点硬件资源 11
第2章 物联网开发环境搭建 15
2.1 任务3:物联网开发环境搭建 15
2.1.1 学习目标 15
2.1.2 开发环境 15
2.1.3 原理学习 15
2.1.4 开发步骤 15
2.2 任务4:创建第一个IAR应用程序 18
2.2.1 创建工程 18
2.2.2 工程设置 22
2.2.3 IAR程序的下载与调试 25
2.2.4 下载hex文件 29
第2篇 基础开发篇
第3章 CC2530外围接口项目开发 35
3.1 任务5:LED控制 35
3.1.1 学习目标 35
3.1.2 开发环境 35
3.1.3 原理学习 35
3.1.4 开发内容 37
3.1.5 开发步骤 38
3.2 任务6:外部中断 38
3.2.1 学习目标 38
3.2.2 开发环境 39
3.2.3 原理学习 39
3.2.4 开发内容 40
3.2.5 开发步骤 41
3.3 任务7:定时器 42
3.3.1 学习目标 42
3.3.2 开发环境 42
3.3.3 原理学习 42
3.3.4 开发内容 44
3.3.5 开发步骤 45
3.4 任务8:串口 45
3.4.1 学习目标 45
3.4.2 开发环境 46
3.4.3 原理学习 46
3.4.4 开发内容 48
3.4.5 开发步骤 50
3.5 任务9:ADC采集 51
3.5.1 学习目标 51
3.5.2 开发环境 51
3.5.3 原理学习 51
3.5.4 开发内容 52
3.5.5 开发步骤 53
3.6 任务10:休眠与唤醒 54
3.6.1 学习目标 54
3.6.2 开发环境 55
3.6.3 原理学习 55
3.6.4 开发内容 55
3.6.5 开发步骤 58
3.7 任务11:看门狗 58
3.7.1 学习目标 58
3.7.2 开发环境 58
3.7.3 原理学习 59
3.7.4 开发内容 59
3.7.5 开发步骤 60
3.8 任务12:DMA 61
3.8.1 学习目标 61
3.8.2 开发环境 61
3.8.3 原理学习 61
3.8.4 开发内容 61
3.8.5 开发步骤 64
第4章 传感器开发项目 65
4.1 任务13:光敏传感器 65
4.1.1 学习目标 65
4.1.2 开发环境 65
4.1.3 原理学习 65
4.1.4 开发内容 65
4.1.5 开发步骤 67
4.1.6 任务结论 67
4.2 任务14:温/湿度传感器 67
4.2.1 学习目标 67
4.2.2 开发环境 67
4.2.3 原理学习 67
4.2.4 开发内容 69
4.2.5 开发步骤 71
4.2.6 任务结论 71
4.3 任务15:雨滴/凝露传感器 71
4.3.1 学习目标 71
4.3.2 开发环境 72
4.3.3 原理学习 72
4.3.4 开发内容 72
4.3.5 开发步骤 73
4.3.6 任务结论 74
4.4 任务16:火焰传感器 74
4.4.1 学习目标 74
4.4.2 开发环境 74
4.4.3 原理学习 74
4.4.4 开发内容 75
4.4.5 开发步骤 76
4.4.6 任务结论 76
4.5 任务17:继电器传感器 76
4.5.1 学习目标 76
4.5.2 开发环境 77
4.5.3 原理学习 77
4.5.4 开发内容 78
4.5.5 开发步骤 79
4.5.6 任务结论 79
4.6 任务18:霍尔传感器 79
4.6.1 学习目标 79
4.6.2 开发环境 79
4.6.3 原理学习 80
4.6.4 开发内容 81
4.6.5 开发步骤 81
4.6.6 任务结论 82
4.7 任务19:超声波测距传感器 82
4.7.1 学习目标 82
4.7.2 开发环境 82
4.7.3 原理学习 82
4.7.4 开发内容 83
4.7.5 开发步骤 85
4.7.6 任务结论 85
4.8 任务20:人体红外传感器 85
4.8.1 学习目标 85
4.8.2 开发环境 85
4.8.3 原理学习 85
4.8.4 开发内容 86
4.8.5 开发步骤 87
4.8.6 任务结论 88
4.9 任务21:可燃气体/烟雾传感器 88
4.9.1 学习目标 88
4.9.2 开发环境 88
4.9.3 原理学习 88
4.9.4 开发内容 89
4.9.5 开发步骤 90
4.9.6 任务结论 91
4.10 任务22:空气质量传感器 91
4.10.1 学习目标 91
4.10.2 开发环境 91
4.10.3 原理学习 91
4.10.4 开发内容 92
4.10.5 开发步骤 92
4.10.6 任务结论 92
4.11 任务23:三轴传感器 93
4.11.1 学习目标 93
4.11.2 开发环境 93
4.11.3 原理学习 93
4.11.4 开发内容 95
4.11.5 开发步骤 99
4.11.6 任务结论 99
4.12 任务24:压力传感器 99
4.12.1 学习目标 99
4.12.2 开发环境 99
4.12.3 原理学习 100
4.12.4 开发内容 102
4.12.5 开发步骤 105
4.12.6 任务结论 105
4.13 任务25:RFID读写 105
4.13.1 学习目标 105
4.13.2 开发环境 105
4.13.3 原理学习 105
4.13.4 开发内容 109
4.13.5 开发步骤 117
4.13.6 任务结论 117
第5章 无线射频开发项目 119
5.1 任务26:点对点通信 119
5.1.1 学习目标 119
5.1.2 开发环境 119
5.1.3 原理学习 119
5.1.4 开发内容 119
5.1.5 开发步骤 122
5.1.6 任务结论 123
5.2 任务27:广播通信 123
5.2.1 学习目标 123
5.2.2 开发环境 123
5.2.3 原理学习 123
5.2.4 开发内容 123
5.2.5 开发步骤 126
5.2.6 任务结论 127
5.3 任务28:信道监听 127
5.3.1 学习目标 127
5.3.2 开发环境 127
5.3.3 原理学习 127
5.3.4 开发内容 128
5.3.5 开发步骤 130
5.3.6 任务结论 131
5.4 任务29:无线控制 131
5.4.1 学习目标 131
5.4.2 开发环境 131
5.4.3 原理学习 132
5.4.4 开发内容 132
5.4.5 开发步骤 134
5.4.6 任务结论 135
第6章 ZStack协议栈开发 137
6.1 任务30:认识ZStack协议栈 137
6.1.1 ZStack的安装 137
6.1.2 ZStack的结构 138
6.1.3 设备的选择 140
6.1.4 定位编译选项 141
6.1.5 ZStack中的寻址 142
6.1.6 ZStack中的路由 144
6.1.7 OSAL调度管理 144
6.1.8 ZStack的串口通信 145
6.1.9 配置信道 146
6.2 任务31:ZStack协议栈工程解析 147
6.2.1 学习目标 147
6.2.2 开发环境 147
6.2.3 原理学习 147
6.3 任务32:多点自组织组网 161
6.3.1 学习目标 161
6.3.2 预备知识 161
6.3.3 开发环境 161
6.3.4 原理学习 161
6.3.5 开发内容 163
6.3.6 开发步骤 166
6.3.7 任务结论 168
6.4 任务33:信息广播/组播 168
6.4.1 学习目标 168
6.4.2 预备知识 168
6.4.3 开发环境 168
6.4.4 原理学习 168
6.4.5 开发内容 169
6.4.6 开发步骤 172
6.4.7 任务结论 173
6.5 任务34:网络拓扑―星状网 174
6.5.1 学习目标 174
6.5.2 预备知识 174
6.5.3 开发环境 174
6.5.4 原理学习 174
6.5.5 开发内容 174
6.5.6 开发步骤 178
6.5.7 任务结论 178
6.6 任务35:网络拓扑―树状网 179
6.6.1 学习目标 179
6.6.2 预备知识 179
6.6.3 开发环境 179
6.6.4 原理学习 179
6.6.5 开发内容 179
6.6.6 开发步骤 182
6.6.7 任务结论 183
6.7 任务36:ZigBee串口应用 183
6.7.1 学习目标 183
6.7.2 预备知识 184
6.7.3 开发环境 184
6.7.4 原理学习 184
6.7.5 开发内容 184
6.7.6 开发步骤 186
6.7.7 任务结论 187
6.8 任务37:ZigBee协议分析 187
6.8.1 学习目标 187
6.8.2 预备知识 187
6.8.3 开发环境 187
6.8.4 原理学习 188
6.8.5 开发内容 189
6.8.6 开发步骤 191
6.8.7 任务结论 192
6.9 任务38:ZigBee绑定 193
6.9.1 学习目标 193
6.9.2 预备知识 193
6.9.3 开发环境 193
6.9.4 原理学习 193
6.9.5 开发内容 194
6.9.6 开发步骤 196
6.9.7 任务结论 197
第7章 物联网开发综合项目 199
7.1 任务39:物联网平台控制操作 200
7.1.1 准备开发环境 200
7.1.2 启动程序 200
7.1.3 搜索网络 201
7.1.4 传感器节点操作 202
7.2 任务40:智能网关程序 204
7.2.1 智能网关程序框架 204
7.2.2 智能网关服务程序解析 205
7.3 任务41:节点间通信协议 212
7.3.1 应用层通信协议解析 212
7.3.2 串口通信协议解析 214
7.3.3 协议栈通信协议解析 217
7.4 任务42:Android控制程序 218
7.4.1 Android用户控制程序框架 218
7.4.2 导入Android用户控制程序 226
7.5 任务43:ZigBee节点控制程序 228
7.5.1 节点工程介绍 229
7.5.2 传感器介绍 230
7.5.3 传感器底层代码解析 231
7.6 任务44:添加自定义传感器节点 239
7.6.1 定义节点间通信协议 239
7.6.2 编写传感器节点程序 239
7.6.3 编写Android界面控制程序 244
第3篇 云平台开发篇
第8章 云平台项目开发 253
8.1 任务45:智云物联开发基础 254
8.1.1 智云物联平台介绍 254
8.1.2 智云物联基本框架和常用硬件 254
8.1.3 智云物联案例 255
8.1.4 开发前准备工作 256
8.2 任务46:智云平台基本使用 256
8.2.1 学习目标 256
8.2.2 开发环境 256
8.2.3 原理学习 256
8.2.4 开发内容 257
8.2.5 开发步骤 262
8.2.6 任务结论 267
8.3 任务47:通信协议 267
8.3.1 学习目标 267
8.3.2 开发环境 267
8.3.3 原理学习 267
8.3.4 开发内容 272
8.3.5 开发步骤 273
8.3.6 任务结论 275
8.4 任务48:智云硬件驱动开发 275
8.4.1 学习目标 275
8.4.2 开发环境 276
8.4.3 原理学习 276
8.4.4 开发内容 277
8.4.5 开发步骤 288
8.4.6 任务结论 290
8.5 任务49:智云Android应用接口 290
8.5.1 学习目标 290
8.5.2 开发环境 290
8.5.3 原理学习 290
8.5.4 开发内容 296
8.5.5 开发步骤 313
8.5.6 任务结论 314
8.6 任务50:智云开发调试工具 314
8.6.1 学习目标 314
8.6.2 开发环境 314
8.6.3 原理学习 314
8.6.4 开发内容 315
8.6.5 开发步骤 318
8.6.6 任务结论 320
8.7 任务51:云平台应用 320
8.7.1 学习目标 320
8.7.2 开发环境 320
8.7.3 原理学习 320
8.7.4 开发内容 321
8.7.5 开发步骤 327
8.7.6 任务结论 328
附录A 无线节点读取IEEE地址 329
附录B 认识常用的传感器 331
参考文献 333