×

智能电源板开源分享

消耗积分:5 | 格式:zip | 大小:0.00 MB | 2023-06-26

俞舟群

分享资料个

描述

 

 
pYYBAGNfLTWAAub2AAGGPH0c5nU893.jpg
现在的插座,直到我得到一个更大的继电器板
 

我决定制作更智能的智能电源板,因为担心我的妻子会跳闸电源板上的断路器,为我的所有电子设备(计算机、NAS、电缆调制解调器、路由器、媒体中心、电视、外置硬盘等)供电。用她的头发干燥/卷发的东西。到目前为止,我的妻子还没有设法使断路器跳闸,但我认为她已经接近它了。只要她没有同时使用卷发器、熨斗和加热吹风机,我就安全了,但我不想冒险。

显着特点

Smarter Smart Power Strip 目前的特点:

  • 个别插座将关闭它们各自的电流消耗高于阈值。
  • 优先插座关闭。当所有插座的总电流消耗高于阈值时,具有较高优先级的插座将保持打开并关闭较低优先级的插座。因此,在我的用例中,我妻子的熨斗和烘干机将关闭以保持我的基本电子设备开启。

指示

我正在使用运行 Android Things 的 PICO-PI i.MUX6 作为电源板的大脑。最初我试图从这个板上运行所有东西,但需要卸载读取传感器和计算电流 RMS 到 Arduino。PICO-PI 从 Arduino 读取数据并确定是否关闭继电器。

由于缺乏资源,这个项目只适用于 2 个插座,因为我手头只有一个 2 继电器板。但我已经编写了代码,只需根据需要进行少量修改即可轻松完成更多任务。

将 Arduino 项目 https://github.com/bbtinkerer/I2C_ACS712/tree/master/Arduino/I2C_ACS712 闪存到 Arduino。如果您愿意,可以更改 I2C 地址。该项目只是不断读取 ADC0 和 ADC1 并计算将连接到这些引脚的 ACS712 20A 的 RMS 值。Arduino 通过 I2C 向其请求数据时返回 4 个字节。前 2 个字节采用 MSB 格式,表示连接到 ADC0 的传感器的电流(以毫安为单位)。第二个 2 个字节是第二个传感器。

为了避免在开发过程中使用带电的电源线,我关闭了带有 10K 电位器的 ACS712 传感器。这些电位器可以模拟 ACS712 传感器报告的内容。

 
 
 
 
pYYBAGNfLTiAbe5_AAHLYEi9vC0501.jpg
 
1 / 3
 

通过 I2C 将 Arduino 连接到 PICO-PI。此外,确保将 PICO-PI 接地引脚连接到 Arduino 的接地引脚。

将 5V 电源连接到 Arduino 5V 引脚。确保您使用的是稳压 5V 电源,因为您通过这种方式为 Arduino 供电来绕过 Arduino 的安全电路。

将 5V 连接到继电器板。

将继电器板的接地连接到 PICO-PI 或 Arduino。

我使用 ULN2803 Darlington 阵列来帮助激活继电器板。我有 2 个相同的继电器板,其中一个可以直接连接到 PICO-PI,另一个不能。与其猜测哪个板可以直接连接,我宁愿只使用一个达林顿阵列。

将电源连接到 ULN2803 芯片。

将 PICO-PI 的引脚(GPIO1_18 和 GPIO4_19)连接到 ULN2803 芯片的输入引脚。将 ULN2803 对应的输出引脚连接到 GPIO1_18 对应继电器 1 的继电器。

 
pYYBAGNfLTqANYANAAI29DyEa5E213.jpg
对不起,我不知道如何把这一切都炸掉
 

如果继电器关闭,按钮将用于重新打开继电器。将 GPIO4_21 连接到按钮的一侧。在第二个按钮上对 GPIO4_22 执行相同操作。在按钮的同一侧与 GPIO 连接一个 10K 上拉电阻到每个按钮的 3.3V。将按钮的其余引脚接地。

 
poYBAGNfLT2Afl-0AAIvPIA7PUI906.jpg
添加了按钮,以便继电器可以再次打开
 

使用 Android Studio 用 SmarterSmartPowerStrip 项目刷写 PICO-PI,现在只使用电位器进行测试。

 

当一切测试正常时,用 ACS712 20A 传感器更换电位器。

 
pYYBAGNfLUCAJNBKAAHvjOvRHQ8773.jpg
用实际传感器替换锅
 

从现在开始要格外小心,因为电源线会严重损坏并杀死您。

像往常一样将地线和中性线连接到电源插座。

将火线连接到继电器的常开触点。

将 ACS712 的输入连接到继电器的中间触点。将 ACS712 的输出连接到插座。重复第二个传感器。

 

 
poYBAGNfLUOAV-GNAAIEa8H2wJI280.jpg
The Strip Boxed(嗯,现在是出口)
 

仔细检查你的接线。把所有东西都装起来,这样就没有外露的电源线。

我还没有一个盒子,但是当我有的时候,我会确保所有东西都是封闭的,以确保安全,并且电源线尽可能与其他所有东西隔离。

 

 

旁注

ACS712 20A 读取的最小电流为 100mA,因此如果看起来电流读取不正确,请记住这一点。无论连接什么,都可能无法为 ACS712 吸收足够的电流。

I2C_ACS712 项目包含一个 Atmel Studio 项目,用于将与 Arduino 类似的程序闪存到 Attiny85 上。连接到另一个 Arduino 时可以工作,但连接到 PICO-PI 时会在一两秒后脱落。我将来会使用这些(当我解决了 PICO-PI 错误时),因为它们包含适量的引脚并且很小。

谢谢你的关注。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'智能电源板开源分享',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);