使用ESP8266从世界各地控制中继
文件列表(压缩包大小 225.34K)
免费
概述
本项目计划使用ESP8266从世界任何地方控制继电器。你只需要在aREST应用程序中使用一个帐户和一个具有Internet连接的网络浏览器(在设置硬件(例如Arduino,ESP8266和中继模块)之后)。
在之前的ESP8266项目(**使用ESP8266和ANDROID控制继电器**)中,你可以学会如何借助ESP8266和使用MIT App Inventor开发的Android应用程序通过WiFi控制继电器模块。该项目的主要局限性在于其连接范围。
为了达到控制的目的,Android Phone和ESP8266 Module(中继连接到的模块)必须连接到同一WiFi网络。如果你试图在ESP模块的WiFi网络之外进行控制,那么需要进行新的设置。
在这个项目中,我们将通过研究如何从世界任何地方控制继电器来使上一个项目更进一步。你只需使用Web浏览器就可以在世界任何地方控制继电器。
为了实现这一目标,我将使用一个称为aREST的独特平台。结合使用带有ESP8266的REST,你可以轻松实现真正的IoT家庭自动化项目。
开发aREST平台的主要目的是使IoT和家庭自动化的概念更接近DIY社区。
使用aREST平台,你可以在世界任何地方创建基于Web的应用程序并控制Arduino,ESP8266和Raspberry Pi等不同类型的开发板。
为了使用aREST平台,你只需要aREST中的一个帐户,以及一些ESP8266(或Arduino)的库。
在稍后的部分中将说明如何将aREST和ESP8266一起使用的更多信息。
为了从世界任何地方控制继电器,你需要按照以下电路图进行连接。Arduino不是必需的,因为它仅用于对ESP8266模块进行编程,即充当一个USB到串行转换器。
如果你有专用的USB到串行转换器,则不需要Arduino开发板。
用于在世界任何地方控制继电器的电路的设计非常简单。实际上,该设计类似于我们在ANDROID APP控制继电器项目中所做的设计。
因此,我不再赘述电路的详细信息,建议你参考该项目以进行详细的电路设计。
该项目的代码如下。该代码的灵感来自aREST示例“ ESP8266_cloud”。
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <aREST.h>
WiFiClient espClient;
PubSubClient client(espClient);
aREST arestVar = aREST(client);
/*Enter an Unique ID to identify the device for arest.io
A Maximum of 6 characters are supported. Must be unique.*/
char* device_id = "re1403"; // Do not use this device_id. Create your own id.
/* Enter SSID and Password of your
WiFi Network*/
const char* ssid = "SSID"; // Name of WiFi Network.
const char* password = "PASSWORD"; // Password of your WiFi Network.
void callback(char* topic, byte* payload, unsigned int length);
void setup(void)
{
Serial.begin(115200);
client.setCallback(callback);
// Give name and ID to device
arestVar.set_id(device_id);
arestVar.set_name("MyESP");
// Connect to WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print("*");
}
Serial.println("");
Serial.println("WiFi connected");
char* out_topic = arestVar.get_topic();
}
void loop()
{
arestVar.loop(client);
}
void callback(char* topic, byte* payload, unsigned int length)
{
arestVar.handle_callback(client, topic, payload, length);
}
现在让我们了解如何使用ESP8266在世界任何地方控制继电器。
首先,按照电路图进行所有必要的连接。将Arduino连接到计算机,并将GPIO0连接到GND,并重置ESP模块。在上传上面给出的代码之前,你需要进行一些补充和更改。
注意:不要忘记用你自己的设备ID替换“ re1403”。
分配设备ID后,移至下一行并输入你的WiFi网络详细信息,即SSID和密码。然后移至显示“ arestVar.set_name(“ MyESP”);”的行。在这里你可以为设备设置名称。连接到aREST仪表板后,该名称将可见。
将代码上传到ESP模块后,如果打开串行监视器,则可以查看ESP模块连接到aREST框架的状态。
现在让我们看一下该项目的实施情况。在电路中我已将中继模块连接到ESP模块的GPIO2。
上载代码并连接到aREST Server之后,打开一个连接到与ESP8266模块不同的网络的Web浏览器,然后输入以下URL。
http://cloud.arest.io/re1403/mode/2/o
使用此URL,你正在配置ID为“ re1403”的设备,并将其引脚2设置为输出。如果配置成功,你将收到以下响应。
{“message”:”Pin D2 set to output”,”id”:”re1403″,”name”:”MyESP”,”hardware”:”esp8266″,”connected”:true}
现在,你的设备已配置完毕,你可以继续控制其引脚,即可以将引脚设为高电平或低电平。为此,你需要使用两个URL。
要将引脚设为高电平,请使用以下URL。
https://cloud.arest.io/re1403/digital/2/1
将引脚设为高电平的响应如下。
{“message”:”Pin D2 set to 1″,”id”:”re1403″,”name”:”MyESP”,”hardware”:”esp8266″,”connected”:true}
为了使引脚变为低电平,URL为:
https://cloud.arest.io/re1403/digital/2/0
此URL的响应为:
{“message”:”Pin D2 set to 0″,”id”:”re1403″,”name”:”MyESP”,”hardware”:”esp8266″,”connected”:true}
注意:我在项目中使用的继电器模块是一个低电平有效的继电器。因此,ESP上的低电平将打开继电器,ESP上的高电平将关闭继电器。
当你完成上述所有步骤及操作,便可以开始使用ESP8266和aREST在世界任何地方控制继电器。
请注意,你无需在aREST框架中拥有帐户即可实施上述过程。但是使用aREST创建帐户有一个优势。使用以下URL并在aREST中创建一个帐户。
如果你已经拥有使用aREST的帐户,请使用上述URL登录。然后你将看到以下页面。
之后,输入新的Dashboard标题,例如“ ESP8266_Relay”,然后单击“添加新的仪表板”。打开新建的dashboard。
在这里,你可以添加要控制的设备。给设备命名,设备ID(在代码中已经提到),引脚类型(在本例中为数字),引脚编号(引脚2)和控件类型(“ ON-OFF”按钮),并创建一个新元素。
注意:你可以随时显示或隐藏编辑详细信息。
如果一切顺利,单击创建新元素(包含所有详细信息)的那一刻,你将获得设备名称,该名称是你在代码中设置的(wideMyESP)及其状态(线上)。
现在,你可以控制通过此接口连接到ESP8266的GPIO2的继电器。因此,创建一个aREST帐户的好处是你无需输入前面提到的URL来控制ESP模块。
除了ESP模块的URL和AREST Dashboard控件之外,我还将向你展示如何使用MIT App Inventor 2应用程序创建Android应用程序以及如何使用该应用程序在世界各地控制中继。
你只需要在App中创建两个Button元素和一个Web元素,如下图所示。我添加了一些额外的标签来标明项目的标题,并指出中继的状态。
在“blocks”部分中,为“Button”创建块并添加Web元素。将那些相应的Web元素链接到我之前提到的URL。无论何时单击按钮,应用程序都会向该URL发送请求,从而控制中继。
注意:我尚未提供使用MIT App Inventor 2应用程序创建Android应用程序的完整细节。
所有需要的文件在下载区均可找到。
via:https://www.electronicshub.org/control-a-relay-from-anywhere-in-the-world-using-esp8266/
如果遇到文件不能下载或其他产品问题,请添加管理员微信:ligongku001,并备注:产品反馈
评论(0)