北京理工大学珠海学院
课程设计(II)
《无线传感器网络》
题 目 无线传感器网络
课程设计(高级)
专 业 计算机科学与技术
学 号
姓 名
日 期
目 录
1、课程设计目的.......................................1
2、课程设计内容和原理.................................1
2.1 课程设计内容分工情况................................1
2.2 ZigBee 网络的搭建原理 ...............................1
2.3 控制窗帘的开关原理..................................1
3、设计思路与实现过程.................................2
3.1 设计思想和流程......................................2
3.2 组网的具体实现过程..................................3
(a)协调器部分.........................................3
(b)分机部分...........................................7
4、实物效果..........................................12
5、总结与体会........................................14
北京理工大学课程设计 《无线传感器网络》
1
1、课程设计目的
掌握常用的无线传感网络技术的使用,通过设计并组建 zigbee 网络,搭建相
关智能家居功能,做出便于日常生活的简易控制小应用。
2、课程设计内容和原理
2.1 课程设计内容分工情况
表 1 主要课程设计内容列表
课程设计内容
负责人
ZigBee 网络的搭建及各节点无线传输信
息的收发控制,L298N 模块驱动两马达
控制窗帘的开关
基 于 Gokit 机 智 云 服 务 的 手 机 端 与
ZigBee 设备的远程通信设计
使用步进电机 28BYJ-48 的控制煤气阀
门的开关,使用继电器控制电磁锁模拟
远程开锁
使用温度传感器 DS18B20 和温湿度传
感器 DHT11 获取相应温度和湿度值
2.2 ZigBee 网络的搭建原理
修改网蜂提供的无线串口透传模块,组建一个简易的 ZigBee 星型网络,
在协调器添加点播模式,实现点对点消息的发送。在各分机添加消息接收后
的处理方法和周期性发送自身在网络中的短地址和内容。
2.3 控制窗帘的开关原理
初始化分机的 4 个引脚为 GPIO ,并设置为输出状态,然后向这 4 个引
脚输出对应让马达正转和反转的高低电平到 L298N 模块的 IN1、2、3、4 引脚,
控制两马达同时向外或向里转,模拟控制窗帘的打开和关闭。
北京理工大学课程设计 《无线传感器网络》
2
3、设计思路与实现过程
3.1 设计思想和流程
手机端能接收显示 ZigBee 网络中各节点的状态,然后手机远程发送消息
给 Gokit 板,Gokit 板接收到消息解析出命令通过串口转发给 ZigBee 网络中的
协调器。协调器收到命令后,判断发送分机号,点对点地把命令发送给对应
分机。分机收到命令做对应操作,实现远程控制。
设计流程图:
流程图 1 设计流程图
分机 1 (End1):
控制门锁,煤气阀门,
LED1、2
分机 2 (End2):
获取温度传感器和温湿度
传感器的温度和湿度
分机 3 (End3):
控制窗帘开关
结束
开始
手机端发送消息
Gokit 板把收到的消息解
析成命令,通过串口转发
给协调器
协 调 器 收 到 串 口
发来的命令
判断命令 所 要 送达
的分机?
北京理工大学课程设计 《无线传感器网络》
3
3.2 组网的具体实现过程
(a)协调器部分
(1)进入 Tools 文件夹,修改 f8wConfig.cfg 文件里的 PAN ID
(2)进入 App 文件夹,打开 SampleApp.h 定义新分机节点的簇(用于后面收
到各种分机节点的周期性无线信号时,分别选择对应的簇,记录不同分机的地
址)
(3)进入 App 文件夹,打开 SampleApp.c 建立一个记录分机地址数据结构的
一维数组 Adress[3]
/* Define the default PAN ID.
*
* Setting this to a value other than 0xFFFF causes
* ZDO_COORD to use this value as its PAN ID and
* Routers and end devices to join PAN with this ID
*/
-DZDAPP_CONFIG_PAN_ID=0xFFAA
#define SAMPLEAPP_MAX_CLUSTERS 6
#define SAMPLEAPP_PERIODIC_CLUSTERID 1
#define SAMPLEAPP_FLASH_CLUSTERID 2
#define SAMPLEAPP_COM_CLUSTERID 3
#define End1 4
#define End2 5
#define End3 6
uint16 Adress[3];