1 使用ESP32 Blynk和IR遥控继电器的物联网项目-德赢Vwin官网 网
×

使用ESP32 Blynk和IR遥控继电器的物联网项目

消耗积分:2 | 格式:zip | 大小:1.56 MB | 2022-11-08

分享资料个

描述

在这个物联网项目中,我展示了如何使用新的Blynk 2.0 ESP32 LDR温度传感器来实现基于物联网的智能家居自动化,以使用Blynk IoT 应用程序通过手动开关、红外遥控器和智能手机控制 8 通道继电器模块。

 
 
 
pYYBAGNo876AfcNoAAQd0PPWiTo817.png
 
1 / 2
 

在本文中,我展示了制作这个 Blynk 家庭自动化系统的所有步骤。

有关此 ESP32 Blynk IoT 家庭自动化的教程视频

 

这款 Blynk ESP32 控制智能继电器具有以下特点:

  • 使用WiFi(Blynk IoT App)控制家用电器
  • 使用Blynk 网络仪表板控制家用电器
  • 使用红外遥控器控制家用电器
  • 用手动开关或按钮控制家用电器
  • 在 Blynk IoT 应用程序中监控实时室温
  • 在 Blynk IoT 应用程序中监控实时反馈。
  • 控制没有 WiFi 的设备

因此,您只需使用 ESP32 和继电器模块即可在家中轻松制作这个家庭自动化项目。或者,您也可以为此项目使用定制设计的 PCB。

所需组件:

poYBAGNo88KAcGwNAAUYwxoR27Y987.png
 
  • ESP32 DEVKIT V1 开发板
  • 8通道SPDT 5V继电器模块
  • TSOP1838 红外接收器
  • DHT11传感器
  • LDR
  • 手动开关或按钮

PCB所需的组件

pYYBAGNo88WACrRBAAMKcELINwQ572.png
 

 

  • ESP32 开发套件 V1
  • TSOP1838 IR 接收器(带金属外壳)
  • DHT11传感器
  • LDR
  • 继电器 5v (SPDT) (8 no)
  • BC547 晶体管(8 个)
  • PC817 Opocuplors (8 no)
  • 510 欧姆 0.25 瓦电阻器(8 无)(R1 - R8)
  • 1k 0.25 瓦电阻器(10 个)(R9 - R18)
  • LED 5 毫米(10 无)
  • 1N4007 二极管(8 个)(D1 - D8)
  • 按钮(9 个)或开关
  • 端子连接器
  • 跳线
  • 5V直流电源

所需软件:

  • 1. Arduino IDE
  • 2. Blynk 物联网应用

在设计 PCB 之前测试电路

poYBAGNo88iAEtVNAAGHjEMO1Is737.png
 

在设计 PCB 之前,我已经使用 ESP32、一个 8 通道继电器模块、传感器和手动开关制作了完整的电路。

如您所见,继电器可以通过 Blynk IoT 应用程序、红外遥控器和手动开关进行控制。

如果 WiFi 没有与 ESP32 连接,您仍然可以通过手动开关和红外遥控器控制设备。

使用 Blynk IoT 应用程序控制继电器

pYYBAGNo88uAZ04zAAQ-9B4LCcM662.png
 

如果 ESP32 连接 WiFi,则可以通过 Blynk IoT App 控制家电。

您还可以使用多部智能手机通过 Blynk App 控制设备。为此,您必须从所有智能手机登录相同的 Blynk 帐户。

这样,所有智能手机都将下沉到 Blynk 服务器。您可以在 Blynk IoT 应用程序中从世界任何地方控制、监控继电器的实时状态、室温和湿度。

如果 ESP32 没有连接 WiFi,您仍然可以在没有互联网的情况下使用 IR 遥控器和手动开关控制设备。

ESP32 带红外遥控器的控制继电器

poYBAGNo88-AILGyAAP3uoTdOac736.png
 

您始终可以从 IR 遥控器控制继电器。对于这个项目,您可以使用任何红外遥控器。

您可以在 Blynk IoT App 中监控实时反馈。

我已经在以下步骤中解释了如何从任何遥控器获取 IR 代码(HEX 代码)。

用开关手动控制继电器

poYBAGNo89KAMeJYAASy95832qM683.png
 

您还可以通过开关或按钮控制继电器。

您可以在 Blynk IoT App 中监控实时反馈。

请参考电路图连接开关。

为 ESP32 物联网项目设计 PCB

pYYBAGNo89WAdvEIAADPkyBaUN8834.png
 

为了使电路紧凑并具有专业的外观,我在测试面包板上的智能继电器模块的所有功能后设计了 PCB。

您可以从以下链接下载此家庭自动化项目的 PCB Gerber 文件:

下载 PCB Gerber 文件

焊接PCB上的所有组件

pYYBAGNo8-aAIZOZAAERaugi3-M256.png
 

之后,我按照电路图焊接了所有组件。

然后将ESP32 板、DHT11 传感器、LDR 和 1838 IR接收器与 PCB 连接。

创建免费的 Blynk 云帐户

 
 
 
poYBAGNo8-iAZ6GjAAAwm4r8ej4207.png
 
1 / 2
 

对于这个智能家居项目,我使用了Blynk IoT Cloud Free 计划。

单击以下链接以创建 Blynk Cloud 帐户。

  • 输入电子邮件 ID,然后单击“注册”。您将收到一封验证电子邮件。
  • 单击电子邮件中的创建密码,然后设置密码,单击下一步
  • 输入你的名字,点击完成
pYYBAGNo8-uAd6j-AABAstAtLpU427.png
 

之后,Blynk 云仪表板将打开。

在 Blynk Cloud 中创建新模板

poYBAGNo8-2AaXqNAAA9TOXIqr0554.png
 

首先,您必须在 Blynk 云中创建一个模板。

  • 单击新模板。
pYYBAGNo8--AJ1O1AADo-vG0eKc313.png
 
  • 输入模板名称,选择硬件为ESP32 ,连接类型为WiFi
  • 然后点击完成
pYYBAGNo8_KAdrkvAAGFoJTdBxE149.png
 

创建寺庙后,您将获得BLYNK_TEMPLATE_IDBLYNK_DEVICE_NAME

对 ESP32 进行编程时需要 BLYNK_TEMPLATE_ID 和 BLYNK_DEVICE_NAME。

在 Blynk Cloud 中创建数据流

pYYBAGNo8_SAJMURAAETRFbhmQI521.png
 

之后,您必须创建数据流。在这里,我将控制 8 个继电器,因此我必须为继电器创建 8 个数据流,为传感器创建 2 个数据流。

  • 转到数据流选项卡。
  • 单击New Datastream并选择Virtual Pin
poYBAGNo8_aAWDDVAABJCfq3LEY921.png
 
  • 输入名称,选择虚拟引脚 V1,数据类型将为Integer
  • 然后点击创建
pYYBAGNo8_mAV8rEAAFxKM0ZYkY987.png
 

以类似的方式,使用虚拟引脚V1 到 V8创建 8 个数据流

对于温度、湿度和 LDR,我使用了V10、V11 和 V12

设置 Blynk 云 Web 仪表板

poYBAGNo8_yAYRWJAAF57-D5Mkw727.png
 

现在转到 Web 仪表板选项卡。

拖放 8 个 Switch 小部件和 2 个 Level 小部件。

poYBAGNo8_6ACiCgAABRDACvXcE837.png
 

转到每个小部件的设置,然后选择一个数据流。

有关详细信息,请参阅教程视频。

安装 Blynk IoT 应用程序以配置移动仪表板

pYYBAGNo9AGAD0HBAADFp5xOkRo717.jpg
 
  • 从 Google Play 商店或 App Store安装Blynk IoT 应用程序。然后登录。
  • 进入开发者模式。
  • 点击您已经制作的模板。
  • 现在转到小部件框(右侧)以添加小部件。

在 Blynk IoT App 中添加小部件

poYBAGNo9AOAa2uVAAEXCQcVUCo672.jpg
 
  • 从小部件框中添加8 个按钮小部件。
  • 转到按钮小部件设置
  • 输入名称,选择Datastream ,Mode为Switch 然后退出。
  • 设置完所有按钮后,点击exit

从远程获取 IR 代码(十六进制代码)

pYYBAGNo9AWAbbHXAADBWia6AlM985.png
 

现在,要从遥控器获取 HEX 代码,首先,我们必须将 IR 接收器输出引脚与GPIO D35连接

并在 VCC 和 GND 之间提供 5V。IR 接收器必须有金属外壳,否则您可能会遇到问题。

然后按照以下步骤获取 HEX 代码

  • 在 Arduino IDE 中安装 IRremote 库
  • 下载随附的代码,并将其上传到 ESP32。
  • 打开波特率 9600 的串行监视器。
  • 现在,按下红外遥控按钮。
  • 相应的十六进制代码将填充到串行监视器中。

将所有十六进制代码保存在文本文件中。

为这个 Blynk 项目编程 ESP32

在 Arduino IDE 中下载并安装以下库

您必须将所有 9 个文件保存在同一个文件夹中。

poYBAGNo9AeAY6p9AABzMaIai9k033.jpg
 
  • 在 Arduino IDE 中打开 .ino 文件。
  • 在代码中,您必须更新BLYNK_TEMPLATE_ID 和 BLYNK_DEVICE_NAME。
pYYBAGNo9AuABFvSAAHNQwCfwpM013.png
 
  • 然后更新ir_remote()函数中的 HEX 代码,如教程视频所示。
  • 之后,选择DOIT ESP32 DEVKIT V1板和正确的PORT
  • 然后将代码上传到 ESP32 Board。
poYBAGNo9A6AME_1AAF1lWQFGSw665.png
 

将代码上传到 ESP32 时,如果看到“正在连接....___”文本,请按下 ESP32 的 BOOT 按钮。

通过 OTA 更新 WiFi 凭证

poYBAGNo9BKAfDttAAQu0ceHubo418.png
 

对 ESP32 进行编程后,您必须从 Blynk IoT 应用程序更新 WiFi 凭据。

在教程视频中,我解释了通过 OTA 将 WiFi 凭据更新到 ESP32 的所有步骤。

连接家用电器

pYYBAGNo9BSAKcONAADwIOqhtLA337.png
 

按照电路图连接8个家用电器。

使用高压时请采取适当的安全预防措施。

将 5 伏直流电源与 PCB 连接。

最后!!Blynk 智能家居系统已准备就绪

poYBAGNo9BeATDruAAHadjtJpMQ248.png
 

现在您可以以智能的方式控制您的家用电器。

我希望你喜欢这个新的 Blynk 家庭自动化项目。我已经分享了该项目所需的所有信息。

如果您分享您的宝贵意见,我将不胜感激。另外,如果您有任何疑问,请在评论部分写下。

谢谢,学习愉快。


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

评论(0)
发评论

下载排行榜

全部0条评论

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

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"//www.hzfubeitong.com/m/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="https://m.elecfans.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:'使用ESP32 Blynk和IR遥控继电器的物联网项目',//标题 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.hzfubeitong.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);