×

使用ESP8266 DIY控制任何家用电器

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

李玉兰

分享资料个

描述

嘿,怎么了,伙计们!来自 CETech 的Akarsh。

什么是继电器?

pYYBAGNod0yAECyUAACdbqlQOMY163.png
 

继电器模块是一种方便的电路板,可用于控制高压、大电流负载,例如灯和交流负载。功率继电器模块是由电磁铁操作的电气开关。电磁铁由来自微控制器的单独低功率信号激活。激活后,电磁铁会拉动以打开或关闭电路。它旨在与 Arduino、ESP8266 等微控制器轻松连接。继电器模块通常具有以下端子:

  • NC(常闭)=当您希望继电器默认关闭时使用常闭配置,这意味着电流正在流动,除非您从 Arduino 向继电器模块发送信号以打开电路并停止电流
  • NO(常开)=常开配置相反:继电器始终打开,因此电路断开,除非您从 Arduino 发送信号关闭电路。
  • Common pin = 一般在中间
  • 输入引脚= 这些是继电器连接到控制设备的引脚。

如果模块上没有提到,我们可以使用万用表在连续性设置中找到 NC 引脚,通过万用表探头将公共端与另一个端子连接,如果它产生哔声,则该引脚为 NC。

Reyax MQTT 代理

poYBAGNod06AC-o9AABJLjN2T98320.jpg
 

Reyax 的 RYC1001 是一个适用于低数据量和省电设备的云平台。使用 MQTT 协议,您可以为您的应用程序使用简单的命令、监控终端设备并轻松建立您的物联网连接。只要设备支持MQTT协议就可以使用。已完成所有主流物联网通信模块的兼容性测试。它可以在 Android、iOS、Windows 和 Linux 上使用。目的是让企业以低成本进入云平台。REYAX RYC1001 建立在稳定的 AWS 服务之上,我们也可以使用简单的指令快速集成物联网云平台。Reyax RYC1001 MQTT 代理的一些重要特性是:-

  • 建立在稳定的 AWS 服务之上
  • 使用适合低数据量和省电模式的MQTT协议
  • 可以使用支持 MQTT 协议的设备。
  • 完成所有主流物联网通信模块的兼容性测试
  • 支持安卓、iOS、Windows、Linux
  • 低成本接入云平台
  • 使用简单指令快速集成物联网云平台

要获取有关 Reyax RYC1001 MQTT 代理的更多详细信息,您可以从此处查看产品数据表。

关于该项目

我们今天要制作的电路板的主要组件是 ESP8266、继电器、按钮、USB 转串口转换器、电阻器等。我们的最终产品将能够使用板载 ESP8266 连接到互联网具体来说,它将连接到我们从 Reyax 收到的 Internet 上的 MQTT Broker。另一方面,我们将在一个应用程序上创建一个仪表板,该应用程序也通过 Internet 连接到同一个代理。我们创建的仪表板将以这样的方式进行配置,以便能够向连接到我们代理的板发送 ON 和 OFF 命令。从经纪人那里,电路板将收到该命令,根据该命令,继电器将关闭电路或打开电路,最终打开或关闭板载 LED。我们不需要每次想要控制一个新设备时都创建一个新板,但我们也可以修改这个板并将 12 个继电器连接到它,从而使我们能够控制 12 个不同的设备。我们将在这个项目中使用的应用程序的名称是“IoT OnOff”。您可以从下载应用程序在这里和创建仪表板之后,我们可以从任何有互联网的地方控制板。我们为这个项目制作了一个定制的 PCB,其 Gerber 文件可以从项目的 Github 存储库中访问,您可以从这里查看。在 Github 存储库中,名为“ gerber.zip”的文件是项目 PCB 的 Gerber 文件。您也可以修改该文件并将多达 12 个继电器添加到板上。这个项目也可以使用基于 ESP8266 的 NodeMCU 开发板通过外部连接继电器来完成,但我建议如果你进入家庭自动化领域,你绝对应该尝试 PCB 的东西。PCB 准备就绪后,您可以按照下一步中的说明进行项目工作。

设置 PCB

在用所需的组件填充我们的定制 PCB 后,我们可以继续进行下一步,即对 PCB 进行编程和配置以使其工作。为了对我们的 PCB 进行编程,我们需要一个 USB 到 FTDI 转换器。现在我们需要按照下面给出的步骤来完成设置:-

pYYBAGNod1SAHDi3AACC3LKF8dI546.jpg
 
  • 首先,我们需要将 USB 到 FTDI 转换器连接到 PCB。为此,我们需要将 FTDI 转换器的 Rx 引脚连接到 ESP8266 的 Tx 引脚,FTDI 转换器的 Tx 引脚连接到 ESP8266 的 Rx 引脚,ESP8266 的 Vcc 和 GND 引脚连接到FTDI 转换器。
poYBAGNod1aAUZ1lAACPnhv8Q-4447.jpg
 
poYBAGNod1mAUGySAACheR5g0bY375.jpg
 
  • 在 Arduino IDE 中,您需要对代码进行一些小的更改。您需要在需要的地方输入您的 Wifi 的 SSID 和密码。之后,您需要将 MQTT Server 输入为“iot.reyax.com”。我已经将它添加到代码中。之后,您需要输入从 Reyax 购买 RYC1001 MQTT Broker 后将收到的 MQTT 用户名和 MQTT 密码。您可以从这里获取您的 RYC1001 MQTT 代理。
  • 一旦在代码中完成所有这些修改。我们需要选择正确的开发板,即 NodeMCU1.0(ESP-12E 模块)和正确的 COM 端口,然后在上传代码之前,我们需要前往开发板。
  • 现在,当我们将开发板连接到计算机时,我们的开发板还没有准备好接收任何代码,我们需要让开发板进入启动模式。我们的 PCB 上有两个按钮:GPIO 0 和重置按钮。我们需要对这些按钮做的是,我们首先需要按下 GPIO 0 按钮,按下该按钮后,我们需要按下重置按钮,然后我们需要释放重置按钮,最后,我们需要释放 GPIO 0 按钮。这将使电路板进入引导模式,现在电路板已准备好接收代码。
  • 完成上述所有步骤后。我们可以将代码上传到我们的板上。上传代码后,我们可以从计算机上拔下电路板。
pYYBAGNod1yAC6LkAACO0onWFII506.jpg
 
  • 现在我们需要在我们的电话/表格中设置应用程序,它将充当另一个客户端,并将用于通过 MQTT 代理发送命令。为此,我们需要安装名为“IoT OnOff”的应用程序。你可以从这里得到。在该应用程序中,您需要像我一样创建一个简单的仪表板并配置我们接下来要做的事情。
poYBAGNod16Aayo2AADLys202sc607.jpg
 
  • 完成仪表板的创建后,您需要转到“设置”菜单。然后你需要进入 MQTT Broker 部分。在那里,您必须将主机输入为“iot.reyax.com”,端口输入为“1883”。在同一页面上之后,您将看到一个名为身份验证的选项卡。您需要打开它,您需要输入您在购买 MQTT 代理时从 Reyax 收到的用户名和密码,然后在“身份验证”部分单击“就绪”按钮两次,在“代理”设置中单击第二次。
poYBAGNod2CAYLP_AACNyZDjLLs551.jpg
 
  • 完成此操作后,您需要切换 Connect 按钮,您将看到状态将显示正在连接,之后将显示已连接,这意味着我们的仪表板已作为客户端连接到我们的代理。
pYYBAGNod2OAIOwZAACsI6xddxY627.jpg
 
  • 当我们的应用程序连接到代理时,我们需要返回仪表板,这里我们有我们添加到仪表板的按钮小部件。我们需要输入小部件的设置。在设置中,我们需要进入订阅选项卡。在这里您将看到一个名为“主题过滤器”的实体,我们需要输入我们的仪表板将订阅的主题名称以传输数据。主题名称应与代码中的主题名称保持一致,以便进行数据传输。
pYYBAGNod2WAaWWZAADWnzWILPs565.jpg
 
  • 同样在发布设置中,我们需要确保主题字符串与代码中的相同。之后,我们需要打开允许发布设置,然后关闭前缀设备名称。我们还为这个项目提供了 QoS 设置,我们将该设置保持为“最多一次”。
  • 完成此操作后,我们需要设置发布和订阅值,即当按下 True 或 False 并且我们完成时将发送的值。我们只需要按下就绪按钮,我们就可以开始了。
poYBAGNod2iAVpsOAADC03Nh26Y973.jpg
 

通过这种方式,我们已经对我们的电路板进行了编程,我们也完成了仪表板的配置,我们准备好操作它了。我们还可以将几个不同的传感器连接到我们的仪表板,并在我们的仪表板上接收来自它们的数据,我们还有各种可用的小部件,我们可以使用它们来使我们的仪表板更具交互性和美观。

测试我们的董事会

pYYBAGNod2qAflAXAACTYvYOXMs397.jpg
 

现在我们完成了仪表板和 PCB 的设置。我们已准备好继续检查我们的董事会是否工作正常。为此,我们需要为 PCB 供电。我们可以通过使用移动电源以及通过合适的适配器连接它来做到这一点。开发板通电后,我们可以移动到手机或笔记本电脑并打开 IoT OnOff 应用程序。在应用程序中,我们需要打开我们创建的仪表板,然后我们需要按下仪表板上的按钮来打开 LED。如果一切正常,您将看到板上的 LED 将打开,因为仪表板上的开关切换到该位置。继电器还会在每次 ON/OFF 切换时发出咔哒声。

pYYBAGNod22AN-hwAABrrEb_ybg747.jpg
 

我们已将板上的 LED 连接到 ESP8266 的 GPIO 13 引脚。如果我们将任何其他设备连接到该引脚,例如 LED 灯泡或其他东西,那么我们也可以使用仪表板来控制它。所以通过这种方式,我们可以在 MQTT 的帮助下通过 Internet 轻松控制设备。我们还可以通过修改电路板设计来扩大规模并将多个继电器连接到它。

最后,我想说的是,当你使用这种板子来控制你的家电时,你需要非常小心,一个小错误可能会导致很大的损失。至此,我们到此结束本教程。我们很快就会回来提供另一个有趣的教程,直到那时继续享受我们的其他项目。


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

评论(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:'使用ESP8266 DIY控制任何家用电器',//标题 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);