基于WiFi的照明控制系统设计与实现摘要:基于ESP8266无线WiFi模块,并结合Android智能移动终端,文中设计了一款可通过无线网络实现开、关灯的照明控制系统。关键词:WiFi;照明;控制;ESP8266;Android中图分类号:TP393.1文献标识码:A文章编号:2095-1302(2017)06-00-020引言随着网络技术、软件技术、控制技术的发展,智能化应用技术得到了不断进步。智能照明就是一种典型的智能化应用。随着社会需求的不断变化,传统的照明控制方式由于需要使用者近距离操作照明设备开关,给使用者带来诸多不便,因此已无法满足人们日益增长的需求。人们更希望通过现在广泛应用的WiFi无线网络,利用随身携带的手机、平板电脑等移动终端来对家用电灯等照明设备进行开关操作。本文基于这项需求,设计了一款在WiFi环境下可使用智能手机等移动终端设备进行开关灯操作的照明控制系统。1系统总体设计本系统的设计主要包含WiFi局域网接入节点、WiFi灯光控制节点和移动终端软件设计。其中WiFi通信部分由ESP8266模块实现。ESP8266采用乐鑫智能互联平台提供的ESP8266无线WiFi模块,拥有高性能无线SOC,使无线平台的开发设计变得实用、方便。ESP8266为系统提供了一个完整且自成体系的WiFi网络解决方案,能够独立运行、处理相关指令。作为控制系统的主要芯片,ESP8266还具有透明传输功能,可通过无线网络接收数据,却不修改数据,直接传送到下一端,使得接收方接到数据内容和长度一致的数据,在传输过程中保证了数据的准确性[1]。ESP8266模块可配置成Station(客户端)、AP(接入节点)、Station+AP三种模式,即ESP8266模块可作为一个设备(Client)连接区域网内的路由,也可设置成一个路由(Sever),既作为局域网里的Client同时又是其他Client的Sever。系?y的总体工作过程如图1所示。(1)WiFi局域网接入节点。接入节点是控制信号进行传输的载体,接入节点使各系统之间建立稳定、良好的信道。本文将一个ESP8266模块设置为AP工作模式,作为局域网的接入节点。(2)WiFi灯光控制节点。该节点主要由ESP8266模块构成。本文将每一个控制灯的ESP8266模块设置为Station工作模式,用以接受用户的目标指令,并向所控灯传输开、关控制信号。(3)移动终端软件。基于Eclipse软件环境进行Android应用软件的开发,该软件在用户使用过程中相当于照明灯的遥控器。2WiFi接入节点的实现通过串口调试助手等软件工具向ESP8266模块发送AT指令,将模块设置为AP工作模式。具体分为如下几步:(1)发送命令“AT+RST”使模块重新启动,等待模块响应“OK”后,再进行下一步设置。(2)指令“AT+CWMODE=”用于设置ESP8266模块的工作模式,其中MODE=1表示Station模式;MODE=2表示AP模式;MODE=3表示AP兼Station模式。此处,需要发送命令“AT+CWMODE=2”将模块设置为AP模式。等待模块响应“OK”之后,再发送命令“AT+RST”使得模块重启后设置生效。等待模块再次响应“OK”后,模块的AP模式已经开启,然后进行下一步设置。(3)指令“AT+CWSAP=,,,”用于设置AP模式下的参数,其中SSID为字符串参数,用于表示接入点的名称;PWD为字符串参数,用于表示密码,密码限制在64字节以内;CHL表示通道号,ECN的取值及功能见表1所列。发送命令“AT+CWSAP=“LampControl”,“123456”,11,0”,待模块响应“OK”后,就可在手机、平板电脑或计算机中通过无线网卡连接到接入节点,之后再进行下一步设置。(4)指令“AT+CIPMUX=MODE”用于启动连接,其中,MODE=0为单路连接模式;MODE=1为多路连接模式。指令“AT+CIPSERVER=MODE,PORT”用于设置服务器,其中MODE=0为关闭服务器模式;MODE=1为开启服务器模式,PORT为端口号,缺省值为333。只有在开启多连接模式时才能开启服务器模式。发送命令“AT+CIPMUX=1”,待模块响应“OK”后再发送命令“AT+CIPSERVER=1,8080”,待模块再次响应“OK”后就可通过网络调试助手在“TCPClient”模式下添加“IP:192.168.4.1(模块默认IP),端口8080”。至此,WiFi接入节点已设置成功。3WiFi灯控节点的实现通过串口调试助手等软件工具,向ESP8266模块发送AT指令,将模块设置为Station工作模式。(1)发送命令“AT+RST”使得模块重新启动,待模块响应“OK”之后,进行下一步设置。(2)发送命令“AT+CWMODE=1”,将模块设置为Station模式。待模块响应“OK”后,再发送命令“AT+RST”使得模块重启后设置生效。当模块再次响应“OK”,则模块的Station模式已经开启,可发送命令“AT+CWLAP”查看当前可用的网络接入点。(3)指令“AT+CWJAP=,”用于加入网络,其中SSID为要加入的网络名称,PWD为密码。发送命令“AT+CWJAP=”LampControl“,”123456“”连接到网络中。待模块响应“OK”后,发送命令“AT+CIFSR”可查看本机的IP地址,若能查看到IP地址则表示本节点已经正确和AP节点相连。(4)发送命令“AT+CIPMUX=1”打开多路连接。(5)指令“AT+CIPSTART=,,,”用于建立TCP连接或注册UDP端口号,其中ID为0~4的连接编号,TYPE为字符串参数,设为“TCP”时表示建立TCP连接,设为“UDP”时表示建立UDP连接,ADDR为字符串参数,表示远程服务器的IP地址,PORT为远程服务器的端口号。发送命令“AT+CIPSTART=0,”TCP“,”192.168.4.1“,8080”建立灯控节点和接入节点之间的TCP连接。待响应“OK”后则表示连接成功。(6)指令“AT+CIPSEND=,”用于向指定ID发送指定长度的数据。模块收到此命令后先换行返回“”,然后开始接收串口数据,当数据长度满足LENGTH时发送数据,如果数据发送成功则返回“SENDOK”。发送命令“AT+CIPSEND=0,8”并发送数据“12345678”给接入节点。4Android移动终端软件设计使用AndroidSDK、JDK、ADT、Eclipse等工具开发手机客户端控制软件[2]。手机客户端控制软件的界面设计主要使用ToggleButton控件或RadioButton控件以方便用户对灯进行开关操作。为控件添加事件响应,当用户操作软件时,将开、关灯的信息发送给WiFi接入节点[3]。核心代码如下:Socketsocket=newSocker(192.168.4.1,8080);OutputStreamos=socket.getOutputStream();os.write(LampOn);os.close();socket.close();5系统测试连通灯的控制电源,将灯控节点接入预定的WiFi网络,将手机也接入同一WiFi网络,操作手机中的控制软件,成功实现对灯的开、关操作。6结语本文设计了一种在WiFi环境下,可在装有Android系统的移动终端上通过软件操作,实现对灯的开关操作的无线照明控制系统。文中详细介绍了系统设计思路、实现方法,并通过测试证明了系统的有效性。参考文献[1]唐远鸿,李岩,李菲,等.基于WiFi?h境下LED照明智能化控制系统的设计与实现[J].科技视界,2016(9):46-47.[2]缪贤浩.基于WiFi的mp3音乐播放系统设计[J].山东工业技术,2016(4):197.[3]李刚.疯狂Android讲义[M].北京:电子工业出版社,2013.[4]王润民,王健.基于ZigBee的道路照明智能控制系统的设计[J].物联网技术,2014,4(12):56-58.[5]何永玲,吴耀龙.基于WiFi和移动终端的智能照明控制系统设计[J].物联网技术,2016,6(12):102-104.[6]梁霄霄.基于WiFi和LED照明控制系统的研究与实现[D].杭州:杭州电子科技大学,2014.[7]王立斌,段子荷,安思达,等.基于WiFi的大型库房照明控制系统设计[J].河北电力技术,2016,35(3):19-20.[8]王群锋.基于无线网络的智能照明系统研究[D].郑州:郑州大学,2012.