本书根据“1+X传感网应用开发”职业技能等级标准的要求,选用16个基于无线传感网开发的实例,按照“理论够用,突出应用”的原则,采取项目化教学的方式,以作品制作为载体,采用在作品制作过程中穿插讲解基础知识和基本技能的方法,由浅入深地讲解无线传感网的开发方法,包括开发环境的搭建,用BasicRF远程控制LED灯,在BasicRF中用串口收发数据,用Basic RF远程采集开关量、模拟量传感数据,ZStack中定时器、串口、NV存储器等基本组件的应用设计,单播、广播、组播通信实现方法,无线网络的管理方法,ZStack中基于开关量传感器、模拟量传感器、逻辑量传感器的无线传感网的组建方法以及C语言程序设计技巧。本书立足于应用实践,融入了“1+X传感网应用开发”职业技能等级考证内容和近年来全国职业技能大赛物联网技术应用赛项中感知层开发的内容,摒弃了对复杂而深奥的通信协议理论知识的讲解,适用于高等职业院校物联网、电子信息、智能产品设计、网络及计算机专业作为无线组网技术课程的教材,也可作为应用型本科和“1+X传感网应用开发”职业技能等级考试培训教材,还可供参加物联网大赛和从事无线网络组建的工程技术人员学习和参考。
李文华,男,教授,就职于浙江工贸职业技术学院,中国电子学会高级会员,长期致力于电子信息、物联网技术的相关教学
项目1 搭建无线传感网的开发环境
任务1 准备开发工具
任务要求
实现方法与步骤
1.准备工具软件
2.准备开发板和仿真器
3.准备传感器模块
实践总结
任务2 安装工具软件
任务要求
实现方法与步骤
1.解压工具软件
2.安装IAR集成开发工具
3.安装SmartRF Flash Programmer和ZStack
4.安装USB转串口的驱动程序
5.安装仿真器驱动程序
6.检查驱动程序安装的结果
实践总结
任务3 建立传感网开发环境
任务要求
实现方法与步骤
1.新建工程
2.配置工程
3.编译、连接程序
4.调试程序
5.下载程序
实践总结
习题
项目2 基于Basic RF的无线传感网的应用设计
任务4 用Basic RF远程控制LED灯
任务要求
知识储备
1.Basic RF软件包
2.basicRfInit()函数
3.basicRfSendPacket()函数
4.数据接收中的相关函数
5.接收数据的方法
6.halButtonPushed()函数
7.发光二极管控制函数
8.延时函数
实现方法与步骤
1.准备文件
2.编制开关发送程序文件switch.c
3.编制点灯程序文件light.c
4.编译下载程序
程序分析
1.light.c文件中的代码分析
2.switch.c文件中的代码分析
实践拓展
实践总结
习题
任务5 在Basic RF中用串口收发数据
任务要求
知识储备
1.新大陆公司的Basic RF软件包
2.新大陆软件包中有关串口的API函数
3.CC2530单片机的串口
实现方法与步骤
1.新建工程
2.配置工程
3.编制程序文件uartRF.c
4.编译下载程序
5.运行程序
程序分析
实践拓展
实践总结
习题
任务6 用Basic RF远程采集声音传感数据
任务要求
知识储备
1.声音传感器的应用特性
2.CC2530单片机中的I/O口
3.声音传感器的驱动程序
4.在Basic RF中添加传感器驱动程序的方法
5.CC2530单片机中的定时器
6.新大陆Basic RF资源包中有关定时器的API函数
实现方法与步骤
1.搭建声音传感器的控制电路
2.新建工程
3.编制声音传感器驱动程序文件
4.编制节点的程序文件
5.修改Basic RF软件包中的定时时长
6.新建节点设备
7.下载运行程序
程序分析
1.SoundSensor.c文件中的代码分析
2.SoundSensor.h文件中的代码分析
3.Sensor.c文件中的代码分析
4.Collector.c文件中的代码分析
实践拓展
实践总结
习题
任务7 用Basic RF远程采集气体传感数据
任务要求
知识储备
1.气体传感器的应用特性
2.CC2530单片机中的ADC
3.ADC的寄存器
4.ADC应用程序的编写方法
5.Basic RF软件包中的ADC函数
实现方法与步骤
1.搭建气体传感器的控制电路
2.编制气体传感器驱动程序文件
3.编制节点的程序文件
4.下载运行程序
程序分析
1.Collector.c文件中的代码分析
2.Sensor.c文件中的代码分析
实践拓展
实践总结
习题
项目3 ZStack中基本组件的应用设计
任务8 在ZStack中控制LED闪烁
任务要求
知识储备
1.协议与协议栈
2.ZigBee网络中的设备
3.系统事件与用户事件
4.osal_msg_receive()函数
5.osal_msg_deallocate()函数
6.osal_start_timerEx()函数
7.HalLedSet()函数
8.HalLedBlink()函数
实现方法与步骤
1.准备文件
2.编写协调器程序
3.编制头文件Coordinator.h
4.修改OSAL_SampleApp.c文件
5.移除App组中的多余文件
6.编译下载程序
程序分析
1.App组中的文件
2.Coordinator.c文件中的代码分析
3.Coordinator.h文件中的代码分析
实践拓展
1.在无协调器的条件下运行程序
2.在有协调器的条件下运行程序
实践总结
习题
任务9 在ZStack中用串口收发数据
任务要求
知识储备
1.端口的概念
2.HalUARTOpen()函数
3.HalUARTRead()函数
4.HalUARTWrite()函数
5.osal_set_event()函数
6.osal_memcmp()函数
7.osal_strlen()函数
8.osal_memset()函数
实现方法与步骤
1.编制协调器的程序文件Coordinator.c
2.编制程序接口文件Coordinator.h
3.修改OSAL_SampleApp.c文件
4.程序编译与下载运行
程序分析
1.Coordinator.c文件中的代码分析
2.OSAL_SampleApp.c文件中的代码分析
3.OSAL工作原理分析
实践拓展
用新任务处理串口数据
实践总结
习题
任务10 在ZStack中用NV存储器保存数据
任务要求
知识储备
1.NV存储器
2.osal_nv_item_init()函数
3.osal_nv_read()函数
4.osal_nv_write()函数
实现方法与步骤
1.定义用户条目
2.编制协调器的程序文件
程序分析
实践拓展
读取节点的MAC地址
实践总结
习题
项目4 用ZStack组建ZigBee网络
任务11 用计算机控制远程节点上的灯
任务要求
知识储备
1.数据包与消息
2.数据通信的3种方式
3.设备的地址
4.AF_DataRequest()函数
实现方法与步骤
1.编制协调器的程序文件
2.编制终端节点的程序文件
3.程序编译与下载运行
程序分析
1.Coordinator.c文件中的代码分析
2.EndDevice.c文件中的代码分析
实践拓展
修改ZStack中LED的配置
实践总结
习题
任务12 分组传输数据
任务要求
知识储备
1.信道
2.PANID
3.组播通信的相关函数
4.组播通信的实现方法
实现方法与步骤
1.编程思路
2.编制节点的程序文件
3.设置PANID和信道
4.程序编译与下载运行
程序分析
实践总结
习题
任务13 显示网络节点的地址
任务要求
知识储备
1.协议栈中地址的分配机制
2.获取地址的相关函数
实现方法与步骤
1.编制节点的程序文件
2.编制数值转换的程序文件
3.新建User组
4.程序的编译与下载运行
程序分析
实践拓展
绘制网络拓扑图
实践总结
习题
项目5 基于ZStack无线传感网的应用设计
任务14 用ZStack制作远程防盗监测器
任务要求
知识储备
1.热释电红外传感器的应用特性
2.在协议栈中添加传感器驱动程序的方法
实现方法与步骤
1.编制传感器驱动程序文件
2.编制协调器的程序文件
3.编制终端节点的程序文件
4.程序编译与下载运行
程序分析
实践总结
习题
任务15 用ZStack制作远程光照信息采集器
任务要求
知识储备
1.光敏电阻的特性
2.ZStack中的ADC函数
3.ZStack中ADC的使用方法
实现方法与步骤
1.编制节点的程序文件
2.程序编译与下载运行
程序分析
实践总结
习题
任务16 用ZStack制作远程温湿度 采集器
任务要求
知识储备
1.MicroWait宏
2.DHT11的工作特性
3.DHT11的访问操作
实现方法与步骤
1.搭建DHT11的控制电路
2.编制DHT11的驱动程序文件
3.编制节点的程序文件
4.程序编译与下载运行
程序分析
实践总结
习题
附录A MFTOT-Z型开发板电路图