×

首款适用于Arduino的蓝牙家庭自动化扩展板

消耗积分:3 | 格式:zip | 大小:0.02 MB | 2022-06-14

李杰

分享资料个

poYBAGKh0x6AQarsAARxvuO1F6w506.png
poYBAGKh0yCAbZHKAADADEPxzSc061.jpg
poYBAGKh0yKAX0rAAACUD00cgGQ079.jpg

成分

ARDUINO UNO REV3
 
× 1
5v继电器
 
× 4
BC547C
× 4
C503C-RCS-CYAZaAA2
科锐LED
× 1
HC-05无线蓝牙射频收发模块串口RS232 TTL
 
× 1
电阻器
 
× 5
IN4001 二极管
 
× 4

描述

首款适用于 Arduino 的蓝牙家庭自动化扩展板

 

如果您曾经想学习或使用 Arduino 制作蓝牙家庭自动化系统,您一定在 youtube 上搜索过它。如果你把所有的教程都看完了,他们用Arduino和很多线把它连接到继电器板、HC05模块等。看起来很不整洁,它的实际应用也有限。

当我搜索互联网时,我找不到任何可用于带有 Hc05 模块引脚的 Arduino 的继电器屏蔽。

所以我决定为 Arduino 创建有史以来第一个蓝牙家庭自动化扩展板。它看起来更专业,而且使用起来也很方便,因为屏蔽需要放在 Arduino Board 的顶部,我们就完成了。

原理图设计

pYYBAGKh0zCAXD55AABuDrIGCEE514.png

 

 

设计或创建是一个重要且关键的步骤,因为没有它,我们无法进一步制作 Pcb Shield。

为了设计原理图,我使用了 EasyEda 软件。

当然,有很多挑战,需要时间来解决;正如一开始,我遇到了与组件大小有关的问题,但最终,我能够得到我想要的结果。

我正在为下面的示意图链接 pdf 文件。

注意:在 Schematic Diagram 和 Pcb shield 中,我已经将 hc05 头针的 Tx 连接到 Arduino 的 RX,并将 hc05 的 Rx 连接到 Arduino 的 tx。所以需要直接放置或连接Hc05模块

将原理图设计转换为 Pcb

pYYBAGKh0zKABd0qAAE741kIFYQ596.png

我们现在完成了原理图,因此必须创建 PCB 板布局,以便稍后将设计转换为实际的 PCB。

EasyEda 具有将原理图转换为 Pcb 布局的功能。我使用该功能来创建 Pcb Design。

最初对我来说很有挑战性,因为我很难将所有组件放在如此狭小的空间中,所以我不得不稍微调整一下电路板的大小。将组件的位置更改一百万次以使事情正确。

下一个通道是路由轨道。我为此使用了自动路由功能,但我也不得不多次手动更改。您可以手动路由或使用自动路由功能。

但最后,在不眠之夜之后,我设法将一切完美地融合在一起。

好吧,我知道你想做这个项目。所以我正在为这个项目链接 Gerber 文件,这样你就可以使用该文件订购 PCB

订购董事会

现在只需使用市场上最好的 Pcb 制造服务,即Pcbway,它们非常棒,并提供真正高质量的 Pcb。您可以以非常低的价格订购高质量的印刷电路板。

根据原理图焊接元件

pYYBAGKh0zWAaOP6AADKDIlCZr0703.jpg

我们制作了原理图,创建了一个 Pcb 板,然后通过上传 Gerber 文件对其进行了订购。

现在是焊接所有组件的最重要部分,因为没有它,我们的 Pcb Shield 将毫无用处。

按照电路板上的原理图和标签放置所有组件并相应地焊接它们。

现在下一步是将其放置在 Arduino 板上。

将 Pcb Shield 放在 Arduino 板上

pYYBAGKh0zeAbxWtAABu9f968Uk564.jpg

到这个时候,我们的 Shield 已经完全可以使用了,所以现在我们需要借助位于 Shield 上的公头将其放置在 Arduino 上,以便完成所有连接。

编码部分

poYBAGKh0zmASEugAAAu7Q5X0IU679.png

到目前为止,我们已经创建了 Shield,但我们需要编写一个代码,将其上传到 Arduino 板,这样我们的 Shield 才能正常工作。

这段代码是我写的,也有一个非凡的特点,

该代码具有 EEPROM 功能,您不会在 youtube 家庭自动化视频中找到该功能。

 

可擦除或重新编程的 EEPROM(电可擦除可编程只读存储器)。

假设您创建了一个没有 EEPROM 的简单家庭自动化系统。在这种情况下,实际使用很少,因为当您的 Arduino 板断电时不使用 EEPROM,下次通电时,它将重置,并且所有设备都将关闭或打开。但如果我们使用 Eeeprom,它会存储每个继电器模块的当前状态,因此如果 Arduino 下次断电并启动,所有继电器都会以之前的状态启动。

只需将草图上传到 Arduino 板,您就可以进一步进行下一步了

使用蓝牙控制继电器

pYYBAGKh0zuASzMoAAAznfyYIWQ914.jpg

现在我们已经到了整个过程的最后一步,因为现在我们需要使用蓝牙控制继电器,所以我们需要根据需要设置移动应用程序。

为了控制继电器,您可以使用不同的应用程序

但我个人最喜欢的是

1. 通过 broxcode 控制 Arduino 蓝牙

2. Arduino 家庭自动化

你可以使用其中的任何一个,但第二个有一个很好的界面。

安装后,您必须编辑按钮,以便您可以根据代码设置它们的值。

例如,要打开继电器一个,必须发送“A”,要关闭它,必须发送“a”。同样,您可以设置其他按钮,但请确保遵循代码中定义的字符。

谢谢和祝贺

非常感谢您到目前为止并对我的项目感兴趣。我希望你喜欢我的项目,并祝贺那些完成了这个项目的人。

如果您也成功或不喜欢它,请在评论中告诉我,并随时提出任何问题。我很想回答他们。

干杯

 

代码


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

评论(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:'首款适用于Arduino的蓝牙家庭自动化扩展板',//标题 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);