
本书选用了11个基于ZigBee协议栈应用开发的实例,按照“突出应用,理论够用”的原则,采取项目化教学的方式,以作品制作为载体,采用在作品制作过程中穿插讲解基础知识和基本技能的方法,由浅入深地讲解了ZigBee无线网络的开发方法,包括开发环境的搭建、协议栈中串口、定时器、NV存储器的使用方法,单播、广播、组播通信的实现方法,无线网络的管理方法,无线传感网络的组建方法以及C程序设计的技巧。 本书立足于应用实践,摒弃了对复杂而深奥的通信协议理论知识的讲解,适用于高等职业院校物联网、电子信息、移动通信、网络及计算机等专业作为无线组网技术课程的教材,也可作为应用型本科和物联网培训班的教材以及从事无线网络组建的工程技术人员学习和参考。
前 言 自物联网被列入国家新兴战略产业以来,物联网在我国受到了极大的关注,应时代发展的要求,许多高校相继开设了物联网专业。然而物联网是一个新兴专业,涉及计算机、通信、电子等多个学科领域,其固有的综合性、复杂性、多样性,对教学(师资力量、实践条件、教学环境等)带来了直接而现实的挑战,广大应用型本科和高职院校急需一套既涵盖物联网的基本知识又突出实践应用的教材。鉴于这种现状以及培养高素质技术型专门人才的现实需要,我们在浙江省优势专业的建设过程中,与上海、杭州、无锡等地企业开展了广泛而深入的合作,认真分析了物联网专业的岗位能力要求,与杭州哲嘉科技有限公司联合编写了本书。本书具有以下特点: 1. 按项目构建课程内容,用实例组织单元教学 本书分为11个项目,包括搭建开发环境、在协议栈中控制LED闪烁、用事件驱动处理串口接收数据、用回调函数处理串口接收数据、用计算机控制终端节点上的LED、分组传输数据、用NV存储器保存数据、显示节点的地址、制作防盗监测器、制作光照信息采集器、制作温湿度采集器,用11个项目讲解了ZigBee无线网络的开发过程、设计方法和基本技能。全书按项目编排,组建ZigBee无线网络所需要的基本知识和基本技能穿插在各个任务的完成过程中进行讲解,每一个任务只讲解完成本任务所需要的基本知识、基本方法和基本技能,从而将知识化整为零,降低了学习的难度。 2. 融“教、学、做”于一体,突出了教材的实践性 书中的每一个项目都是按照以下方式组织编排的:①任务要求,②相关知识,③实现方法与步骤,④程序分析,⑤实践拓展,⑥实践总结。其中,“任务要求”主要介绍做什么和做到什么程度,是读者实践时的目标要求,后续部分都是围绕着任务的实现而展开的。“相关知识”部分主要介绍ZigBee无线网络中的一些基本概念、ZStack中所提供的有关函数及其用法、传感器的应用特性及其用法,这一部分供读者在完成任务前阅读之用,也是本任务完成后所要掌握的基本知识。“实现方法与步骤”主要介绍怎么做,这一部分详细地讲解了本项目的实施过程,包括电路的搭建、程序的编写、程序的编译下载等几部分,读者按照书中所介绍的方法和步骤逐步实施,就可以实现任务要求,这一部分是读者实践时必须亲手做的事情。“程序分析”部分主要介绍了为什么要这样做,这一部分详细地讲解了程序设计的思路、原则和方法。“实践拓展”和“实践总结”主要是进行知识和技能的梳理与总结,并适当进行拓展。 3. 校企联合打造,内容反映了企业的需求,突出了教材的实用性和实效性 一方面,杭州哲嘉科技有限公司的方勇军博士直接参与了本书的规划和内容的制订。另一方面,本书的作者是ZigBee网络组建技术课程的任课教师,曾为企业开发过智能家居系统、智能商铺系统等多个物联网应用项目。本书的内容来源于实际产品,反映了工程上的实际需求。 4. 提供了配套的实训平台,避免了教材与实训系统的相互脱节 ZigBee网络组建技术是一门实践性非常强的课程,除了要进行课堂学习之外,还需要强有力的实践性环节与之配合。因此,我们研制并推出了MFIoT实训平台及相关的实训模块,包括ZigBee网络模块、CC-Debug仿真器、相关传感器模块以及智能网关、云平台等。其中,ZigBee网络模块、CC-Debug仿真器和传感器模块与本书配套,避免了以往出现的教材与实训系统相互脱节的情况,真正做到课堂内外相互统一。如果使用本书的院校在准备器件时有困难,可以与作者联系(E-mail:lizhuqing_123@163.com),也可以到淘宝店(https://shop 359792577.taobao.com/)购买。 5. 提供了丰富的教学资源,方便教师备课和读者学习 本书提供了6种教学资源:11个项目的源程序文件;ZigBee网络模块的电路图;书中所有芯片和传感器的PDF文档;书中所有习题的解答;ZigBee网络开发中的常用工具软件;近2年全国物联网大赛试题。其中,各任务的源程序供读者学习前观察任务的实现效果之用,也作学习借鉴之用,各芯片和传感器的PDF文档供读者学习查阅之用,常用的工具软件可以节省读者收集开发工具的时间。所有资源可直接从电子工业出版社教材服务网站上(www.hxedu.com.cn)下载,也可以与作者联系。 在使用本书时,建议采用“教、学、做”一体化的方式组织教学,最好是在具有实物投影的实训室内组织教学。教学时,建议先将书中提供的程序下载至ZigBee模块运行中,让学生观看实际效果并体会任务要求的真实含义,激发学生的学习兴趣。然后引导学生边做边学,直至任务的完成,让学生在做中体会和总结ZigBee网络的开发技术。本书的项目1是开发环境的搭建项目,这一部分是后续项目实施的基础,项目2至项目8是ZStack的基本应用项目,包括协议栈中单片机的功能部件的使用、协议栈的配置修改、用协议栈组建网络、网络的管理、数据通信的实现等,项目9至项目11是无线传感网络项目。另外,本书涉及大量代码,因此,为了使正文中的描述与代码等一致,全书物理量统一为正体。 本书是浙江工贸职业技术学院省级优势专业的建设成果之一。在本书成稿的过程中,曾得到了许多同仁和朋友的帮助和支持。杭州哲嘉科技有限公司的方勇军博士参与了本书的规划和内容的制订,浙江工贸职业技术学院的孙平教授对本书的编写进行了深入指导,长江大学的徐爱钧教授、湖北第二师范学院的焦启民教授、深圳职业技术学院的王晓春教授、广东科技职业技术学院的余爱民教授、武汉铁道职业技术学院的郑毛祥教授、嘉兴职业技术学院的桑世庆副教授、浙江工贸职业技术学院的金慧峰副教授、长江职业技术学院的邓柳副教授等多位老师对本书的编写提出了许多积极宝贵的意见,并给予极大的关心和支持。感谢电子工业出版社的编辑为本书出版所做的辛勤工作,没有他们就没有这本书的出版,谨此表示感谢﹗ 尽管我们在本书的编写方面做了许多努力,但由于作者的水平有限,加之时间紧迫,错误不当之处在所难免,恳请各位读者批评指正,并将意见和建议及时反馈给我们,以便下次修订时改进。 编 者 2017年6月
目 录 项目1 搭建开发环境 1 任务要求 1 实现方法与步骤 1 1. 准备开发工具 1 2. 安装开发工具包 3 3. 安装仿真器 8 4. 新建工程 11 5. 配置工程 15 6. 编译、连接程序 17 7. 调试程序 18 8. 烧录程序 21 实践总结 25 习题 25 项目2 在协议栈中控制LED闪烁 26 任务要求 26 相关知识 26 1. 协议与协议栈 26 2. ZigBee网络中的设备 26 3. 系统事件与用户事件 27 4. osal_msg_receive()函数 29 5. osal_msg_deallocate()函数 29 6. osal_start_timerEx()函数 29 7. HalLedSet()函数 30 8. HalLedBlink()函数 31 实现方法与步骤 31 1. 准备程序文件 31 2. 编写协调器程序 34 3. 编制头文件Coordinator.h 38 4. 修改OSAL_SampleApp.c文件 39 5. 移除App组中的多余文件 39 6. 编译下载程序 40 程序分析 42 1. App组中的文件 42 2. Coordinator.c文件中的代码分析 44 3. Coordinator.h文件中的代码分析 52 实践拓展 53 1. 在无协调器的条件下运行程序 53 2. 在有协调器的条件下运行程序 55 实践总结 56 习题 56 项目3 用事件驱动处理串口接收数据 58 任务要求 58 相关知识 58 1. HalUARTOpen()函数 58 2. HalUARTRead()函数 60 3. HalUARTWrite()函数 60 4. osal_set_event()函数 61 5. 端口的概念 61 实现方法与步骤 62 1. 编制协调器的程序文件Coordinator.c 62 2. 编制程序接口文件Coordinator.h 64 3. 修改OSAL_SampleApp.c文件 65 4. 程序编译与下载运行 67 程序分析 71 1. Coordinator.c文件中的代码分析 71 2. OSAL_SampleApp.c文件中的代码分析 74 3. OSAL工作原理分析 76 实践拓展 81 用新任务处理串口数据 81 实践总结 84 习题 85 项目4 用回调函数处理串口接收数据 86 任务要求 86 相关知识 86 1. 回调函数 86 2. osal_memcmp()函数 87 3. osal_strlen()函数 87 4. osal_memset()函数 88 实现方法与步骤 88 编制协调器的程序文件 88 程序分析 91 1. Coordinator.c文件中的代码分析 91 2. 串口回调函数的工作原理分析 94 实践拓展 99 查看ZStack中串口的配置代码 99 实践总结 103 习题 103 项目5 用计算机控制终端节点上的LED 105 任务要求 105 相关知识 105 1. 数据包与消息 105 2. 数据通信的3种方式 107 3. 设备的地址 108 4. AF_DataRequest()函数 108 实现方法与步骤 111 1. 编制协调器的程序文件 111 2. 编制终端节点的程序文件 116 3. 程序编译与下载运行 119 程序分析 123 1. Coordinator.c文件中的代码分析 123 2. EndDevice.c文件中的代码分析 124 实践拓展 125 修改ZStack中LED的配置 125 实践总结 128 习题 129 项目6 分组传输数据 131 任务要求 131 相关知识 131 1. 信道 131 2. PAN ID 132 3. 组播通信的相关函数 133 4. 组播通信的实现方法 134 实现方法与步骤 136 1. 编程思路 136 2. 编制节点的程序文件 138 3. 设置PANID和信道 144 4. 程序编译与下载运行 145 程序分析 147 实践总结 149 习题 150 项目7 用NV存储器保存数据 151 任务要求 151 相关知识 151 1. NV存储器 151 2. osal_nv_item_init()函数 152 3. osal_nv_read()函数 153 4. osal_nv_write()函数 153 实现方法与步骤 154 1. 定义用户条目 154 2. 编制协调器的程序文件 154 程序分析 159 实践拓展 160 读取节点的MAC地址 160 实践总结 162 习题 163 项目8 显示节点的地址 164 任务要求 164 相关知识 164 1. 协议栈中地址的分配机制 164 2. 获取地址的相关函数 166 实现方法与步骤 167 1. 编制节点的程序文件 168 2. 编制数值转换的程序文件 171 3. 新建User组 173 4. 程序的编译与下载运行 175 程序分析 177 实践拓展 178 绘制网络拓扑图 178 实践总结 180 习题 180 项目9 制作防盗监测器 181 任务要求 181 相关知识 181 1. 热释电红外传感器的应用特性 181 2. 在协议栈中添加传感器驱动程序的方法 184 实现方法与步骤 185 1. 编制传感器驱动程序文件 185 2. 编制协调器的程序文件 187 3. 编制终端节点的程序文件 190 4. 程序编译与下载运行 193 程序分析 194 实践总结 196 习题 196 项目10 制作光照信息采集器 198 任务要求 198 相关知识 198 1. 光敏电阻的特性 198 2. ZStack中的ADC函数 199 3. ZStack中ADC的使用方法 201 实现方法与步骤 202 1. 编制节点的程序文件 202 2. 程序编译与下载运行 205 程序分析 206 实践总结 207 习题 208 项目11 制作温湿度采集器 209 任务要求 209 相关知识 209 1. MicroWait宏 209 2. DHT11的工作特性 209 3. DHT11的访问操作 210 实现方法与步骤 215 1. 搭建DHT11的控制电路 215 2. 编制DHT11的驱动程序文件 215 3. 编制节点的程序文件 217 4. 程序编译与下载运行 223 程序分析 224 实践总结 226 习题 226 附录A ZigBee模块原理图 228 附录B 2016年全国物联网大赛试题(ZigBee部分) 230 试题1 任务三 物联网感知层开发调试 230 一、任务要求 230 二、任务环境 230 三、任务说明 230 试题2 任务三 物联网感知层开发调试 233 一、任务要求 233 二、任务环境 234 三、任务说明 234
李文华,男,教授,就职于浙江工贸职业技术学院,中国电子学会高级会员,长期致力于电子信息、物联网技术的相关教学
http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0329360