李 阳
(贵州商学院,贵州 贵阳 550014)
随着现代化社会的不断发展以及电子电器设备的不断优化更新,越来越多的人开始关注用电安全的重要性,普通家庭住宅、公寓、集中性住宿场所等用电安全的检测越来越引起人们的重视,特别针对大功率用电设备的检测[1]。然而,传统的住宅用电监测方法主要采用人工检测的方式。该方式存在检测效率低、报警不及时、人工成本高等明显缺陷。同时,人为疏忽和注意力不集中等不可控因素,很可能导致误判、遗漏以及检测数据不准确等后果。如今,数据的准确性和及时性对于数据反馈阶段仍然非常重要。传统的检测方法已不再适用。用电监测数据需要借助无线通信设备实时上传[2]。通过以上背景分析,针对家庭住宅、公寓、集体宿舍的远程电源控制系统具有实际应用意义。
远程电源控制系统采用单片机技术和WiFi通信技术来实现远程监控的功能,保证住宅的用电安全,减少事故的发生。当电源控制系统检测到住宅中存在超标的大功率设备运行时,用户可立即切断电源,保证住宅安全的同时也提高了住宅供电控制的智能化水平。
该系统的实现需由硬件和软件两部分配合。其中,硬件部分利用单片机及传感器测量电能参数,并通过无线网传输数据至远程的手机应用中,以实现用户对电源的远程控制。系统总体设计方案如图1所示。
图1 远程电源控制系统总体设计方案
此设计中,电能计量模块通过IM1281B传感器采集电压(U)、电流(A)、功率(P)等数据信息,再由STC89C51单片机进行数据收集和处理,并且通过串口通信,驱动LCD12864液晶显示器实时显示电源的相关电能信息及功率限值。单片机连接WiFi模块。WiFi模块会将数据无线传输至阿里云服务器数据库,将电压(U)、电流(A)、功率(P)信息及功率限值等相关数据存储下来。手机App端通过无线网络访问阿里云服务器数据库,将电能信息及功率限值实时显示在手机应用端界面上,以达到远程监控的目的。
用户可在手机App端输入控制指令,通过无线网络传输到云服务器,然后服务器发送指令给单片机。单片机接收指令并作出响应,控制电磁继电器模块,从而实现远程控制电源开关和限制功率的功能。当检测到电源电路的实际功率超过设定的阈值,将启动报警机制,激活蜂鸣器,手机应用程序进行报警提醒[3-6]。
硬件部分基于单片机技术实现,主要包括单片机控制模块、电能计量模块、WiFi通信模块、蜂鸣器报警模块、继电器驱动模块以及相应的按键、电源指示灯、显示屏等。硬件部分组装后的成品如图2所示,图中所标注模块如下。
1:LCD12864液晶显示屏[实时显示电流(A)、电压(U)、功率(P)];
2:蜂鸣器[当电路总功率(P)超过设定的功率阈值时,蜂鸣器发出警报];
3:STC89C51单片机芯片(控制各个模块协调工作、处理数据等功能);
4:电磁继电器(实现电源控制系统中电源的接通和断开功能);
5:电能计量模块[收集电源电路中的电流(A)、电压(U)、功率(P)等数据];
6:电容、变压器(保护各个模块正常工作);
7:电源接入口(接入总电源);
8:电源输出口(输出总电源);
9:电阻(保护电路正常工作)。
图2 硬件模块组装
该模块选用STC89C51单片机芯片,搭配晶振电路和复位电路实现预期的功能。STC89C51单片机拥有8K字节FLASH和512字节RAM以及32位I/O口线。STC89C51单片机拥有丰富的端口数量和强大的处理器性能,能够满足多种场景下的开发需求。在本系统中,STC89C51单片机主要用来接收采集端的数据,进行数据处理,控制后方电路做出响应。
电能计量模块选用IM1281B作为采集芯片,可实时测量电力参数,包括测量电源电压(U)、电流(A)、功率(P)等数据。IM1281B通过内部集成的电流互感器和电压互感器,利用互感原理,采集在电感器上感应出来的电压、电流数值,再换算出被测电路的电压(U)电流(A)数值,通过串口将采集的电压(U)、电流(A)、功率(P)数值传输至单片机接收。
IM1281B芯片的TX管脚连接至单片机的RX管脚,使用数据线束将IM1281B芯片的RX管脚与STC89C51单片机的TX管脚,传输电能数据。
在本设计中,WiFi模块与主控芯片之间使用数据线连接通过串口进行数据通信。WiFi模块建立一个通信网络实现数据连接,主控制芯片和手机应用程序能够检测数据上传,也可以接收远程控制指令。采用ESP8266芯片,更常用于各种各样的通信系统,特别是物联网系统,芯片支持用户分享自建热点,同时可以长距离传输,传输延迟低,保证数据通信的质量。本系统的无线通信主要使用AP模式,ESP8266内置TCP/IP堆栈,可以实现点对点连接。
ESP8266芯片的RX,TX管脚分别与单片机的TX,RX管脚相连接。
蜂鸣器主要用于报警。当采集到的功率(P)数据超出设定的功率限值时,蜂鸣器报警提醒。蜂鸣器选择有源蜂鸣器。只要蜂鸣器两端通上电源即可鸣叫,考虑单片机的驱动能力不足,电路上可以增加三极管进行电流的放大。
电磁继电器在本系统中用于实现电路的断开与闭合的控制功能。当电磁继电器闭合时,指示灯点亮显示电路连通;当电磁继电器断开时,指示灯熄灭电路断开。
本系统的软件部分设计采用总分总的架构,首先针对功能需求进行模块划分,然后编辑主程序流程图,理清函数间的调用关系,完善子程序设计,最终完成整体软件程序调试。本系统的软件设计用到KEIL开发平台和HBuilder对系统进行软件设计以及系统程序的编写。
在系统主程序设计中,设计人员应做好对初始参数的定义及相关端口设置。在程序开始阶段,执行整体初始化函数,显示模块显示初始界面。调用电量采集程序,分别读取传感器采集的电源电压(U)、电流(A)、功率(P)信息,必要时,需要引用A/D转换函数,由单片机将显示内容输出到液晶模块,实时显示电源电压(U)、电流(A)、功率(P)信息及功率限值。程序调用串口并发送指令,利用WiFi模块建立的WiFi网络将通过电能计量模块采集到的电源电压(U)、电流(A)、功率(P)信息无线传输至手机App端,并进行显示。系统通过调用if判断函数,判断功率(P)是否超过设定的阈值。如果功率(P)超过设定的阈值,则会启动报警程序并将报警信息发送到应用程序进行报警显示。确定手机App应用程序的控制命令是否已经成功发送。如果收到指令,单片机将驱动电磁继电器工作,切断电源,电源开关指示灯熄灭。主程序调用按键扫描程序并判断键码,然后调用键码处理程序,完成设置功率限值设定及控制电源开关功能。执行完上述流程之后返回主函数,继续循环检测。系统主程序流程如图3所示。
图3 主程序流程
3.2.1 显示屏程序设计
显示屏程序中,通过调用显示函数实现显示电压(U)、电流(A)、功率(P)信息及功率限值的目的。程序在编码时,需要设定好读时序和写时序函数,在初始化函数内定义清楚。程序开始时,调用清屏函数进行清屏操作,然后执行LCD屏初始化,确认坐标显示字符。将传感器采集的电量参数进行显示,程序将需要显示的内容通过写函数和字符串指令的方式输入函数。程序每隔一段时间刷新显示以更新数据。
3.2.2 电源电量采集程序设计
在电量采集程序中,初始化配置传感器。电能计量模块IM1281B通过传感器采集电源电压(U)、电流(A)、功率(P)信息。将数据传输给单片机后,单片机芯片调用内置的程序判断是否超过预设定的极限阈值。
3.2.3 WiFi通信程序设计
本系统中的WiFi通信模块内置了IEEE802.11b.g.n协议栈以及TCP/IP协议栈无线网络协议。系统运行时,主控单片机芯片通过WiFi通信模块搭建的通信网络实现与手机App端的连接,并进行数据传输。在WiFi通信程序中,建立的无线通信网络能够将检测数据上传,也能接收远端的控制指令。本系统主要应用了WiFi通信模块的AP模式,在配置WiFi网络阶段,通过调用AP配置函数进行网络配置。在中断函数内,程序等待中断信号触发串口网络,然后通过WiFi网络将电能模块上传感器采集到的相关数据传输至阿里云服务器数据库,然后再由云端数据库将数据通过无线传输的方式传输到手机App端显示。
在远程电源控制系统完成搭建后,对系统相关功能进行测试,测试过程包括硬件连接测试、系统功能测试,以确保系统实现预期的功能。
根据硬件设计,完成实物连接,连接后需要对系统中的硬件设备进行首次上电检测。在此,使用万用表作为检测工具。上电测试的检测原则采用总分总方式,分别针对系统供电模块和各模块的输入电压进行检测。整个系统上电后,针对电源输入电压进行检测,保证输入端电压正常。依据器件的规格书要求,分别针对各模块的输入电压进行检测,检测电压满足规格书允许的偏差范围,才属于正常情况。完成以上步骤,代表系统上电测试正常。
硬件连接无误后,对系统功能进行测试。将该系统接通电源后进行上电操作,LCD液晶显示屏屏幕会实时显示电源的电流(A)、电压(U)、功率(P)信息和功率阈值。单片机模块通过驱动WiFi模块将电能模块采集到的数据传输至手机App端。通过手机App进行WiFi连接设置,分别设置好相应的IP地址和端口号后,点击连接,然后可以观察到App提示连接成功。完成后,可观察到电源的功率(P)、电压(U)和电流(A)的实时数据。当功率(P)超出预设的功率限值时,蜂鸣器鸣叫发出警报,手机App的报警状态提示报警,本次测试共测试10组数据,功能均正常,符合预期,测试数据如表1所示。功率超标报警功能成功实现。
表1 报警功能测试
通过上述操作,针对拟定的测试计划及方案进行各项功能验证,本系统实现了预期的测试结果,测试数据准确无较大误差,达到预期的目标。测试过程出现过传感器采集的数据不准确、测量数据偏差较大的问题。在实际检查后,发现是由于信号管脚焊接不牢固所致,重新进行管脚焊接后,解决了该问题。通过上述各项性能测试,本次软件测试结果符合预期的功能要求。在功能优化方面,可以考虑增加语音播报功能,对当前的电压(U)、电流(A)、功率(P)检测数值进行实时播报功能,为了使整个系统更具有实用性,需要在输出端增加控制模块,使数值控制在合理范围,更符合市场需求。
计算机网络和无线通信技术正迎来蓬勃发展的时期,相关技术的应用也极大地改变着人们的生活方式。人们在生活上对智能化的需求也日益增长。本文中设计的远程电源控制系统,利用无线WiFi技术进行通信,实现对住宅和家居电源的远程检测及控制。用户平时可通过手机App端对家中的用电情况进行监控。在离家时,可设置相应的用电功率阈值,当住宅用电功率出现异常,超过此阈值时,将会通过无线网对远程的手机端进行通信,并在手机App上进行报警。接到报警后,用户可在手机上对电源进行远程一键断电的操作,以保证住宅用电的安全。