×

NodeMCU家庭自动化(ESP8266)

消耗积分:0 | 格式:zip | 大小:0.54 MB | 2023-07-10

刘满贵

分享资料个

描述

大家好!我希望您已经喜欢我之前的教程“ Arduino Heart Beat With ECG Display & Sound”并且您已经准备好学习一个新教程,像往常一样,我制作本教程是为了在制作这种超级惊人的低成本电子项目时逐步指导您这是“NodeMCU 家庭自动化系统”。

在这个项目的制作过程中,我们试图确保这个教程将成为您的最佳指南,以便在您想要建造自己的智能房屋时为您提供帮助,因此我们希望这个教程包含所需的文档。在获得我们从JLCPCB 订购的定制 PCB 以改善我们的电子设备的外观之后,这个项目非常方便,并且本指南中有足够的文档和代码可以让您轻松创建您的 NodeMCU 项目。

我们只用了 4 天就完成了这个项目,仅仅两天就得到了所有需要的零件并完成了硬件制作和组装,然后我们准备了适合我们项目的代码并开始测试和调整。

你将从这个项目中学到什么:

你将从这个项目中学到什么:

  • 根据项目的功能为您的项目选择正确的硬件。
  • 了解家庭自动化系统。
  • 准备电路图以连接所有选择的组件。
  • 组装所有项目部件(设备盒和电子组件)..
  • 开始第一个测试并验证项目。

第 1 步:什么是家庭自动化系统!

pYYBAGOSkVeAdcD5AACKgz9c1Vo310.jpg
 

 

家庭自动化系统只是一个系统,它允许一些用户访问一些电气设备,如闪电设备、温度监控、门控设备等,这种访问是通过通过无线或有线协议连接到主系统的基本应用程序来监控的,大约自动化部分,系统可以使用一些执行器和一些传感器自动调整一些环境参数,例如系统可以从温度传感器读取温度数据并决定打开或关闭空调。

poYBAGOSkVuAAXZsAAA2mNZHUGU680.jpg
 

 

在我们的项目中,我们将创建一个主要系统,它是一个基于NodeMCU开发板的电子电路板,它已经具有 wifi 功能,并且该板将被一些电子元件包围,如继电器光电二极管 LED 和传感器,关于我们的传感器将使用运动传感器进行警报检测,DHT11用于温度和湿度测量,BH1750用于光感测。

poYBAGOSkV6AS-8jAAAqEfrycAw655.jpg
 

 

关于执行器,我们将控制一些220V 交流电灯泡和一个直流风扇,所有这些执行器都将通过我们通过Blynk 应用程序开发的安卓应用程序进行控制因此,在此应用程序中,我插入了一些仪表来读取传感器的模拟值,并放置了一些按钮和滑块来控制我的输出。

第 2 步:CAD 和硬件零件

pYYBAGOSkWSAYyPhAABJxWLrg-c665.jpg
 

 

poYBAGOSkWaAEEBkAAA8QjDfjq0957.jpg
 

 

pYYBAGOSkWmAEhsdAABNDuMUDkQ892.jpg
 

 

poYBAGOSkW-AEpiRAACNO7m72MA623.jpg
 

 

poYBAGOSkX6AfLZxAAB1Uf6i7nM669.jpg
 

 

我使用 SolidWorks 软件设计了这个房屋模型,它已经有了用于闪电点、传感器和风扇的插座,您可以从下面的下载链接中获取 STL 文件,在准备好设计后,我已经通过数控激光切割。

第 3 步:电路图

pYYBAGOSkYmATZCBAAEmj_wNRiI263.jpg
 

 

转向电子产品,我创建了这个电路图,其中包括该项目所需的所有必要部件。我正在将 realys 输出连接到我的NodeMCU开发板并使用DHT11?BH1750 和连接到I²C端口和ADC 输入的运动传感器,我还使用了我的NodeMCU开发板的唯一PWM输出,并将它连接到一个螺丝端子以控制一些LED的亮度,我使用了单独的电源为继电器和 NodeMCU供电,这样我可以在控制 220V 交流电压的同时保护我的开发板。

第 4 步:PCB 制作

第 4 步:PCB 制作

pYYBAGOSkZCAIcjjAABvanfxxY4695.jpg
 

 

poYBAGOSkZaAdx_EAABz1ykbYQY569.jpg
 

 

poYBAGOSkZyAJQ2WAABFYZ6bALc065.jpg
 

 

poYBAGOSkZ6AClUHAAB06oC4vZk947.jpg
 

 

poYBAGOSkaSAW_npAABpbNPw0ls248.jpg
 

 

关于积力电路

JLCPCB(深圳市嘉力创电子科技发展有限公司),是中国最大的PCB手板企业,专业从事PCB快速手板和小批量PCB生产的高新技术企业。拥有超过10年的PCB制造经验,JLCPCB在国内外拥有200,000多家客户,每天有超过8,000个PCB原型制作和小批量PCB生产在线订单。年生产能力为200, 000平方米。适用于各种 1 层、2 层或多层 PCB。JLC是一家规模大、设备精良、管理严格、质量上乘的PCB专业制造商。

会说话的电子产品

会说话的电子产品

完成电路设计后,我将此电路转换为具有房屋形状的定制 PCB 设计,以便在我们订购电路时获得漂亮的 PCB 设计,为此我需要做的就是转向JLCPCB ,他是美国最好的 PCB 供应商为了获得最好的 PCB 制造服务,经过一些简单的点击后,我上传了我设计的相应GERBER文件并设置了一些参数,这次我们将在这个项目中使用带有金色斑点的黑色;下订单后仅仅四天,我的 PCB 就在我的桌面上。

相关下载文件

相关下载文件

正如您在上图中看到的那样,PCB 制造精良,我的 PCB 设计与我们为主板和所有标签制作的相同,徽标在焊接步骤中为我提供指导。如果您想订购相同的电路设计,您也可以从下面的下载链接下载该电路的 Gerber 文件。

第 5 步:配料

pYYBAGOSkaeADKckAAE5_GtBrVk691.jpg
 

 

在开始焊接电子零件之前,让我们回顾一下我们项目的组件清单,因此我们需要:

★☆★ 必备组件★☆★

第 6 步:硬件组装

poYBAGOSkaqAK3vOAABNZtJhrsc183.jpg
 

 

poYBAGOSka-AMaoiAABPlofeDYg012.jpg
 

 

pYYBAGOSkc-ACW49AABQGpnMcVM667.jpg
 

 

poYBAGOSkdSALchhAABGf0fiCrM421.jpg
 

 

poYBAGOSkdiAGWNvAABHUUEvORo332.jpg
 

 

pYYBAGOSkduASRgaAABSVvVXW-E266.jpg
 

 

poYBAGOSkd2ALSGiAABewJJWNII882.jpg
 

 

pYYBAGOSkeeAY9ciAABZYelfSxc011.jpg
 

 

poYBAGOSkemAWLAGAABdb1kpNLQ394.jpg
 

 

poYBAGOSkeuABbH9AABIuYXqKp8149.jpg
 

 

pYYBAGOSkfKAWwQdAABLGrRCimw563.jpg
 

 

现在一切就绪,让我们开始将我们的电子元件焊接到 PCB 上,为此我们需要烙铁和焊芯线以及用于 SMD 元件的 SMD 返修台。

安全第一

安全第一

烙铁 切勿触摸烙铁元件……400°C!用镊子或夹子夹住要加热的电线。不使用时,务必将烙铁放回支架上。切勿将其放在工作台上。不使用时关闭设备并拔下插头。正如你所看到的,使用这个 PCB 非常容易,因为它的制作质量非常高,并且不要忘记在焊接每个组件时会指导你们的标签,因为你会在顶部丝层上找到每个组件的标签,表明它的位置电路板,这样你将 100% 确定你不会犯任何焊接错误。我已经将每个组件焊接到它的位置,你可以使用 PCB 的两侧来焊接你的电子元件。

第 7 步:软件部分和测试

poYBAGOSkfWAIvLAAAC1KkgcQnE080.jpg
 

 

pYYBAGOSkfiAbi-iAAAhb8o-eSs415.jpg
 

 

pYYBAGOSkfuAIzUgAAAgSjDzrPQ699.jpg
 

 

poYBAGOSkf2AdidRAAAzTl_yVMk628.jpg
 

 

在我们提供的代码中,我们将首先测试我们使用测试代码制作的电路板,测试代码允许您控制电路板的 LED。运行 Blynk 应用程序后,您会发现所选的 NodeMCU 开发板已经在线(如果您在代码中使用 Blynk 提供的令牌)。现在我们需要的是最终代码,您可以从下面的下载链接免费获得代码,代码注释非常好,因此您可以理解它并根据自己的需要进行调整。


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

评论(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:'NodeMCU家庭自动化(ESP8266)',//标题 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);