李学满 雷金辉
摘要:在对灯光密集的场所灯光控制方式分析的基础上,提出了采用安卓智能终端控制,WiFi作为通信方式,单片机执行控制动作的点阵式灯光智能控制系统。适用于灯光排布整齐且灯源较多的餐馆、娱乐场所等。通过专用的安卓客户端即能控制点阵式灯光的整体明暗效果,摒弃了传统的多开关控制或单开关却无法对灯光进行单独控制的弊端。对节约电能,提高灯光照明美观度,保证照明质量起到了很大的作用。
关键词:嵌入式系统;点阵式灯光;WiFi传输;安卓智能终端;智能控制
0引言
灯光照明设备是现代建筑中必不可少的部分,随着物联网技术的迅速发展,灯光控制的智能化成为发展的必然趋势。传统的灯光控制是通过手动扳动固定在某一位置的机械开关进行明暗控制。这种控制方式的一个弊端是不能进行远程控制,而且在没有灯光照明的情况下,找到开关位置往往较为困难,容易发生磕碰。解决这种问题的一个方式便是实现无线远程控制,WiFi具有速度快(最高带宽可达11 Mbps),可靠性高的特性,在开放性区域,通信距离可达305米,在封闭性区域,通信距离为76-122米。而且WiFi发射功率约为60-70毫瓦,而手机的发射功率约为200毫瓦至1瓦,且无线网络不直接接触人体,所以应该是绝对安全的,不限制接触人群。因此提出了通过安卓智能设备通过WiFi远程控制的设计方案。
传统开关控制还有另一个弊端,就是在影院、大型会议室、餐馆等地方,往往有大量的灯光需要控制,传统的控制方式是用一个开关控制一整列灯光,或是控制全部灯光。无法实现灯光的自由控制,不能根据需求调整需要打开的灯光位置,会造成不必要的电能的浪费。而现在智能照明要求足够人性化、个性化、能够一键化便捷控制。因此提出了通過单片机进行点阵式控制的设计方案,来实现一个安卓设备控制整个场所的灯光按需开关。
1系统整体设计
点阵式灯光智能控制系统最基本的功能就是对点阵式灯光进行整体控制,系统主要分为两个部分,安卓控制终端部分和动作执行部分。用户只需使用安卓智能设备安装专用客户端就可以对灯光进行控制。安卓智能设备通过WiFi与动作执行部分链接,动作执行部分包含WiFi模块,MCU和继电器模块,动作执行部分负责对接收到的信号进行处理,执行对继电器模块的控制动作。当用户在安卓终端中选取灯光模式后,安卓端将对应的控制信号发送给单片机,单片机负责对信号进行检测,检测信号是否有变化,并获取信号中的有用信息。进而根据获取信息执行控制动作,实现灯光的多样控制。设计假设需要控制的灯光为8x8点阵式排列。这种点阵实现简单的汉字显示效果也是可行的。
系统模块图如图1所示,安卓控制终端与WiFi模块的通信使用面向连接的可靠的TCP通信协议,WiFi模块与单片机之间通过串口进行信息传输,点阵式灯光组采用LED光源,其体积小、功效高、启动快、控制方便。
2硬件设计
2.1动作执行模块设计
动作执行模块由WiFi芯片,MCU,继电器开关组组成。MCU采用STCl2C5A60S2单片机,该处理芯片内部具有高达60 k的Flash存储区,设计所要求功能代码生成文件小于10 k,不需外接存储器,能够满足本系统处理需求。WiFi采用ESP8266模块,该模块支持AP模式和STA+AP组合模式,可以根据用户的需要进行配置、调整,能够满足设计对于控制模块作为AP的要求。支持socketAT指令,AT是TEN T10N码必须位于语句的开头,命令可以是AT命令集中的一个或多个命令,每行以回车结束,可以通过指令对其快捷配置,支持UART数据通信接口,符合使用串口通过指令控制WiFi芯片的设计思路。WiFi信号强度大,足够室内范围使用,可用于智能灯光控制。继电器开关选择松乐SRD-05VDC-SL-C电磁继电器,松乐SRD-05VDC.SL-C电磁继电器支持最高250 V交流电压,10A电流,可以接人家庭电路使用。为实现8x8的灯光点阵控制,继电器开关一共需要64个。系统动作执行模块硬件设计框图如下。
虚线框中继电器模块为8x8点阵式排列,每个模块中包含驱动电路和继电器,共64个。每个CD4081芯片包含四个2输入端与门,一个芯片可供四个继电器模块使用,所以与门组中一共包括16个CD4081芯片。74HC595和74LSl38输出信号经与门处理,输出同为高电平时有效,经与门输出的信号驱动继电器,控制继电器的通断。从而实现了使用74HC595对继电器模块进行列选,38译码器进行行选的点阵式控制方式。
晶体管驱动电路如图3所示,为NPN型驱动电路,高电平时导通低电平时截止。
3软件设计
3.1安卓控制终端软件设计
设计中安卓设备通过WiFi连接到路由器,通过路由器与WiFi模块建立连接,采用TCP通信协议。因此程序中完成了WiFi通信的建立、配置过程。将安卓设备端定义为通信的服务器端,通过程序创建server服务,在程序控制界面中设置了button按钮控件,专门用于对服务的开启关闭进行控制,当客户端连接成功时,在状态栏中将连接成功状态反馈给用户。控制界面中设有灯光控制的总控开关,当按钮关闭时,所有灯光处于熄灭状态。灯光的模式是通过Spinner下拉菜单控件来进行选择的,下拉列表中有8个选项,对应8种灯光模式。在总控开关开启的条件下,能够对各种模式进切换。八种灯光状态定义如图4所示,实心点代表灯光开启状态,空心为关闭状态。
每当切换灯光状态时,安卓服务器端向客户端发送状态信息,发送的信息分别为“AAAA”,“BBBB”……“FFFF”8种,分别代表8种不同的灯光状态。
3.2动作执行模块软件设计
动作执行模块程序基于单片机编写。单片机通过串口与WiFi模块进行通信,程序中实现了串口通信的过程,定义了发送单一字符和发送字符串的函数。单片机的指令由串口发送给WiFi模块,WiFi模块支持AT指令集,可使用AT指令对WiFi模块进行配置。程序运行时每隔一秒发送一遍配置信息给WiFi模块,同时从WiFi模块获取安卓端发送的数据,单片机对发送过来的数据进行处理,数据以ASCII码的形式进行传送,算上回车换行符一共41字符,将其存于数组中,第12-15个字符为安卓服务器端传送的信息,程序自动截取第12个字符。并根据截取的信息,控制继电器状态。endprint
数据格式为:+IPD,2,(返回字数):服务器返回数据OK
以用户选择灯光模式(1)为例,单片机接受到的ASCII码为:0D 0A2B 49 50 44 2C 32 2C 34 3A4141 41 41 0D 0A4F 4B 0D 0A
繼电器阵列由74LSl38和74HC595芯片进行扫描控制。74HC595能够实现数据的串入并出,将要显示的图形编码存储在数组中,将数组中的每个元素串行移入,同一时间并行输出,控制此刻一行中各个位所处的高低电平。数组中的图形编码通过点阵取模软件获取,程序中预先定义好了八种灯光模式的图形编码数组,分别与安卓控制端的8种模式相对应。根据接收到的WiFi信号中截取的数据决定选取哪个数组。74LSl38用于进行行选,对哪一行处于高电平进行控制,由单片机P3.0、P3.1、P3.2三个端口控制,由上到下顺序选取,每次选取一行。处于行和列高电平交叉点位置输出高电平,驱动继电器处于开启状态。由于74LSl38一个时刻只能选取一行,要控制整个8x8点阵则需要动态的扫描来实现。每当74HC595并行输出图形编码数组中的一个元素,74LSl38变换选取一行,每行持续15 ms。只要没有接收到关闭信号,此过程反复循环执行。松乐SRD-05VDC-SL-C电磁继电器机械切换速度最大是300 operation/min,即频率为5 Hz。当每个行的延时时间为15 ms时,扫描完8行时间为120 ms,扫描频率约为8.3 Hz,大于继电器最大切换频率,所以在74LSl38选取一行显示时,其他行处于短暂的低电平,也能够保持原有开关状态,不会因为扫描使继电器状态发生切换,满足了设计要求。
4实验验证
最后对控制的有效性进行了验证,在没有任何遮挡的室内体育馆内,将WiFi模块设置为AP模式,不经过路由器通过手机直接与其相连,在不同距离下反复发送100次控制命令,验证控制的有效性,记录测试数据如下:
由表格可见,在没有经过无线路由器,直接由手机和控制模块直接相连的情况下,在150 m范围能能够实现对灯光的稳定有效控制。随着距离增大WiFi信号稳定性减弱,当达到300 m时手机与开关控制模块断开连接。
对于较小的室内不经无线路由器可直接满足使用需求。对于空间较大且遮挡物较多的室内可以通过无线路由器作为中介,手机和开关控制模块通过无线路由器连接到同一网段网络中,即可实现有网即可控,则不受距离和障碍物限制。
5结论
点阵式灯光控制适用于灯源较多且排布整齐的场景,能通过安卓智能设备控制灯光的多种照明模式,可以根据对灯光的需求选用不同模式,既能达到节约能源的效果,又能使灯光照明更美观。不用再为了单独控制灯光而手动的扳动众多开关。使用安卓客户端即可实现简单快捷的控制,为控制灯光带来极大的便利。endprint