家庭自动化一直是我们大多数人鼓舞的项目。通过舒适的椅子或任何房间的床来切换AC负载而又不触及另一个房间的开关,听起来不是很酷!!感谢ESP8266模块,您可以借助对电子学的精通知识轻松实现此想法。
在这个项目中,让我们学习如何制作一个接线盒,该接线盒的开关可以使用具有有效互联网连接的电话或计算机进行远程切换。该项目能够切换额定电流不超过5A或〜800Watts的任意两个交流负载。一旦理解了这一概念,就可以使用高级ESP模块扩展数量或交流负载,并通过使用高额定值继电器来提高负载的额定功率。
本教程假设您有经验将ESP8266模块与Arduino IDE结合使用。如果不是,请访问ESP8266 WiFi收发器入门(第1部分)和ESP8266入门(第3部分):使用Arduino IDE编程ESP8266并刷新其内存教程,然后继续。
所需硬件:
下面列出了该项目所需的硬件:
- ESP8266
- FTDI模块(用于编程)
- 3V 5A电磁继电器(2Nos)
- AC-DC转换器模块(5V / 700mA或更高)
- BC547(2号)
- LM317稳压器
- 220ohm和360ohm电阻
- 0.1和10uf电容器
- IN007二极管(2号)
- 接线盒
- 连接线
示意图说明:
该项目的完整原理图如下所示:
该原理图由一个AC至DC转换器模块组成,该模块的输出将为5V和700mA。由于ESP8266模块的工作电压为3.3V,因此我们必须将5V转换为3.3V。因此,LM317可变电压调节器IC用于调节ESP模块的3.3V。为了切换交流负载,我们使用了电磁继电器,该继电器需要3V的电压才能通电,并且可以承受流经继电器的Common(C)和常开(NO)引脚的电流高达5A。为了驱动继电器,我们使用了一个由ESP模块的GPIO引脚切换的BC547 NPN晶体管。
由于ESP8266模块带有内置的GPIO引脚,因此该项目变得相当简单。但是在使用ESP模块的GPIO引脚时应格外小心,下面将对其进行讨论。
使用ESP8266 GPIO引脚的提示:
- ESP8266-01模块有两个GPIO引脚,分别为GPIO0和GPIO2引脚。
- GPIO引脚的最大源电流为12mA。
- GPIO引脚的最大灌电流为20mA。
- 由于电流低,我们无法直接从引脚驱动任何像继电器一样的负载,因此必须使用驱动器电路。
- ESP模块通电时,GPIO引脚上不应连接任何负载。否则模块将陷入复位循环。
- 吸收比推荐电流大的电流会使ESP8266模块的GPIO引脚油炸,因此请务必谨慎。
为了克服ESP8266模块的上述缺点,我们使用了BC547来驱动继电器,并在BC547晶体管的发射极和地之间切换。ESP模块通电时必须打开此连接,然后可以关闭并保持原来状态。
硬件:
一旦了解了原理图,只需将电路焊接在一块Perf板上即可。但是请确保您的电路板也可以插入接线盒。
本项目中使用的AC-DC转换器输出5V的连续电流为700mA,峰值电流为800mA。您可以轻松地在线购买一种类似的产品,因为它们很容易获得。设计我们自己的转换器或使用电池对我们的项目而言效率较低。购买此模块后,只需将一根导线焊接到输入端子,您就应该准备好使用其余电路。
一切焊接完毕后,它应该看起来像这样。
如您所见,我已经使用了三个2针接线盒。其中一个用于从AC-DC转换器模块馈入+ V,另外两个用于将AC负载连接到继电器。
现在,让我们将接线盒上的端子连接到我们的Perf板上。
您会注意到我的接线盒有三个端子(插头点)。其中一个(最右边)用于为我们的AC-Dc转换器模块供电,另外两个用于连接AC负载。如您所见,中性线(黑线)已连接到所有三个插头点。但是相线(黄线)是空的。两个插接点(两根红线)的相端也保持空闲。所有这三根自由线应连接到我们添加到Perf板上的Relay端子,如下所示
我的Perf板完全适合接线盒,请确保您也这样做。建立连接后,将程序上传到ESP模块,将其安装在Perf板上,然后拧紧接线盒。
ESP8266程式:
我们的ESP8266模块使用Arduino IDE进行编程。如前所述,如果您想知道如何使用Arduino IDE编程ESP,请访问链接中的教程。完整的程序在本教程的结尾给出。该程序的概念是不言自明的,但是下面讨论的重要内容很少。
const char * ssid =“ BPAS主页”; //在此处输入您的Wifi SSID const char * password =“ cracksun”; //在这里输入密码
ESP模块将充当我们项目中的站点和访问点。因此,它在充当工作站时必须连接到我们的路由器。上面的代码行用于输入路由器的SSID和密码。根据您的路由器进行更改。
mainPage + =“
智能接线盒
通过CircuitDigest
开关1
“; mainPage + =”开关2
“;反馈=”开关1和开关2均关闭
“;当我们连接到模块的IP地址时,将显示一个在HTML上运行的网页。如上所示,此HTML代码必须在我们的Arduino程序中定义。这不需要您事先了解HTML,只需阅读HTML标记并将它们与输出进行比较,您将了解每个标记代表什么。
您也可以复制此HTML代码并将其粘贴到txt文件中,然后将其作为HTML文件运行以进行调试。
而(WiFi.status()!= WL_CONNECTED){delay(500); Serial.print(“。”); } Serial.println(“”); Serial.print(“ Connected to”); Serial.println(ssid); Serial.print(“ IP地址:”); Serial.println(WiFi.localIP());
我们还使用“串行监视器”选项来调试ESP模块,并知道程序当前正在运行的状态。串行监视器将输出“。” 在ESP与路由器建立连接之前。建立连接后,它将为您提供Web服务器的IP地址,其代码如上所示。
server.on(“ / switch1On”,(){反馈=“
开关1接通
“; currentPage = mainPage + feedback; server.send(200,” text / html“,currentPage); currentPage =”“; digitalWrite(GPIO_0,HIGH); delay(1000);});一旦知道IP地址,就可以在浏览器中使用该IP访问HTML代码。现在,当按下每个按钮时,一个请求将作为客户端发送到ESP模块。根据此客户端请求,模块将响应。例如,如果客户端请求“ / switchOn”,则模块将更新HTML代码并将其发送给客户端,并将GPIO引脚设置为高电平。上面显示了相同的代码。同样,对于每个动作,都定义了server.on()。
输出:
准备好硬件和程序后,将程序上传到我们的ESP8266模块,如本教程所示。然后单击Arduino IDE的串行监视器,如果SSID和密码匹配,您应该会看到类似的内容
记下在串行监视器中显示的IP地址。在我的情况下,IP地址为“
现在,将ESP模块放在我们的中继板上,关闭接线盒并打开电源,然后将GPIO引脚短接至负载。如果在浏览器中输入IP地址后一切正常,则应该看到以下屏幕
现在只需打开/关闭您喜欢的开关,它便会反映在实际的硬件上。那是伙计们,您只需将它们连接到插头即可切换您喜欢的交流负载。希望您喜欢该项目并使其正常运行,如果不使用注释部分,我将很乐意为您提供帮助。
以下视频显示了这个DIY智能接线盒项目的完整工作。