摘 要:研究了一种基于WiFi感应的智能电源管理系统,可自动判断室内是否有人,并根据场景对不同的电源插座进行智能控制。该系统由无线路由器荣耀立方、定制设计的电源插座和无需安装额外APP的智能手机组成。荣耀立方是整个系统的监测控制中心,通过第三方APP的方式增加了实时监测手机的WiFi连接状态,根据WiFi连接状态判断室内是否有人,并对电源插座发送有人或无人的控制信号。电源插座接受荣耀立方的控制信号,并对不同类型的电器设备的电源进行差异性控制。实验表明,该系统具有自动感应和动态调节特点,适用于家中或办公室,不仅节约电能,还可以防止个人隐私地漏的风险。
关键词:WiFi;无线路由器;电源插座;手机;电源管理
随着科技的进步,不断增加的电器使用量会不可避免地产生了许多不合理的电器使用。例如,厨房的热水器和办公室的电器等通常都是常开的。在晚上或者无人的时候,这些常开或待机的电器设备不仅会累计消耗许多不必浪费的电力资源,还存在一定的安全隐患。另外,一些安防摄像头被安装在室内,虽然可以保障室内物品或人员安全,但也存在个人隐私泄露的风险。因此,对室内数量众多的电器设备的电源进行日常控制和管理是一项必要和繁琐的事情。
在国内,很多智能插座和电源控制系统的研究似乎已经为上述现象提供了解决方案[1-4]。但大部分研究关注控制终端与控制节点之间的网络架构,但控制方式仍然以手动控制为主。使用者必须手动通过智能手机中定制的APP才能对智能插座或者控制节点进行远程控制。显然,这种手动控制的解决方案难以解决日常室内电源管理的问题。但陈思运等人通过集成多传感器的可穿戴设备可以实现室内用电设备的电源的自动管理[5]。在国外,MEHREEN et al将智能插座与物联网结合在一起,通过云服务器分析智能插座反馈的电器设备的用电数据,并根据用电数据判断电器设备的工作状态,可以实现对智能插座自动控制[6]。LABEODAN et al利用热释电传感器和机械接触开关组成传感器网络,监测办公室的人员数量,动态控制办公室的照明系统[7]。GUL和PATIDAR通过对大楼的能耗和人数监测优化大楼的能源管理策略[8]。因此,室内用电设备的日常电源管理完全可在传感器的辅助下自动运行。
室内电器设备的电源控制逻辑其实很简单。当有人时,电器需正常使用;当没人时,则需断开电器的电源。因此,自动判断室内有人无人是实现智能室内电源管理的首要问题。现有方法可以分别利用热释电传感器、红外对射传感器、图像识别、GPS定位和ZigBee感应等实现。热释电传感器的方法最简单,但仅能对一定距离内移动的人产生响应,具有很大的局限性,一般需要其他传感器的辅助[7]。红外对射传感器的方法通过两对红外对射传感器监测进出人数,从而计算室内是否有人[8]。但该方法存在一定的误差率,适用于可单人通过的房间。图像识别的方法则利用摄像头采集人进出门口的图像,通过图像识别计算进出的人数,进而判断室内是否有人[9]。该方法的成本相对较高,适用于人流量大的场所。GPS定位的方法利用智能手机内的GPS传感器提供手机使用者的位置信息,通过该位置信息确定使用者是否在特定区域[5,10]。该方法需要在智能手机安装定制的APP,对手机有一定的要求。ZigBee感应的方法通过由人随身携带的便携式ZigBee装置和固定在房间内的ZigBee网关协同工作来实现[11]。当人携带便携式装置离开网关辐射的通信范围,便携式装置与网关之间的通信中断,则认为人离开了该房间;反之,则认为人在该房间。但该方法需要人额外携带便携式装置才能工作,适用于宾馆会所等区域。
如今,智能手机和无线路由器已经基本普及。手机作为人们在生活和工作中的工具,通常都被人们随身携带。当人们回到家或办公室中,手机通常会自动与室内的无线路由器的WiFi网络相连接。反之,当人们离开后,手机也会自动与无线路由器的WiFi网络断开。因此,本文研究了一种基于WiFi感应的智能电源管理系统,利用无线路由器自动判断室内是否有人,从而实现智能室内电源管理,具有智能感应、动态调节、能够自动完成日常差异性电源管理等优点。
1 基于WiFi感应的智能电源管理系统
基于WiFi感应的智能电源管理系统由无线路由器、手机和电源插座三部分组成。其中,无线路由器是整个系统的监测控制中心,不仅提供上网所需的WiFi网络,还实时监测手机的WiFi连接状态,通过WiFi连接状态判断室内是否有人,并在有人或者无人的场景下对电源插座进行智能控制。手机是具有WiFi连接功能的手机。由于现在手机都具有自动连接WiFi网络的功能,因此,该系统中的手机无需安装任何APP。电源插座是为电器设备供电的控制节点,通过WiFi网络接受并响应无线路由器的控制指令。该系统的基本工作原理为:当人携带手机回到家中或办公室,手机自动与室内无线路由器的WiFi网络相连接时,无线路由器认为室内有人,通过WiFi网络通知电源插座为电器设备供电,如图1(a)所示。而当人携带手机离开后,手机自动与无线路由器的WiFi网络断开,无线路由器则认为室内无人,通知电源插座关闭电源,如图1(b)所示。
图1 工作原理示意图
Fig.1 Schematic diagram of working principle
2 无线路由器和APP程序设计
该系统中的无线路由器采用华为公司的荣耀立方WS860s,如图2(a)所示。荣耀立方是华为公司在智能家居领域开发的第一款概念产品,集成了两颗双核处理器,由运存和内存分别为1G RAM和4G ROM,内嵌安卓操作系统,提供了WAN,LAN,HDMI,USB和SD等接口。荣耀立方将智能路由器和安卓系统的功能整合在一起,如图2(b)所示。智能路由器是一个封闭的Linux系统,支持2.4 GHz/5 GHz双频千兆WiFi。而安卓系统是一个开放系统,版本为4.2.2,支持播放器、电视盒子和第三方APP扩展等功能。因此,荣耀立方WS860s不仅提供了本系统所需的路由和网络交换的功能,而且为本系统实现自动监测手机的WiFi连接状态等功能提供了所需的硬件和软件平台。
图2 荣耀立方WS860s
Fig.2 Honor Cube WS860s
荣耀立方上的第三方APP可通过Android Studio开发工具使用JAVA语言编写实现。第三方APP为荣耀立方增加了实时监测用户手机的WiFi连接状态,并自动向本系统的电源插座发送控制命令等功能,具体实现的流程如图3所示。其中,由于智能路由器和安卓系统相互独立部分,在安卓系统上运行的第三方的APP需使用荣耀立方开放的接口函数,才能调用智能路由器的功能和资源[12]。因此,若要获取手机与荣耀立方的WiFi连接数量,就必须通过荣耀立方的SDK中的接口类GatewyApplication调用get接口函数,才能获取网关接入网络设备信息[13]。而返回的字符串包含了所有连接过该荣耀立方的设备名称、类型、Mac地址和是否在线等接入设备的信息。因为曾经连接过,但当前尚未连接的设备的状态是离线状态,APP还需从返回的字符串中筛选出所有在线的手机的数量,才能准确地获取用户手机连接数。荣耀立方和电源插座之间利用基于TCP协议的Socket套接字进行通信。荣耀立方是服务器端,电源插座是客户端。APP需使用java.net.ServerSocket类创建一个具有特定端口的服务器对象。由于1024后的端口可自由选择,这里创建的服务器的端口为6354。为了实现荣耀立方能够对多个不同的电源插座建立连接,服务器对象serverSocket需利用多线程的方式调用accept()方法启动监听,等待电源插座的连接请求。accept()方法为每个向服务器对象请求连接的电源插座返回一个对应的Socket对象。APP将通过该Socket对象分别调用getInputStream()方法和getOutputStream()方法与各个电源插座实现双向通信。除此以外,该APP在系统初始化中还创建了一个交互界面,用户可通过电视或显示器查看用户手机连接数和继电器闭合的路数,并可手动对电源插座进行控制。
图3 自动监测是否有人和控制电源插座的APP流程图
Fig.3 Flow diagram of APP for monitoring automatically whether there are people and controlling the power socket
3 电源插座的硬件和固件设计
电源插座的硬件电路通过4个独立的模块搭建而成,分别是单片机模块、WiFi模块、继电器模块和电源模块,如图4所示。其中,单片机控制电路是一个基于单片机ATmega328的Arduino Nano开发板。ATmega328为美国Microchip公司的8位AVR单片机,集成了32kB闪存、1kB EEPROM和2 kB SRAM,支持UART、I2C和SPI串行通讯。Arduino Nano开发板为ATmega328配置了16 MHz晶振和复位电路,引出了8路模拟量输入引脚和12路数字量引脚(其中包括ICSP串行编译接口),提供了电源转换电路,还增加了FTDI公司的USB转UART接口芯片FT232R,使单片机可通过USB接口与电脑通讯。WiFi模块采用基于ESP8266的UART-WiFi模块ESP-01.ESP8266是我国乐鑫公司的低功耗WiFi芯片,内置TCP/IP协议栈,支持无线802.11 b/g/n标准,三种工作模式(STA/AP/STA+AP)和AT指令。由于ESP8266高度集成了Tensilica 处理器、标准数字外设接口、天线开关和功率放大器等,ESP-01仅需很少的外围元件,使可以实现数据通过串口转成WiFi信号的透明传输。同时,ESP-01采用板载PCB天线,体积小巧,仅14.3×24.8 mm。这里,ESP-01和Arduino Nano通过串口相连。继电器模块是四路带光耦隔离继电器模块。该模块可通过跳线单独设置每一路继电器的高/低电平触发方式,并且将每路继电器的常开、常闭和公共引脚通过接线端子引出。每路继电器的常开接口的最大交流和直流负载分别为AC 250 V/10 A和DC 30 V/10 A。继电器模块的4路高低电平触发选择端分别与Arduino Nano的4路数字量引脚相连;每路继电器都通过跳线选择为低电平触发方式。四路继电器的常闭合公共接口分别与四个导轨插座的接入端相连。电源模块是AC-DC开关电源,外接交流220 V电源,将交流220 V转换为5 V和3.3 V,分别为单片机模块、WiFi模块和继电器模块供电。图4是电源插座的结构图。上述4个模块都被整合在一个外壳里。外壳露出4个导轨插座,可连接四路电器设备的电源。
图4 电源插座的结构图
Fig.4 Structure diagram of power socket
Arduino Nano的ATmega328是电源插座的控制中心。ATmega328的固件程序通过Arduino IDE编译器使用C语言编写而成,具体流程如图5所示。首先,为了使ATmega328能够与ESP-01通过串口通信,单片机初始化需对串口的波特率配置为9600,其他串口属性默认不变。然后,ATmega328需通过AT指令对ESP-01的ESP8266进行配置,使ESP8266在AP+Station模式工作,并将WiFi接入点的名称和密码配置为荣耀立方的WiFi名称和密码,通讯协议为TCP协议,通信的IP地址为荣耀立方的默认IP地址(192.168.3.253),端口为6354以及传输模式为透明传输模式等。配置后,WiFi模块将与荣耀立方通过WiFi连接,等待接受荣耀立方的控制指令,并将接受到的控制指令直接通过串口发给ATmega328。ATmega328根据控制指令,配置数字引脚的高低电平使继电器模块响应,为不同的用电设备供电或断电,并返回继电器模块的状态。
图5 ATmega328的固件程序流程图
Fig.5 Flow diagram of firmware of ATmega328
4 系统测试
为了验证该系统的实际效果,使用4个灯泡代替不同类型的电器设备与电源插座相连,并且将荣耀立方与液晶显示器相连,如图6(a)所示。当整个系统中仅荣耀立方上电工作时,荣耀立方提供了WiFi网络,手机可连接到荣耀立方的WiFi网络。由于电源插座尚未上电工作,插座上的灯泡都没有亮,同时电源插座也没有与荣耀立方通过WiFi连接。显示器显示APP已运行,但不能正常工作,等待电源插座的接入,如图6(b)所示。
图6 测试结果
Fig.6 Test result
当电源插座上电工作,电源插座自动与荣耀立方通过WiFi网络相连接,荣耀立方上的APP进入工作状态。此时,由于手机已经连接了荣耀立方的WiFi网络,如同人携带手机(手机的WLAN开关状态为开)回到家,手机会自动与荣耀立方的WiFi网络相连接,APP上的用户手机连接数大于零。根据用户手机连接数,APP向电源插座发出“有人模式”的控制指令;电源插座给代表有人时使用的设备的灯泡供电,将代表无人时使用设备的灯泡断电,并保持给代表常开设备的灯泡供电,如图7(a)所示。电源插座向荣耀立方返回继电器状态,APP则根据继电器状态更新状态变量,并通过显示器的界面显示用户手机连接数为1,供电路数为3,如图7(b)所示。
图7 当有人时,电源和APP的状态
Fig.7 State of power supply and APP when there are people
当手动关闭手机的WLAN开关,模拟人携带手机(手机的WLAN开关状态为开)离开家,手机会自动与荣耀立方的WiFi网络断开,APP上的用户手机连接数恢复为零。APP向电源插座发出“无人模式”的控制指令,电源插座给代表无人时使用的设备的灯泡供电,将代表有人时使用的设备的灯泡断电,并保持给代表常开设备的灯泡供电,如图8(a)所示。这时,由于没有手机与荣耀立方通过WiFi
相连接,APP的界面上的用户手机连接数变为0,供电路数为2,如图8(b)所示。
图8 当无人时,电源和APP的状态
Fig.8 State of power supply and APP when there are no people
5 结论
针对家里或办公室中的电器设备日益增多而导致节能和安全方面的问题,提出了一种基于WiFi感应的智能电源管理系统,为室内日常电源自动化管理提供了一种解决方案。该系统将无线路由器作为整个系统的控制中心,通过对无线路由器荣耀立方的二次开发,使其能够实时监测手机与无线路由器的WiFi连接数,并根据WiFi连接数判断家中是否有人,通过电源插座对高耗能电器或安全监控设备的电源进行差异性控制,不仅节省了无人时不必浪费的电力资源,而且防止在有人时视频监控引起的隐私泄露。目前,该系统尚处于对功能验证的雏形设计,将来还会根据智能家居领域的实际需求,进行不断地改进和优化。