本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于Arduino IoT Cloud ESP32 Alexa的语音控制智能家居

发布时间:2021-09-27
分享到:

基于Arduino IoT Cloud ESP32 Alexa的语音控制智能家居

发布时间:2021-09-27
分享到:

在这个物联网项目中,我展示了如何使用 Arduino IoT Cloud 和 Alexa 实现基于物联网的家庭自动化,并使用 ESP32 通过语音命令控制 4 台家用电器。如果互联网不可用,那么您可以使用开关和红外遥控器手动控制家用电器。在这篇文章中,我展示了制作这个智能家居系统的所有步骤。

这个基于物联网的家庭自动化系统具有以下特点:

使用Alexa和Arduino IoT Cloud Dashboard控制设备。
用红外遥控器控制继电器。
用开关手动控制电器。
无需互联网即可手动控制家用电器。
在 Amazon Alexa 应用程序中监控实时反馈和室温。
本项目使用的所有资源都是免费的。
因此,您只需使用 ESP32、DHT11 传感器、1838 IR 接收器和继电器模块,即可在家中轻松完成此家庭自动化项目。或者,您也可以为此项目使用定制设计的 PCB。

零件清单:

您只需使用 ESP32、DHT11 传感器、1838 IR 接收器和 4 通道继电器模块即可完成此项目。但是,如果您使用 PCB,那么您需要以下组件。

  • ESP32 开发套件 V1
  • DHT11传感器
  • 1838 红外接收器(带金属外壳)
  • 继电器 5v (SPDT) (4 no)
  • BC547晶体管(4个)
  • PC817 Optocuplors (4 no)
  • 510 欧姆 0.25 瓦电阻器(4 无)(R1 - R4)
  • 1k 0.25 瓦电阻器(6 个)(R5 - R10)
  • 10k 0.25 瓦电阻器(1 个)(R11)
  • LED 5 毫米(6 无)
  • 1N4007 二极管(4 个)(D1 - D4)
  • 按钮(4 无)
  • 终端连接器
  • 5V 直流电源

第 1 步:ESP32 家庭自动化项目的电路图

电路非常简单,我使用GPIO引脚D23、D22、D21和D19来控制4个继电器。

GPIO引脚D13、D12、D14、D27接开关,手动控制4个继电器。

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

红外遥控接收器(TSOP1838)与D35连接。而DHT11传感器与RX2相连。

我用5V手机充电器给智能继电器模块供电。

在高压下工作时,请采取适当的安全预防措施。

第 2 步:使用 ESP32 的 Alexa 控制继电器

如果 ESP32 连接了 Wi-Fi,您可以通过Amazon Alexa App控制家用电器,还可以监控室温。

您还可以要求 Alexa 从世界任何地方打开和关闭设备。

对于此家庭自动化项目,您不需要任何 Echo DOT或其他 Alexa 设备。

第 3 步:ESP32 控制继电器与 Arduino 物联网云仪表板

如果 ESP32 与 WiFi 连接,您还可以通过Arduino IoT Cloud 网络仪表板和Arduino IoT Cloud Remote 移动应用程序监控室温和控制家用电器。

在这个项目中,我使用了Arduino IoT Cloud的免费计划。在免费计划中,您最多可以控制 5 个继电器或传感器。

当您从 Arduino IoT Cloud Remote 移动应用程序控制继电器时,继电器的当前状态也会在 Amazon Alexa 应用程序中更新。

第 4 步:使用 ESP32 的红外遥控继电器

您始终可以从任何红外遥控器控制继电器。

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

如果ESP32连接了Wi-Fi,那么您还可以在Amazon Alexa App和Arduino云仪表板中监控实时反馈。

第 5 步:通过按钮手动控制继电器

如果 WiFi 不可用,您可以通过按钮控制继电器。

当 WiFi 可用时,ESP32 会自动重新连接 WiFi。

请参考电路图连接按钮。

第 6 步:为该智能家居系统设计 PCB

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

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

https://drive.google.com/uc?export=download&id=1ul0vrxWT95tU8UadmhOsaCp6fVvo_xi7

第 7 步:订购 PCB

下载 Garber 文件后,您可以轻松订购 PCB

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

2. 单击立即报价按钮。

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

第 8 步:上传 Gerber 文件并设置参数

 

第 9 步:选择送货地址和付款方式

4. 输入送货地址。

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

6.提交订单并继续付款。您还可以从JLCPCB.com跟踪您的订单。

我的 PCB 需要 2 天的时间来制造,并使用 DHL 交付选项在一周内到达。

PCB 包装完好,质量非常好,价格实惠。

第 10 步:焊接 PCB 上的所有组件

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

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

第 11 步:创建 Arduino IoT Cloud 免费帐户

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

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

https://store.arduino.cc/digital/create

单击“免费入门”,然后单击“创建一个”。
输入您的生日,然后点击“下一步”。
输入电子邮件ID、用户名、设置密码。然后点击“注册”。
现在点击“物联网云”。

第 12 步:在 Arduino IoT Cloud 中添加 ESP32 设备

第 13 步:在 Arduino IoT Cloud 中添加变量

现在要控制 4 个继电器,并从 DHT11 传感器读取数据,您必须添加 5 个变量。

单击“添加变量”按钮。

输入名称,然后选择Alexa 兼容开关类型。变量权限将为“读取和写入”,变量更新策略将为“更改时”。

以类似的方式,您必须添加接下来的 3 个变量。

对于室温,读取选择Alexa 兼容温度传感器。变量更新策略将是“定期”,并提到间隔时间。

第 14 步:设置 Arduino IoT 云仪表板

现在单击顶部的仪表板以设置 Arduino 云仪表板。

然后点击Build Dashboard。之后点击的编辑图标。

然后单击ADD并选择Switch。

为这个 Switch 命名,然后将一个变量与这个 Switch 小部件链接起来。

然后点击完成。

以类似的方式,您必须总共添加 4 个 Switch 小部件来控制 4 个继电器。

对于温度,选择仪表小部件并链接温度变量。您还可以设置MIN和MAX 限制。

第 15 步:从远程获取 IR 代码(HEX 代码)

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

并在 VCC 和 GND 之间提供 5V。IR 接收器必须有金属外壳,否则您可能会遇到问题。然后按照以下步骤获取 HEX 代码。

在 Arduino IDE 中安装IRremote库。
下载附件代码,上传到ESP32。
打开波特率 9600 的串行监视器。
现在,按下 IR 遥控按钮。
相应的十六进制代码将填充在串行监视器中。
将所有十六进制代码保存在一个文本文件中。

Code_IR_Button_HEX_Code.ino

第 16 步:使用 Arduino IDE 对 ESP32 进行编程

为了对 ESP32 进行编程,我使用了 Arduino IDE。

下载附加的代码。

首先,您必须安装ArduinoIoTCloud 库。在安装过程中,它可能会要求安装其他依赖项。然后点击全部安装。

在代码中,输入以下详细信息。

const char THING_ID[] = ""; //输入事物ID
const char DEVICE_LOGIN_NAME[] = ""; //输入设备ID
const char SSID[] = ""; //输入WiFi SSID(名称)
const char PASS[] = ""; //输入wifi密码
const char DEVICE_KEY[] = ""; //输入Secret设备密码(Secret Key)
您将从 Arduino IoT cloud Things获得THING_ID[]。并从您在将设备添加到 Arduino IoT 云期间下载的 PDF 中复制粘贴DEVICE_LOGIN_NAME[]和DEVICE_KEY[]。

然后更新 HEX 代码以从 IR 遥控器控制继电器。

案例 0x 80BF49B6:relayOnOff(1);switch1 = toggleState_1; 休息; //更新十六进制代码
案例 0x 80BFC936:relayOnOff(2);switch2 = toggleState_2; 休息; //更新十六进制代码
案例 0x 80BF33CC:relayOnOff(3);switch3 = toggleState_3; 休息; //更新十六进制代码
案例0x 80BF718E:relayOnOff(4);switch4 = toggleState_4; 休息; //更新十六进制代码
我已经展示了教程视频中的所有步骤。完成所有这些更改后,您可以将代码上传到 ESP32。

Code_ESP32_Alexa_ArduinoIotCloud_IR_4Relays.ino

第 17 步:为 Arduino IoT Cloud 配置 Alexa 应用程序

从 Google Play 商店或 App Store下载并安装Amazon Alexa 应用程序。

点击“更多”。
然后选择“技能和游戏”。
搜索 Arduino 并点击“ Arduino ”。
点击“启用使用”。

第 18 步:将 Arduino 云设备与 Alexa 连接

使用 Arduino Cloud 凭据登录。
点击关闭。
点击“发现设备”。添加设备需要一分钟。
点击“设备”,然后点击“开关”以查看所有设备。
因此,来自 Arduino IoT Cloud 的所有设备都将添加到 Amazon Alexa 应用程序中。

第 19 步:设置 Arduino IoT 云远程应用程序

您还可以从 Arduino IoT 云远程应用程序控制设备。

从 Google Play 商店或 App Store下载并安装Arduino IoT Cloud Remote App。
点击登录。
然后登录Arduino IoT Cloud 帐户。
点击您创建的事物以打开仪表板。
现在,您还可以从这个 Arduino IoT Cloud Remote App 控制继电器。

第 20 步:连接家用电器

按照电路图将4个家用电器与继电器模块连接起来。

在高压下工作时,请采取适当的安全预防措施。

将 5 伏直流电源与 PCB 连接。(我用的是我的旧手机充电器 5V 2Amp) 打开 110V/230V 电源和 5V DC 电源。

第 21 步:Arduino 云智能家居系统已准备就绪

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

我希望您喜欢这个 Arduino IoT 和 Alexa 控制家庭自动化项目。我已经分享了这个项目的所有必需信息。

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

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论