使用ESP8266控制世界任何地方的继电器

让我们继续使用ESP8266来控制世界任何地方的继电器,继续探索ESP8266模块。您所需要的只是一个Arest应用程序中的帐户和具有Internet连接性的Web浏览器(设置硬件后,即Arduino,ESP8266和Relay模块)。

概述

在以前的ESP8266项目中使用ESP8266和Android控制继电器,我向您展示了如何在ESP8266的帮助下通过WiFi控制继电器模块(随后是连接到继电器的负载),以及使用MIT App Inventor 2应用程序开发的Android应用程序。

即使这是一个很棒的项目,您可以在其中开发自己的Android应用程序并使用该应用程序控制继电器模块,但该项目的主要限制是其连接范围。

更清楚地,必须将Android手机(已安装应用程序上)和ESP8266模块(接力连接到该模块)必须连接到同一WiFi网络。如果您尝试在ESP模块的WiFi网络之外进行控制,那么您最终会感到失望。

因此,在这个项目中,我们将通过查看如何从世界任何地方控制继电器来进一步迈出一步。是的。这是正确的。您可以使用网络浏览器来控制世界任何地方的继电器。

为了实现这一目标,我将使用一个名为Arest的唯一平台。将Arest与ESP8266一起使用,您可以轻松地实现一个真正的物联网家庭自动化项目。

关于Arest的简短说明

Arest平台开发的主要目的是将物联网和家庭自动化的概念更接近DIY社区。

使用AREST平台,您可以创建基于Web的应用程序,并控制来自世界任何地方的Arduino,ESP8266和Raspberry Pi,例如Arduino,ESP8266和Raspberry Pi。

为了使用Arest平台,您所需要的只是一个帐户(不是强制性的,我将在工作中解释),以及ESP8266(或Arduino)的一些库。而已。

以后的部分将说明有关AREST以及如何将其与ESP8266一起使用的更多信息。

电路原理图

为了控制世界任何地方的继电器,您需要按照以下电路图进行连接。Arduino并不是强制性的,因为它仅用于编程ESP8266模块,即它是USB到串行转换器。

如果您碰巧拥有专用的USB到串行转换器,那么您将不需要Arduino板。

使用ESP8266电路图从世界任何地方控制继电器

需要组件

  • USB到Serial Converter(Arduino Board)
  • ESP-01(ESP8266模块)
  • 两个通道继电器模块(仅使用一个通道)
  • 按钮
  • 电阻(1kΩ和2.2kΩ)
  • 跳线
  • 滑动开关(SPDT)

电路设计

从世界任何地方控制继电器的电路设计非常简单。实际上,设计与我们在Android App控制的继电器项目

因此,我不会再介绍电路的详细信息,建议您参考该项目以进行详细的电路设计。

代码

该项目的代码如下。此代码是从最大的示例“ ESP8266_Cloud”启发的。我将在工作部分中的更多信息解释。

硬件和软件配置

现在让我们尝试了解该项目,并查看如何使用ESP8266从世界任何地方控制继电器。

首先,根据电路图进行所有必要的连接。将Arduino连接到计算机,然后将GPIO0连接到GND并重置ESP模块。在上面给出的代码上传之前,您需要进行一些添加和更改。

第一个重要的是,您需要特殊的库,称为“ Arest”和“ PubSubclient”。这两个库可以从以下链接下载休息pubsubclient

下载zip文件并提取内容。然后将两个称为“ Arest-Master”和“ PubSubclient-Master”的文件夹复制到文档 - > Arduino –>库。该路径将是这样的“ C:\ Users \ Ravi \ Documents \ arduino \ libraries”。

执行此操作后,将上述代码复制到Arduino IDE中,然后移至“ char* device_id =“ re1403”;”的线路。该行包含特定于设备的唯一设备ID。用您的ID替换为最多6个字符(可以是字母数字,不确定特殊字符)。

笔记:不要忘记用自己的设备ID替换“ RE1403”。

分配了设备ID后,请继续进入下一行并输入WiFi网络详细信息,即SSID和密码。然后移至“ arestvar.set_name(“ myesp”);”的行。在这里,您可以为设备设置名称。连接到Arest仪表板后,将看到此名称。

现在,您可以将代码上传到ESP模块。上传后,如果打开串行监视器,则可以查看ESP模块是否连接到Arest框架的状态。

使用ESP8266串行监视器从世界任何地方控制继电器

使用ESP8266和Web浏览器控制世界任何地方的继电器

现在让我们查看项目的实施。请记住,在电路中,我将继电器模块连接到ESP模块的GPIO2。

上传代码并连接到AREST服务器后,打开与ESP8266模块连接到不同网络的Web浏览器,然后输入以下URL。

http://cloud.arest.io/re1403/mode/2/o

使用此URL,您正在配置具有ID“ RE1403”的设备,并将其引脚2设置为输出。如果配置成功,您将获得如下响应。

{“消息”:“ PIN D2设置为输出”,“ ID”:“ RE1403”,“名称”:“ myesp”,“硬件”:“ ESP8266”,“连接”:true}

现在,配置了您的设备,您可以继续控制其销钉,即您可以使PIN高或低。为此,您需要使用两个URL。

要使PIN高高,请使用以下URL。

https://cloud.arest.io/re1403/digital/2/1

对高销的响应如下。

{“消息”:“ PIN D2设置为1”,“ ID”:“ RE1403”,“名称”:“ myesp”,“硬件”:“ ESP8266”,“连接”:true}

为了使PIN降低,URL是:

https://cloud.arest.io/re1403/digital/2/0

对此URL的响应是:

{“消息”:“ PIN D2设置为0”,“ ID”:“ RE1403”,“名称”:“ myesp”,“硬件”:“ ESP8266”,“连接”:true}

笔记:我在项目中使用的继电器模块是一个主动低模块。因此,ESP的低点将打开继电器,ESP上的高位将关闭中继。

而已。您可以使用上述所有步骤,并使用ESP8266和AREST控制世界任何地方的继电器。

使用ESP8266和Arest仪表板从世界任何地方控制继电器

请注意,您不需要在Arest框架中的帐户即可实施上述过程。但是有一个优势是用Arest创建帐户。

使用以下URL并在Arest中创建一个帐户。

https://dashboard.arest.io/

如果您已经有一个带有Arest的帐户,请使用上述URL登录您的凭据。之后,您将获得以下页面。

使用ESP8266 AREST IMAGE 1从世界任何地方控制继电器1

之后,输入一个新的仪表板标题,例如“ ESP8266_RELAY”,然后单击“添加新仪表板”。这将在“您的仪表板:”下添加。打开新创建的仪表板。

使用ESP8266 AREST Image 2从世界任何地方控制继电器2

在这里,您可以添加要控制的设备。给设备,设备ID(您在程序中提到),PIN类型(在我们的情况下),引脚号(引脚2)和控件类型(ON - OFF按钮)并创建一个新元素。

笔记:您可以随时显示或隐藏编辑详细信息。

如果一切顺利,请单击创建一个新元素(带有所有详细信息)的那一刻,您将获得设备的名称,该名称在代码中设置(在我的情况下,是myesp)和它的状态(在线的)。

现在,您可以控制继电器,该中继通过此接口连接到ESP8266的GPIO2。因此,创建AREST帐户的好处是,您不需要输入上述URL来控制ESP模块。

使用ESP8266 AREST IMAGE 3控制世界任何地方的继电器3

使用ESP8266和Android应用程序从世界任何地方控制继电器

除了ESP模块的URL和AREST仪表板控件外,我还将向您展示如何使用MIT App Inventor 2应用程序创建Android应用程序,并使用该应用程序从世界任何地方控制继电器。

您需要的只是在应用程序中创建两个按钮元素,如下图所示。我添加了一些额外的标签来提及项目的标题,并指示继电器的状态。

使用ESP8266 MIT应用1从世界任何地方控制继电器1

在“块”部分中,为按钮创建块并添加Web元素。将这些相应的Web元素链接到我之前提到的URL。因此,每当您单击按钮时,该应用程序都会向该URL发送请求,结果将控制继电器。

使用ESP8266 MIT应用2控制世界任何地方的继电器2

笔记:我没有使用MIT应用Inventor 2应用程序提供有关创建Android应用程序的完整详细信息。如果您有兴趣,我也可以在该主题上进行一个专门的项目。

申请

  • 我认为控制继电器的应用以及互联网上的电气设备非常明确。
  • 真正的基于物联网的家庭自动化是您可以监视温度,烟雾警报等的家用必需品的主要和重要应用程序之一。同时,可以控制任何电器,互联网上的一切以及来自世界任何地方的所有电器。

18个回应

  1. 出色的工作,并有很好的解释,我们非常感谢您所做的努力,谢谢

  2. 首先,谢谢先生。这是非常好的项目。您的解释非常简单,可以理解孔项目。
    接下来,我们可以控制世界上任何地方的Home Endertiance in en nobable Amable房间。这在当前的技术中非常有用。每个人都忙于他们的作品,他们都可以使用应用程序来关闭开关,我们可以关闭世界上任何地方的开关。
    我的问题是您如何知道启用物联网的当前状态。(打开和关闭多少个开关)
    即,可能应通过使用MIT应用程序发明家进行通知到应用程序如何完成,请您解释一下先生,
    等待你的答复

  3. 一个非常好的项目,您能制作一个视频如何制作应用程序,以便我们可以制作它。

  4. 我已经能够按照您创建的方式准确地运行代码。但是,无论设备如何,我都希望通过继电器控制多个设备。我可以打开多个设备。

    正如我在当前示意图中看到的那样,如果我连接多个设备,它将全部打开或全部关闭。您能解释一下我如何实现这一目标吗?

  5. 谢谢,这是一个很好的指导,而不是完美的,因为在项目中没有提及我如何在Web和Android应用中设置高安全性?再次感谢

  6. i; m在错误下方错误:

    “ class arest”没有名为“ get_topic”的成员
    char* out_topic = arestvar.get_topic();
    ^
    退出状态1
    “ class arest”没有名为“ get_topic”的成员

发表评论

您的电子邮件地址不会被公开。

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map