物联网应用系统的开发需要“全栈”开发人员。从底层的智能传感器硬件设计开发、通信程序开发、服务程序设计、Web网站到移动应用开发都需要使用多种技术和编程语言,对人才的要求比较高。
本书就底层设备的嵌入式开发、设备无线组网设计、网络通信传输设计、监控服务器设计、云端服务器设计、移动应用开发都做了全方位的介绍,用一个个实例把整个物联网应用系统串连起来,使用了多种开发语言、开发工具、设计技巧和方法,完整描述了一个复杂的“物联网设备监控平台”的设计和诞生。
本书适合物联网工程专业的本科生、研究生阅读,对有志于复杂物联网应用系统开发的设计师,特别是全栈设计师,本书也有较高的参考价值。
1.配套教学视频,专注于物联网工程专业本科生、研究生教学。
2.对有志于复杂物联网应用系统开发的设计师,特别是全栈设计师,也有较高的参考价值。
3.本书提供的源代码,对其做适当的分类整理、文字描述和目标制定,也可作为教学、培训的资料。
吴志辉:硕士研究社。湖南工业大学计算机学院高级工程师。从事物联网专业教学多年,对物联网应用系统的开发设计具有丰富的实践经验。
第 1章 物联网设备智能监控系统原理 1
1.1 物联网设备监控系统的结构 2
1.1.1 全栈项目的硬件结构 4
1.1.2 全栈项目的系统软件结构 5
1.2 核心技术 6
1.2.1 通用设备描述协议 7
1.2.2 数据格式协议 19
1.2.3 设备监控协议 23
1.2.4 核心协议的实现 28
第 2章 无线传感器网络应用设计 33
2.1 ZigBee协调器节点设计 35
2.1.1 单片机通信协议的设计 35
2.1.2 应用程序设计 38
2.2 ZigBee传感器节点设计 53
2.2.1 节点硬件结构 53
2.2.2 传感器节点程序设计 54
2.2.3 传感器节点运行 63
2.3 4路ZigBee智能开关的改造 65
2.3.1 CC2530开关面板硬件结构 65
2.3.2 设计开发前的准备 66
2.3.3 程序改造和设计 67
2.3.4 4路继电器节点运行 71
2.4 ZigBee网络设备监控系统的互联互通演示 73
2.4.1 场景任务建立 73
2.4.2 一键操控演示 75
2.4.3 温度监控联动演示 76
第3章 物联网设备监控中心设计 78
3.1 选择硬件平台的纠结 79
3.2 监控中心架构设计 79
3.2.1 硬件配置要求 79
3.2.2 软件配置要求 80
3.3 设备接入和管理模块的设计 80
3.3.1 监控驱动程序的搜索设计 81
3.3.2 监控进程的登记管理 82
3.3.3 监控进程的启动和结束 90
3.4 场景任务模块的设计 92
3.4.1 任务指令TaskItem类 93
3.4.2 场景任务SceneTask类 93
3.4.3 场景列表描述ScenePlans类 95
3.4.4 场景描述ScenePlansItem类 95
3.4.5 定时任务相关类的设计 96
3.4.6 场景任务管理业务的实现 96
3.4.7 场景任务的执行 97
3.5 智能监控模块的设计 102
3.5.1 智能监控的原理和内容 102
3.5.2 监控条件的设计AlarmItem 104
3.5.3 智能监控类MonitorAlarm 105
3.5.4 智能监控管理者类MonitorAlarms 106
3.5.5 智能监控的实施 106
3.6 用户管理模块的设计 110
3.6.1 用户文档结构 110
3.6.2 客户端通信类MyTcpClient 111
3.6.3 服务端连接类ConnectClient 113
3.7 云端通信模块的设计 116
3.7.1 云通信服务器方式 117
3.7.2 云Web网站方式 119
3.8 数据存储模块的设计 120
3.9 设备监控系统的安全设计和总结 121
第4章 设备监控进程的设计 122
4.1 设备监控程序的功能设计 122
4.1.1 建立通信对象 123
4.1.2 加载设备监控驱动程序 123
4.1.3 设备监控 123
4.2 设备监控程序的详细设计与实现 123
4.2.1 建立与DMC的通信InitShareMemory 127
4.2.2 建立与监控驱动模块DMD之间的通信 127
4.2.3 动态加载设备监控驱动程序LoadAssembly 128
4.2.4 显示特定设备的系统信息 129
4.2.5 显示特定设备的监控信息 131
4.2.6 初始化监控设备系统的通信 132
4.2.7 启动监控系统的通信 133
4.2.8 启动监控系统的主从通信 133
4.2.9 DMP通信参数设置 134
4.2.10 子设备参数修改 135
第5章 云通信服务器的设计 136
5.1 云端通信流程介绍 137
5.1.1 远程客户端(或移动App)监控设备通信流程 137
5.1.2 本地客户端(或移动App)监控远程设备通信流程 137
5.2 云端通信对象的设计与实现 138
5.2.1 远程客户端通信设计 139
5.2.2 与监控中心的通信设计 143
5.2.3 与远程监控进程DMP的通信设计 144
5.2.4 与远程设备的通信设计 148
第6章 客户端设备监控系统设计 154
6.1 PC客户端设备监控系统的设计 154
6.1.1 登录模块设计 155
6.1.2 客户端监控设计 160
6.1.3 客户端场景任务的编辑 173
6.1.4 客户端智能监控的编辑 177
6.2 监控设置的升级设想 179
第7章 安卓客户端设备监控App的设计 180
7.1 App结构的设计 181
7.2 通信模块的设计 182
7.3 登录模块的设计 189
7.4 主控界面的设计 191
7.5 设备监控界面的设计 195
7.6 场景任务的编辑 198
7.7 智能监控的编辑 200
7.8 其他功能的设计 202
第8章 设备监控驱动中间件的设计 203
8.1 使用共享内存通信的中间件的设计 204
8.1.1 监控系统类MonitorSystem 205
8.1.2 子设备系统类SubDeviceSystem 212
8.1.3 时间监控驱动程序的使用 215
8.2 使用串口通信的中间件的设计 216
8.2.1 设备商编写的监控驱动项目ZigBeeDriver 216
8.2.2 基于设备商提供的SDK编写的监控驱动项目DAM0404Driver 226
8.3 使用TCP/IP通信的非标准中间件的设计 234
8.3.1 只有一个设备的监控驱动的设计 234
8.3.2 可以接入多个同系列设备的监控驱动的设计 241
8.4 使用监控协议的标准中间件的设计 253
8.4.1 iotMusicPlayerDriver项目 253
8.4.2 CloudDeviceDriver项目 260
附录 配套资源说明 266