1 使用ESP32制作ESP RainMaker IoT项目-德赢Vwin官网 网
×

使用ESP32制作ESP RainMaker IoT项目

消耗积分:2 | 格式:zip | 大小:3.28 MB | 2022-10-24

分享资料个

描述

在这个 IoT 项目中,我展示了如何使用 ESP32 制作 ESP RainMaker IoT 项目,以通过 Google Assistant、Alexa、蓝牙、IR 遥控器和手动开关控制继电器。实时反馈。

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

使用 ESP32 的 ESP RainMaker 项目教程视频

在教程视频中,我展示了制作这个 ESP RainMaker 家庭自动化系统的所有步骤。

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

  • 使用WiFi(Google HomeAmazon Alexa 应用程序)控制家用电器
  • 使用Google AssistantAlexa通过语音命令控制家用电器
  • 使用任何蓝牙BLE模块控制家用电器
  • 使用IR 遥控器控制家用电器
  • 用手动开关按钮控制家用电器
  • 在 ESP RainMaker 应用程序中监控实时反馈。
  • 没有 WiFi的控制设备(蓝牙 + 红外遥控器 + 开关)

ESP32 项目所需的组件

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

所需组件:

  • ESP32 DevKIT V1 亚马逊
  • 4通道或8通道5V SPDT继电器模块亚马逊
  • TSOP1838 IR 接收器(带金属外壳)
  • 蓝牙或 BLE 模块 (ANY)
  • 手动开关或按钮亚马逊
  • 任何红外遥控器

PCB所需组件:

poYBAGNVjIuAOhOIAAMcBMyc4N8077.png
 
  • ESP32 开发套件 V1
  • TSOP1838 IR 接收器(带金属外壳)
  • 继电器 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)
  • 按钮(8 个)或开关
  • 端子连接器
  • 跳线
  • 5V直流电源

ESP32 IoT 项目电路图

pYYBAGNVjI6AMW2oAAO0DOrlb3Q492.png
 

这是这个家庭自动化项目的完整电路图。我已经在教程视频中解释了电路。

电路非常简单,我使用了 GPIO 引脚D23、D22、D21、D19、D18、D5、D25 和 D26来控制 8 个继电器。

GPIO 引脚D13、D12、D14、D27、D33、D32、D15 和 D4与按钮相连,可手动控制 8 个继电器。

IR Receiver的输出引脚与 GPIO D35相连

对于蓝牙控制,您可以使用 ESP32 连接任何蓝牙或 BLE 模块。在上面的电路中,我将HC-05 蓝牙模块与 ESP32 连接起来。

如果您想使用任何3.3V BLE 模块,请参考以下电路。

poYBAGNVjJGAA2ORAAOTIuSYmpM232.png
 

蓝牙或BLE模块TX引脚与ESP32的RX2(GPIO16)引脚相连,进行串口通信。

我没有使用 ESP32 的内置 BLE,因为它用于通过 OTA 从 ESP RainMaker 应用程序重置 WiFi 详细信息。

我在 Arduino IDE 中使用了INPUT_PULLUP函数,而不是使用上拉电阻。

我使用的是 5V 5A 直流电源。

使用 ESP32 的 Google Assistant 和 Alexa 控制继电器

poYBAGNVjJOAD_SdAAEk_nOMI_w862.png
 

如果 ESP32 与 WiFi 连接,那么您可以使用Google AssistantAmazon Alexa通过语音命令控制家电。

 
 
 
pYYBAGNVjJeAEwv1AAOclE8AUis814.png
 
1 / 2
 

您还可以从世界任何地方控制和监控Google HomeAmazon Alexa App上继电器的实时反馈。

对于这个家庭自动化项目,您不需要任何 ECHO 设备或 Google Home Nest 设备。

使用蓝牙或 BLE 控制继电器

pYYBAGNVjJuANdRcAAOnkkb0F_0315.png
 

如果 ESP32 未连接 WiFi,您仍然可以使用蓝牙从手机控制继电器。

您可以使用任何蓝牙或 BLE 模块。它将通过串行通信将信号发送到 ESP32。

首先,配对蓝牙模块,然后将模块与蓝牙开关应用程序连接。

从 GitHub 下载蓝牙应用程序

使用 ESP32 的红外遥控和手动开关控制继电器

pYYBAGNVjJ6AAvAxAAGeKjxfcNo064.png
 

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

您可以在 ESP RainMaker App 中监控实时反馈。

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

请参考电路图连接按钮或开关。

为这个智能家居系统设计 PCB

poYBAGNVjKGAB90FAAF6aiY24RM307.png
 

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

您可以从以下链接下载此 ESP32 控制继电器 PCB 的 PCB Gerber 文件:

下载 PCB Gerber 文件的 GitHub 链接

现在,您可以在为任何电子项目订购 PCB 时轻松使用 JLC SMT 服务。

为什么要使用 JLC SMT 服务?

在 JLCPCB 的一站式在线平台上,客户只需 8.00 美元的安装费(每个接头 0.0017 美元)即可享受低成本、高质量和快速的SMT 服务

每月 27 美元的新用户优惠券和 24 美元的 SMT 优惠券。

访问https://jlcpcb.com

JLCPCB SMT 零件库200k+库存组件(689 个基本组件和 200k+ 扩展组件)

建立个人图书馆库存,为现在或将来保存零件

组装将支持来自 Digikey、mouser 的10M+ 零件。

从 JLCPCB 订购 PCB 组件的步骤

pYYBAGNVjKOAbw1nAAB54N9mtnU916.jpg
 

1. 访问https://jlcpcb.com并登录/注册。

poYBAGNVjKWAGAIhAABt4uz6IaY146.png
 

2. 单击立即报价按钮。

pYYBAGNVjKeAYy4zAABmq64hwiw590.jpg
 

3. 点击“添加您的 Gerber 文件”按钮。然后浏览并选择您下载的 Gerber 文件。

4.设置所需的参数,如数量,PCB遮罩颜色等。

poYBAGNVjKqACe9nAAB5p1s8Ai8424.png
 

5. 选择组装面和 SMT 数量。

poYBAGNVjKyAOD2oAABUs-SwNJA071.png
 

6. 现在上传BOMPickAndPlace文件。

pYYBAGNVjK6AdKGWAABk7JxJiyw370.png
 

7. 现在确认您要通过 SMT 服务焊接的所有组件。

8. 点击保存到购物车按钮。

选择送货地址和付款方式

poYBAGNVjLCAbajxAABYMrDyLOA786.jpg
 

6. 输入送货地址。

7. 选择适合您的运输方式。

8. 提交订单并继续付款。

您还可以从JLCPCB跟踪您的订单

pYYBAGNVjLOAMlpxAADDf_LMTl0936.png
 

我的 PCB 花了 3 天时间制造出来,并使用 DHL 交付选项在一周内到达。

pYYBAGNVjLWAFJeLAADqrpraHEc278.png
 

PCB 包装得很好,而且质量非常好,而且价格实惠。

从 GitHub 下载源代码:

https://github.com/techstudycell/ESP-RainMaker-IoT-Project-with-Bluetooth-Google/tree/main/Code

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

poYBAGNVjLiACvHqAADN19f5jXY333.png
 

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

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

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

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

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

为这个物联网项目编程 ESP32

要对 ESP32 进行编程,您必须更新 Preferences URL ,然后安装ESP32 Board 2.0.3 版本。

首选项--附加板管理器 URL:

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

现在打开主草图(代码)。

pYYBAGNVjLqAWAmcAAHdzWwRZKU292.png
 
  • 在代码中,您必须更新设备名称(可选)
  • 然后更新红外遥控器的十六进制代码,如教程视频所示。
poYBAGNVjL2Ab-g2AAI-tcZhKvA151.png
 
  • 之后,选择ESP32 DEV Module board、RainMaker Partition Scheme 和适当的PORT
  • 然后将代码上传到 ESP32 Board。

将代码上传到 ESP32 时,如果您使用 PCB,则会看到“正在连接....___”文本,然后按住 BOOT 按钮,然后按 EN 按钮,然后松开两个按钮。

在 ESP RainMaker App 中添加设备

对 ESP32 进行编程后,请按照以下步骤操作。

pYYBAGNVjMGAQCbgAAGqy7mAzpI967.png
 
  • 按住ESP32 的 BOOT 按钮 4 秒。
  • 在手机上打开蓝牙和 GPS
  • 打开 ESP RainMaker 应用,扫描二维码(如图)
  • 与 ESP32 BLE 配对并提供 WiFi 凭据。
poYBAGNVjMeAB0XdAAGWAUXpwKw608.png
 
  • 所有设备都将添加到 ESP RainMaker 应用程序中。

欲了解更多详情,请访问ESP RainMaker 官方页面。

将 Google Home 和 Amazon Alexa 与 ESP RainMaker 链接

pYYBAGNVjMmASQ71AAE1kgkXtAw974.png
 

添加设备后,您可以轻松地将 Google Home 和 Amazon Alexa 应用程序与 ESP RainMaker 帐户关联起来。

我已经在相关教程视频中展示了所有步骤。

您可以在世界任何地方控制所有设备并监控 Google Home 和 Amazon Alexa 应用程序的实时反馈。

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

poYBAGNVjMyACKagAAHtV5fxKZk707.png
 

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

所以,现在你可以问谷歌助手,“嘿谷歌,关灯”或“Alexa,打开灯”。而已。

我希望您喜欢这个新的基于物联网的家庭自动化项目。我已经分享了该项目所需的所有信息。

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

谢谢,学习愉快。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢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制作ESP RainMaker IoT项目',//标题 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);