基于ZigBee 技术的物品找寻系统中无线组网的设计与实现

2023-12-04 14:18李志伟
信息记录材料 2023年10期
关键词:描述符蜂鸣器电路图

李志伟

(苏州高等职业技术学校 江苏 苏州 215000)

0 引言

为了减少寻找物品花费的时间和烦恼,许多基于无线技术的物品寻找器应运而生。 2016 年,王韦舒等[1]设计了一种基于单片机的主动式无线寻物系统,该系统将单片机作为主控制器,控制无线收发芯片进行寻物信号的发送和接收,通过声光模块产生寻物语音和灯光指示,实现了对物品的寻找。 同年,丁辉等[2]研究了一种基于蓝牙技术的物品寻找器,该系统采用了JAVA 语言编写智能手机端App,通过蓝牙与绑定在物品上的寻找器进行通信,发出声音和亮光,引导人们找到物品。 2018 年,李雪艳等[3]设计了一套基于RSSI 的可以双向查找贵重物品的寻找设备。 通过该系统总体分析可知,通过蓝牙BLE 模式搜索蓝牙设备,并与信号源配对,通过判定信号的稳定性以及信号距离的阈值大小,来查找设备。 2020 年,聂壹琦等[4]研究一种基于射频识别(radio frequency ideatification,RFID )技术的物品寻找APP,该研究采用了C 语言和JAVA 语言以及移动端APP 开发和微信小程序设计,通过电子信号的发出、传递、接收和解码,实现室内定位。 2021年,发表在《数据分析与知识发现》杂志上的一篇文章,介绍了一种利用RFID 信号寻找丢失物品的方法[5]。 该研发团队开发了一个能完成该任务的机器人系统RFusion,使用装有摄像头和射频天线的机械手臂,通过获取视觉数据以及定位信息和检索信息来发现物品。 随着科技的发展和无线技术的进步。 这种通过无线寻找物品的系统设计和研究越来越多,将更方便于人们的生活。

本文研究一种基于ZigBee 技术的无线组网设计,并通过发射与接收信号电路设计、代码编写,以及最佳信道的分析及选择,ZigBee 开发板等硬件的连通后,在IAR 软件上调试运行,实现了自动探寻组网和手动模式组网的设计。 发射模块和接收模块的距离可在最小范围和最大范围内灵活调节,可再次通过自动组网建立通信。

1 相关技术

1.1 Z-Stack

Z-stack 是挪威半导体公司推出的一款业界领先的商业级协议栈软件。 用户使用该软件能够较容易地开发出具体的应用程序。 开发环境选择 IAR Embedded Workbench[6]。 使用时,只需要调用该程序或应用编程接口(application programming interface,API)即可,而无须知道协议栈具体实现的细节。 Z-Stack 协议保证了通信双方需要按约定的标准进行数据的发射和接收。 可以将协议栈简单理解为,通过使用协议栈以函数或API 的调用来使用这个协议,进而实现无线通信数据的收发。

1.2 通信步骤

简单来讲,ZigBee 无线通信可通过3 个步骤实现:①组网。 通过调用协议栈中的相关函数和组网函数,实现节点之间的互通互联,建立网络。 ②发送。 由发送节点调用相关函数,如发送函数(此函数也在协议栈中),将网络中的数据发送给接收节点,实现数据的发送。 ③接收。 由接收节点发起,调用相关函数,如接收函数(此函数在协议栈中),将网络中的数据接收,实现数据的接收。

2 实施准备

2.1 所需设备

设计实施前除了要准备好ZigBee 开发板、5V 电源适配器和USB 下载线外,还需要理清楚逻辑设备存在的作用,设备参数的设置、信道和网络编号、配置文件以及ZigBee NV 编程的内容。

ZigBee 无线传感网中存在的逻辑设备类型有3 种。一种是协调器,即第一个需要启动的设备。 负责网络的创建,它的工作方式可通过标识符和信道的选择来实现。 第二种是路由器,它的功能是允许节点加入网络,负责数据的转发,它可以与若干个路由器或终端节点进行通信。 特别需要注意的是ZigBee 星型网络不支持ZigBee 路由。 通常路由器一直处于运行状态,它的功耗往往比较高,因此需要提供一个连续的电源进行供电。 第三种是终端节点,它负责的是加入已建立的指定网络。 由于其存储容量要求最小,可根据功能需要自行调整进入休眠状态或唤醒状态,所以可作为除电池供电设备外,另一种实现ZigBee 低功耗的设计。

2.2 设备参数设置

设备在网络中还有其他的作用,如建立安全机制、绑定网络等。 当设备组网启动时,可根据定义的搜索信道Chinalid 和网络标识符(personal area network ID,PANID)来建立网络。 如果PANID 定义为0xFFFF,则随机产生PANID。 此时,网络中的节点需要执行指定的网络功能函数,并且将给形式参数指定的值。 同时可以确定网络中节点的类型,以及选择的堆栈模式。

2.3 信道Chanel 选择

由于ZigBee 协议定义了26 个信道,分别为868 MHz 1 个,915 MHz10 个,2.4 GHz11 个,而CC2530 芯片只支持2.4 G,所以这里只能设置2.4 G 频段,即11 信道到26 信道。 信道选择ZigBee 布网最大的障碍就是干扰,也就是来自Wi-Fi 的干扰。 Wi-Fi 与ZigBee 都处于2.4 G 频段,信道高度重合。 而且无论是功率还是抗干扰能力ZigBee都敌不过Wi-Fi。 因此在部署ZigBee 网络时要考虑当前环境中Wi-Fi 信号的干扰频段,并尽可能避开这些频段。如Wi-Fi 在2.4 G 频段具有14 个信道,且信道之间相互重叠。 但在中国,无线AP 最常用的信道是1、6、11,几乎所有的民用无线AP 默认都是这3 个信道。 自己观察可以发现这3 个信道前后之间有细微的间隔,分别为f<2.401、2.423 和2.473。 再来看ZigBee 的信道分布:对比可以看出,15、20、25、26 这4 个ZigBee 信道完全避开了常用的Wi-Fi 信道1、6、11,是ZigBee 布网的最佳选择。

2.4 配置文件

配置Chanel 文件如图1 所示。 通常所说的堆栈信息、内存大小分配,都在该配置文件中,它也是CC2530 单片机的链接控制指令所在的地方,此配置一般不需要修改。 f8wConfig.cfg 文件包含了信道选择、网络ID 号等有关的链接命令。 每一个设备都有一个DEFFAULT_CHANLIST 的默认信道集。 要选择哪个信道,把前面的“/ /”注释删除,其余的保留即可。 例如信道默认为-DDEFAULT_CHANLIST =0x00000800/ /11-0x0B,只需删除前面“/ /”注释符即可。

2.5 PANID 网络编号

PANID 指网络编号,用于区分不同的ZigBee 网络。设备的PANID 值由DZDAPP_CONFIG_PAN_ID 来确定,如果该值设置为0xFFFF,则协调器将产生一个随机的PANID。

2.6 描述符

ZigBee 网络中的描述符用来描述相应设备的类型以及如何使用。 包含节点描述符、电源描述符和默认用户描述符等,根据需要如果要定义自己的描述符,可以通过改变描述符实现。 描述符的定义和创建配置项在文件ZDOConfig.h 和ZDOConfig. c 中完成,描述符信息可以被网络中的其他设备读取。

2.7 ZigBee NV 编程

非易失性存储器(non-volatile memory),简称NV,可以保证断电后,保存在存储器中的数据信息不会消失。 此存储器在ZigBee 协议栈中主要用于保存网络中的配置参数,如网络IP 等。

具有了NV_RESTORE 编译选项,就可以启用NV 编程功能。 在编程中,需要注意的是,NV 中用户描述符ID项是ZDO_NV_UserDesc(在ZComDef.h 定义)。 在ZDApp_Init()函数中,可以调用函数Osal_nv_item_init()来初始化所需要的NV 空间。 初次建立NV 空间,Osal_nv_item_init()函数将设置默认值ZDO_DefaultUserDescriptor,这样就可以为用户描述符保留空间。

3 设计与实施

3.1 电路图设计

(1)发射模块的电路图包括:①ZigBee 核心板电路图;②LCD 指示灯电路图和LCD 屏幕电路图;③发射模块蜂鸣器电路图;④控制按键电路图和复位按键电路图。

(2)接收模块的电路图包括:①接收模块ZigBee 核心电路图;②接收模块蜂鸣器电路图。

3.2 编码设计

(1)设置PANID 和CHANNEL ID

- DDEFAULT_CHANLIST =0x00000800/ /11-0x0B

- DZDAPP_CONFIG_PAN_ID =0xFF00

(2)周期性广播

/ /伪代码如下

uint16 SampleApp_ProcessEvent(uint8 task_id, uint16 events){

/ /编写按键处理函数

/ /开始定期发送周期信息}

(3)蜂鸣器初始化

P2SEL&=~0X01;/ /设置P2.0 为普通IO 口

P2DIR&=~0X01;/ /在P2.0 口,设置为输入模式

P2INP&=~0x01;/ /打开P2.0 上拉电阻

(4)协调器按键处理程序

void SampleApp_HandleKeys(uint8 shift, uint8 keys){if(keys & HAL_KEY_SW_1){

/ /本机按键处理函数}

(5)发送按键信息数据

void SampleApp_SendPeriodicMessage(void){

/ /每0.1 s 发送一次判断信息}

(6)终端机数据接收程序

void SampleApp(*pkt){

/ /加入LED1 指示数据收到

/ /获取接收到的数据值

/ / /处理协调器发送的周期广播}

(7)Lcd 显示

/ /编写程序实现功能,蜂鸣器开、蜂鸣器关

3.3 展示效果

先将所使用到的设备全部接上电源,等待设备自动组网,在没有组网成功时,设备的蜂鸣器会发出“嘀嘀嘀”的声响,同时旁边的辅助小灯也会一起闪烁,等待组网成功时,设备的蜂鸣器就会停止发出响声。 如图2 所示。

图2 自动组网展示效果图

当按下ZigBee 开发板上的按键s1 时,显示屏会进入范围设置,如图3 所示,在这里面可以设置发射模块和接收模块的最小范围和最大范围。 在范围设置里面,按键s2 是增加范围,按键s3 是减少范围。 当范围调整完成后,再次按下s1 即可返回开始组网界面。 在组网界面上会显示发射模块和接收模块的距离,当超过当前设置的范围时,发射模块和超过距离的模块的蜂鸣器都会同时发出“嘀嘀嘀”的响声。

图3 显示屏发射模块和接收模块最小和最大范围图

在组网的界面下当按下s2 按键,即可进入手动控制模式,如图4 所示,在手动控制模式下,按下按键s3 即可手动控制当前选择的模块来进行手动唤醒当前模块蜂鸣器的开关,按下按键s2 可以选择下一个模块来进行同样的操作。

图4 界面手动控制模式图

4 结语

综上所述,本文研究的基于ZigBee 技术的无线组网方式,对物件找寻系统中无线通信方式的连接比较有帮助。 提供了自动组网和手动组网两种模式,测试距离在最小范围和最大范围内灵活调节。 随着人们生活节奏的加快,这种低成本、效率高的无线找寻方式更受大众欢迎,对于正在研究该项技术和应用的人员也是一种参考。

猜你喜欢
描述符蜂鸣器电路图
带你学习实物电路图的连接
电动自行车产品车速提示音检测现状和整改技术研究(2)
“且”的真与假
基于结构信息的异源遥感图像局部特征描述符研究
第7讲 电路图与动态电路专题复习
掌控板制作简易钢琴
基于AKAZE的BOLD掩码描述符的匹配算法的研究
比亚迪E6纯电动汽车系统结构原理(四)
单片机驱动蜂鸣器的程序设计
Linux单线程并发服务器探索