最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

当前位置: 主页 > 电子DIY > 综合DIY >

【转载】家庭用电小管家,我的智能小家居

时间:2017-05-10 21:42来源:网络整理 作者:haodiy 点击:
一 项目概述物联网的浪潮席卷全球,加之李总理的互联网+的提出与推动,全国都兴起了物联网与互联网的浪潮。本文,笔者将介绍一个我的家庭电能管家的项目。本作品

一 项目概述
物联网的浪潮席卷全球,加之李总理的互联网+的提出与推动,全国都兴起了物联网与互联网的浪潮。本文,笔者将介绍一个“我的家庭电能管家”的项目。
本作品,即家庭电能管家,综合考虑了传统电器的缺点,以及目前家用电器更换周期长的实际情况,开发了一套切实可行的方案来智能化和辅助控制传统电器,达到节能、辅助和防护的目的。采用智能插座收集电器的实时用电信息,将信息上传至服务器后,服务器根据其运行情况做出节电和辅助推荐,并在电器的异常状况下做出应对措施,及时反馈至用户的移动设备上,方便用户查看电器情况和用电量等信息。作品实验情况表明该系统可以为用户提供节能、辅助和安防作用,对目前的家庭均切实可行。
原料:Intel Edison开发板、路由器、220V转5V非隔离式电源、220V转5V隔离式电源、功率计量电路、光耦电路、XDK开发包
二 项目实现过程
【硬件篇】电源管理、功率采集供电模块
本系统选用广州爱浦电子公司生产的隔离式AC-DC电源模块,型号为WA3-220S05A3。该芯片可以实现220V交流市电转换到5V直流电。改芯片具有输出短路、过流、过热保护功能。工作温度范围-25℃~65℃。如图1所示,芯片左侧输入市电的火线(L)和零线(N),右侧输出5V直流电压。F1是保险丝,当电路电流过大时,保险丝自动熔断使零线断开,起到电路保护的作用。C1是100 μF的铝电解电容,耐压值为35 V;C2是1 μF瓷片电容,二者同时作为5 V电压的滤波电容,将交流分量引入地线,可以有效降低直流电源的纹波,提高电路的稳定性。

 

【转载】家庭用电小管家,我的智能小家居


图1 隔离式AC220V转DC5V电路
非隔离式电源部分选用MonolithicPower公司生产的MP150芯片,图2所示的典型电路图可以实现AC220V至DC5V的非隔离式Buck电路,输出电流理论可达到200 mA。
非隔离式220V转5V是面向功率计量电路供电的,而隔离式220V转5V电路是面向用户接口和主控模块供电的。

 

 

【转载】家庭用电小管家,我的智能小家居


图2 非隔离式AC220V转DC5V电路
系统供电模块还需要3.3V的电压用以提供数字芯片的供电电压,选用AMS公司的直流稳压芯片AMS117-3.3,来实现5V到3.3V的直流稳压功能。AMS117-3.3具有800 mA的电流输出,适用于电源稳压电路,输入输出电压差最低可到1V。如图3,SOT-223封装的AMS1117共有4个引脚,3脚VIN连接220V市电转换得到的5V直流电压,1号管脚VSS接地线,2号管脚和4号管脚内部短路,并将5V稳定在3.3V。C9是输入5V的滤波去耦电容,C10和C11是输出3.3V的滤波去耦电容。POWER_LED作为供电电源开启时指示灯,R16作为指示灯支路的限流电阻。

 

 

【转载】家庭用电小管家,我的智能小家居


图3 5V转3.3V稳压电路
功率计量模块
系统采用深圳合力为科技公司生产的功率计量芯片HLW8012。HLW8012为单相多功能计量芯片,满足50/60Hz IEC 687/1036标准的准确度要求,其提供高频脉冲CF用于电能计量和高频CF1用于指示电流有效值或者电压有效值。如图4所示,芯片采用5V直流电压供电,C4和C5为电源滤波电容,用来滤除来自电网的高频及低频噪声。网络标号L_RELAY为经过继电器的火线,可通过继电器控制L_RELAY是否连接到电网的火线上。
在HLW8012的电能采样端,P2(LOAD)为市电供电的电器负载,它与锰铜采样电阻RS(ResSample)串联,电流信号经锰铜电阻采样后接入HLW8012。电压信号则通过电阻网络(R5~R11分压网络)后输入到HLW8012。
在HLW8012的数字接口端,电能信息经片内压频转换电路从CF和CF1输出TTL电平的方波。CF的频率用于指示用电电器所耗用的有功功率,而CF1的频率用于指示用电电器的电流有效值(SEL=0)或者电压有效值(SEL=1)。本系统将SEL接地,由于CF和CF1输出的是高电平为5V的方波,但主控模块Intel Edison的电平标准为3.3V,所以CF和CF1首先要经过电平处理模块(光耦电路),将5V电平隔离转换为3.3V电平,才可以接到爱迪生的I/O口。爱迪生通过计算CF和CF1的频率便可以得到用电电器的电能信息,有关频率计功能的实现请参照我的第5篇试用报告。

 

 

【转载】家庭用电小管家,我的智能小家居


图4 功率计量电路
电平处理模块
上文提到的电平处理模块如图5所示,选用双通道光电耦合器实现5V电平方波到3.3V电平方波的转换。由于光耦输入输出以光电转换的方式实现电平转换,而无电气连接,所以可以实现隔离前后级的作用,使得前后级的输入输出阻抗和电压不会相互影响。
系统选用美国惠普公司光电耦合器HCPL-0630,该耦合器共有两个通道,其电路连接如图5所示。光耦左侧是一个发光二极管,当CF1和CF拉低是,发光二极管因导通而发光,R18和R19是限流电阻。光耦右侧是集电极开路三极管,所以需要在集电极通过电阻R20和R21连接到3.3V电压。当左侧二极管发光时(输入电平拉低),右侧三极管也对应导通(输出电平拉低);当左侧二极管熄灭时(输入电平抬高),右侧三极管也对应断路(输出电平抬高)。从而实现5V到3.3V的电平隔离与转换。

 

 

【转载】家庭用电小管家,我的智能小家居


图5 双通道光耦电路
电器通断控制模块
系统利用交流继电器来控制电器的通断,如图6所示。选用厦门宏发公司生产的交流继电器HF32FA-G 005-HSL1。额定电压250V,额定电流10A。继电器和整流二极管1N4007反向并联,可以有效防止继电器开合瞬间导致的电流逆流,防止烧坏电路元器件。继电器线圈电压为5V,将继电器放置在NPN型三极管S9013的集电极,基极通过1KΩ的限流电阻连接到主控MCU的I/O口作为控制端,实现小电平控制大电平的作用。
当MCU在三极管的基极输出高电平时,三级管道通,从而继电器处于闭合状态;而当MCU在三极管的基极输出低电平时,三极管截止,从而继电器处于断开状态。从而通过在网络标号为RELAY的I/O口施加高低电平,便可以控制继电器的开合状态,从而控制火线的通断。再配合WIFI模块,便可以实现远程控制电器开关的功能。

 

 

【转载】家庭用电小管家,我的智能小家居


图6 交流继电器电路
最后,硬件设计成熟的最后,当然少不了PCB的设计啦,OK,这个项目我真是下了大工夫,光底板的PCB图就画了3个版本,打样了3次,下面是3个版本的PCB图。
版本1 :

 

 

【转载】家庭用电小管家,我的智能小家居


版本2 :

 

 

【转载】家庭用电小管家,我的智能小家居


版本3 :

 

 

【转载】家庭用电小管家,我的智能小家居


最后的实物图:

 

 

【转载】家庭用电小管家,我的智能小家居


焊接上电子元器件后的正面:

 

 

【转载】家庭用电小管家,我的智能小家居


焊接上电子元器件后的反面:

 

 

【转载】家庭用电小管家,我的智能小家居


【软件篇】Intel Edison的socket编程、web、手机APP步骤1:功率采集
通过上文,我们已经知道,通过硬件电路的实现,我们已经把功率信息转换为频率信息。所以我们只需要让爱迪生实现一个频率计的功能,就可以测量出用电器的实时功率值。
代码:
var mraa = require("mraa");
var front_time = 0;
var back_time = 0;
var interval = 0;
var freq = 0;
var wave_begin = true;
var key = new mraa.Gpio(8);
key.dir(mraa.DIR_IN);
key.isr(mraa.EDGE_RISING, function(){
    if(wave_begin){
        var d = new Date();
        front_time = d.getTime();
        wave_begin = false;
    }else{
        var d = new Date();
        back_time = d.getTime();
        wave_begin = true;
        interval = back_time - front_time;
    }
});
//主循环
setInterval(function(){
    var d = new  Date();
    var time_now = d.getTime();
    if(time_now - back_time > 1500){
        //1.5秒超时,认为无信号,freq = 0 Hz
        interval = 0;
    }
    //计算频率
    if(0 == interval){
        freq = 0;
    }else{
        freq = 1000/interval;
    }
    console.log("The frequency is " + freq + " Hz");
}, 1000);
分析:
实验目的:通过外部中断和time时间戳来测量方波频率
原理:方波信号作为外部中断源,第一个上升沿(前沿front_time)到来时,爱迪生记录前沿时间戳;第二个上升沿(后延back_time)到来时,爱迪生记录后延时间戳。两个时间戳之差就是该方波的周期(注意时间戳的单位是毫秒哦!)。
在中断服务函数中记录方波前沿和后延对应的时间戳,在主循环中计算方波频率。设置超时时间为1.5秒(所以,测量最低范围是1/1.5 Hz),1秒钟打印一次测量频率。
现象:
我这边是通过CPLD输出了频率为100 Hz的方波信号,和爱迪生共地后连接IO8,观察实验现象:

 

 

【转载】家庭用电小管家,我的智能小家居


可以看到在控制台打印出了 方波频率!
步骤2:socket编程,网页设计,手机APP客户端:
通过html语言写一个静态网页,是这个样子的。

 

 

【转载】家庭用电小管家,我的智能小家居


相当于web前端开发,所以我们还需要用CSS和JavaScript来写两个文件。文件是在XDK的Demo程序里面改的,附件里可以看到工程文件。
服务器:
服务器这边我们用node.js语言开发,XDK里面有个Web Sockets的Demo,如下图所示,一次点击3个红色方框,就可以建立起一个Socket通信程序。

 

 

【转载】家庭用电小管家,我的智能小家居


在这个Demo中修改,来实现自己的功能。

 

 

【转载】家庭用电小管家,我的智能小家居


现象:
用户连接:可以显示当前和服务器(爱迪生)连接的客户端(网页)数量,从u0, u1, u2...以此类推。
开关状态:通过鼠标点击蓝色方框内的“开关”来切换开关状态。ON或者OFF。
实时功率:测量用电器的实时功率。
所以,我们的爱迪生完成了两个工作,1:采集用电器功率。2:充当socket通信服务器。监听它的某一个端口(本文设置为3000),浏览器访问爱迪生所在ip的3000端口,即可获取此页面。
这是我自己根据XDK Demo程序修改而成的工程,还很粗糙。我的学长也写了一个逼格更高的网页端和手机APP,在腾讯云上租用了一个公网服务器,有一个静态IP,我用爱迪生采集功率信息上传到腾讯云上,浏览器或手机APP即可向服务器索要数据,实现开关功能,和用电器功率计量功能。下面上图!
Web端:

 

 

【转载】家庭用电小管家,我的智能小家居


手机端:

 

 

【转载】家庭用电小管家,我的智能小家居

【转载】家庭用电小管家,我的智能小家居

 

 

【转载】家庭用电小管家,我的智能小家居


三 演示视频及项目总结
首先来几张安装示意图:

 

 

【转载】家庭用电小管家,我的智能小家居

 

 

【转载】家庭用电小管家,我的智能小家居

 

 

【转载】家庭用电小管家,我的智能小家居

 

 

【转载】家庭用电小管家,我的智能小家居


不会插入本地视频,我就把演示视频放在附件里面吧,供大家参考学习批评。
本项目如题所示,完成了一个完整软硬件系统。硬件部分包括电源管理、功率计量、PCB设计(涉及到开槽隔离等布线技巧)。软件部分包括socket通信编程,node.js, python, html, javascript, css, express等语言及框架。在试用的过程中,也学到了很多东西,希望分享给大家!

 

 

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容