基于Zigbee 的LED 灯控制系统设计

2022-01-16 09:55张秀娟
科技创新与应用 2022年1期
关键词:上位串口按键

张秀娟

(济宁技师学院,山东济宁 272100)

随着科学技术的飞速发展,人们的生活环境和居住条件得到了极大的改善。为了追求更高的生活质量,智能家居的概念浮出水面[1]。通过智能化手段对家用电器和设备进行管理,用户可通过智能终端设备来获取家用电器的运行状态并对其进行远程控制。照明作为家用电器的重要组成部分,其智能化的升级改造,能够有效改善人们的生活品质[2]。

传统的智能家居产品主要是通过有线网络直接进行连接,形成以家庭为单位的网状结构,会产生许多的终端节点,布线麻烦且会耗费极大的人力,在检测和维修时也十分不方便。无线通讯技术为智能家居的发展提供了新的契机[3-4]。Zigbee 是近些年新兴的一种无线通信技术,具有系统功耗低、使用成本低、传输距离近、数据速率低等特点,非常适合面向家庭场合的智能家居设计[5]。

智能化的照明系统可以满足人们对高质量生活的追求,创建一个安全、舒适、节能的LED 照明系统,更加贴近实用且人性化的现代化智能家居生活。基于ZigBee 的遥控可调光LED 灯设计,是智能家居系统的重要组成部分,构建基于ZigBee 的通信网络,具有LED 灯的远程控制、智能调节等功能。能够实现LED 灯的人性化、网络化、智能化控制,同时具备用户、LED 灯和其他设备的互联互通等功能。

1 LED 灯控制系统总体方案

利用ZigBee 自组网技术将LED 灯接入网络,与控制器通过ZigBee 网络进行通信,可以通过遥控器或上位机对LED 灯进行控制。用户可以通过遥控器访问ZigBee 网络并发送控制指令,或通过串口通信使用PC端上位机访问ZigBee 网络发送控制指令,ZigBee 网络将接收到的控制指令传送给终端控制设备,以实现对LED灯的控制。

从图1 中可知,本系统主要由两部分组成:协调器和终端。系统上电后,由协调器完成自组网,终端节点自动采集LED 灯的亮度信息,再通过ZigBee 无线通信网络把信息传送给协调器,协调器再通过串口把信息传送到PC端,通过上位机软件将信息展示给用户,用户可以从上位机软件获取LED 灯的状态,然后根据需要点击上位机上相应的按键,经处理后,上位机将控制指令通过ZigBee网络把指令传送给终端,终端执行指令,以此实现对LED灯的控制,而当没有向终端节点传送的数据时,终端节点将自动进入休眠状态,实现低功耗。

图1 系统总体结构图

2 硬件设计

基于ZigBee 的智能遥控可调光LED 灯系统中的硬件设计,主要包括ZigBee 核心板设计、电源电路设计、LED 灯驱动电路设计、按键电路设计和其他接口电路设计等。

ZigBee 作为一个稳定的无线协议,目前有很多芯片都支持该协议,比较常见的有CC2430、CC2530 等,其中CC2430 是美国德州仪器公司生产的第一代ZigBee 协议栈集成芯片,支持64k 的ROM 程序空间和1k 的RAM 随机存取空间,对于当前较为完善的ZigBee 协议栈来讲,程序空间和随机存取空间不能满足要求,所以在本系统中选择了CC2530 作为ZigBee 的主控芯片。CC2530 是专门针对ZigBee 协议的一个单芯片解决方案。与CC2430 相比较,CC2530 的程序空间和随机存取空间都有了很大的提升,在内部集成了增强型的8051 控制器,高效射频收发器,8kB RAM 和其他强大的外设及其他支持功能。CC2530 在不同需求下可以使用不同的模式,可以满足低功耗的需求,并且从睡眠模式转换到运行模式只需要几毫秒的时间,这就更加确保了其低功耗的性能。

ZigBee 核心板中使用的CC2530 最小系统如图2 所示,其中P0 口全部由电阻上拉到3.3V 电源,上拉电阻可以增强P0 口低电平读取的稳定性。在VCC 和GND 之间输入2.8V~3.6V 电压即可正常工作,且在VCC 输入端接入了一个0.1μF 的电容C1,具有耦合的效果,可以抗电源干扰,保证了芯片可以正常工作。

图2 ZigBee 核心板电路图

2.1 电源电路设计

本系统采用USB 接口供电,如图3 所示,从P1 端输入5V 电压,C5、C6 为电容,用来滤波和储能,对整个电源供电电路可起到稳定电流的作用。PWR1 为LED 电源指示灯,当USB 有输入时,电流通过电阻R13 将指示灯点亮,R13 是一个10kΩ 的电阻,具有限流的作用。D1 为肖特基二极管IN5819,最大导通电流为1A,它的作用是防止其他接口输入电源从而导致发生短路,从USB 输入的电流经过D1 后,流向AMS1117 稳压电路,所以D1 可以保护AMS1117 分支电路。

图3 电源USB 接口输入电路图

CC2530 芯片的输入电压为3.3V,所以需要将5V 电压转换为3.3V 电压。电压转换电路如图4 所示,在本设计中选用了AMS1117-3.3V 芯片。AMS1117-3.3V 芯片是一款专门用于电源电压转换的芯片,可将4.2V~12V 的输入电压转换为稳定输出的3.3V 电压,最高输出1A 电流。电容C2、C3 起到稳压和抗干扰的作用,C4 是一个大电容,可以在电源产生瞬间压降时,通过电容的放电效应补偿电压差,从而对电源输入起到稳压的作用,可使得AMS1117 较为稳定的输出3.3V 电压,然后再经过电容C2,电容C2 对输出的3.3V 电压进行稳压,为后续使用3.3V 电压的元器件做一定的稳压保护作用。

图4 5V 转3.3V 电路

从LM7805 输出的5V 电压经过ASM1117 转换后,得到3.3V 电压,可供CC2530 芯片使用。

2.2 LED 驱动电路设计

图5 所示为LED 灯的驱动电路,其中三极管选用NPN 型三极管,在其集电极引出一个接口,发射极接地。在基极施加一个高电平即可导通集电极到地,可以作为开关管对接入集电极的负载进行开关控制。

图5 LED 灯驱动电路

2.3 按键电路设计

如图6 所示,LED 灯的控制按键共有两个,分别接到了I/O 口的P1_7 和P0_1,按键的有效值可设为高电平有效或低电平有效,但由于CC2530 的I/O 口具有上拉电阻的作用,且上电默认工作在上拉电阻有效的模式,所在将按键设置为低电平有效的触发方式,按键的一端接I/O口,另一端接GND 即可实现对按键的检测。

图6 按键电路

3 软件设计

系统软件包括zigbee 协调器和终端的下位机软件,以及PC 端的上位机软件。

下位机程序设计分为两部分:ZigBee 协调器和ZigBee终端。二者均具有无线数据的收发功能,以保持联网通信。ZigBee 协调器的流程如图7 所示,协调器主要用于控制终端LED 灯的状态,对应的按键实质是键值的发送。此外,LED 灯还可以采用上位机的控制方式,上位机的通信接口采用的是UART 串口通信,通过UART 串口通信,上位机将指令发送给ZigBee 协调器,然后ZigBee 协调器将收到的上位机串口命令转换为对应的键值后再发送到ZigBee 终端。

图7 ZigBee 协调器流程图

ZigBee 协调器上电后,系统首先对硬件进行初始化,然后判断是否有按键按下,若有按键按下,则发送相应的键值到终端。若没有按键按下,则判断是否收到来自上位机串口的命令,若收到来自上位机串口的命令,则将串口命令转换为对应的键值发送到ZigBee 终端。若没有收到来自上位机串口的命令,则判断是否收到无线数据,若收到了无线数据,则缓存节点数据并上报至上位机。若没有收到无线数据,则重新回到判断是否有按键按下并循环。由此实现了上位机远程控制功能。

ZigBee 终端流程图如图8 所示,ZigBee 终端上电后,首先将硬件初始化,然后判断是否收到无线数据,无线数据的内容为来自ZigBee 协调器的键值,若收到无线数据,则判断是否来自协调器的命令,否则重新返回判断是否收到无线数据。若收到来自协调器的命令,则判断是否是开关灯命令,若是则继续判断是否是开灯命令,否则返回判断是否收到无线数据。若收到开灯指令则执行开灯指令,否则执行关灯指令,并返回判断是否收到无线数据。

图8 ZigBee 终端流程图

上位机软件设计使用了Visual Studio 集成开发环境,通过串口实现PC 端与ZigBee 无线传感网络的通信。上位机的设计主要分为两部分:界面和程序。本系统的上位机用户界面如图9 所示,界面的左半部分用来检测并打开串口,右半部分用来控制LED 灯的开关和亮度,并可以实时显示出当前LED 灯的亮度信息。

图9 上位机测试界面

上位机启动后,首先要对串口窗体进行初始化,并设定默认的串口参数。在对串口初始化完成以后,上位机检测可用串口以及串口设置。在按下“打开”键后,上位机将参数配置到串口组件。对于LED 灯的开关控制及亮度调节用上位机的按钮控制,当点击上位机中的按钮时,会触发相应的函数,并发送相应的指令给下位机,在本设计中共设置了五档亮度调节。

4 系统测试

首先上位机远程控制功能测试。将协调器通过串口与PC 端连接,并给终端上电,然后打开上位机控制软件,检测并打开串口,此时可以从上位机界面看到ZigBee协调器与终端组网成功,并且可以显示出当前LED 灯的亮度“1L”代表亮度为1,“2L”代表亮度为2,以此类推。此时可以通过界面上的“亮度1”“亮度2”等按钮控制LED灯的亮度。

遥控器功能测试。给ZigBee 协调器和终端上电,上电后指示灯快闪烁,组网成功后指示灯由快闪变为慢闪,在确定协调器与终端组网成功后,可以通过遥控器的按钮对LED 灯的亮度进行调节,遥控器的两个按钮分别负责控制LED 灯亮度的加和减,共有5 档亮度可调节,当亮度调到最高或最低时,按钮旁边的指示灯会闪烁以提醒使用者达到最大可调节等级。

5 结束语

为了方便在日常生活中对LED 灯的远程控制,本文设计了基于ZigBee 的遥控可调光LED 灯系统。系统主要由协调器和终端两部分组成,可以实现对LED 灯的远程控制,以及通过上位机实时监控LED 灯的状态。首先对基于ZigBee 的遥控可调光LED 灯系统的功能需求进行了分析,并制定了系统的总体设计方案。然后进行了系统硬件设计,介绍了使用到的CC2530 芯片,并对系统中的电源电路、LED 灯驱动电路、按键电路和其他接口电路进行设计。分别进行了电脑端的上位机软件设计,以及包括ZigBee 协调器和终端的下位机软件设计。最后通过实际测试验证了系统的功能性。

猜你喜欢
上位串口按键
基于有限状态机的按键检测程序设计
浅谈AB PLC串口跟RFID传感器的通讯应用
按键消抖在单片机和FPGA实验教学中的应用
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
一种多方向导光按键结构设计
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式