使用ESP8266和Android MIT App Inventor控制继电器
文件列表(压缩包大小 42.65K)
免费
概述
本项目目的是使用ESP8266和Android通过在MIT App Inventor的帮助下开发的应用程序控制继电器。通过在你的Android手机中安装此应用,来使用ESP8266控制继电器,该ESP8266需要与你的手机连接到相同的WiFi网络。
ESP8266 WiFi模块已成为DIY物联网市场的重要组成部分。ESP8266有多种型号,例如AiThinker的ESP-01,NodeMCU等,但目的和工作是相同的。
有多个基于ESP8266 WiFi模块的IoT项目,但是家庭自动化(即通过WiFi或Internet控制不同的电器)一直是趋势和需求项目。因此,在本项目中,我将向你展示如何将简单的中继模块连接到ESP8266 WiFi模块,以及如何使用ESP8266控制继电器。
我还将创建一个Android应用,你可以使用它来控制继电器。为了开发Android App,我将使用MIT App Inventor。
下图为本项目的电路图,你可以看到我在电路图中使用了一个单通道继电器模块。
ESP8266(ESP-01)WiFi模块:负责连接到WiFi网络并控制中继模块。
在本项目中,ESP8266模块充当HTTP Server。每当客户端(在本例中为Android App)发送请求时,ESP8266 Server都会接受请求并执行相关操作。
继电器模块:此项目中使用了两个通道的继电器模块,但仅使用了一个通道。此继电器模块可以与AC电源一起使用,但本例中使用一个5V的小灯泡来显示输出。
如果你仔细观察电路图,则所有连接都与我们在早期项目中看到的类似,例如如何通过互联网控制ESP8266。所以在这里我不会详细介绍所有连接。主要区别在于ESP8266 WiFi模块的GPIO2引脚需要连接到继电器的INPUT。
为了使用ESP8266控制继电器,我编写了以下代码。此代码负责将ESP8266 WiFi模块连接到指定的WiFi网络,为ESP8266模块分配静态IP地址,在ESP8266上创建一个简单的HTTP Server,并充当侦听客户端。
#include <ESP8266WiFi.h>
const char* ssid = "SSID";//type your ssid
const char* password = "PASSWORD";//type your password
int relayPin = 2; // GPIO2 of ESP8266
WiFiServer ESPserver(80);//Service Port
void setup()
{
Serial.begin(115200);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH);
Serial.println();
Serial.println();
Serial.print("Connecting to: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
delay(5000);
/*
The following four line of the
code will assign a Static IP Address to
the ESP Module. If you do not want this,
comment out the following four lines.
*/
IPAddress ip(192,168,1,254);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);
WiFi.config(ip, gateway, subnet);
delay(5000);
while (WiFi.status() != WL_CONNECTED)
{
delay(100);
Serial.print("*");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
ESPserver.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("The URL to control ESP8266: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
}
void loop()
{
// Check if a client has connected
WiFiClient client = ESPserver.available();
if (!client)
{
return;
}
// Wait until the client sends some data
Serial.println("New Client");
while(!client.available())
{
delay(1);
}
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Match the request
int value = LOW;
if (request.indexOf("/RELAYON") != -1)
{
Serial.println("LAMP is ON");
digitalWrite(relayPin, LOW);
value = LOW;
}
if (request.indexOf("/RELAYOFF") != -1)
{
Serial.println("LAMP is OFF");
digitalWrite(relayPin, HIGH);
value = HIGH;
}
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // IMPORTANT
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("Status of the Lamp: ");
if(value == LOW)
{
client.print("ON");
}
else
{
client.print("OFF");
}
delay(1);
//client.stop();
Serial.println("Client disconnected");
Serial.println("");
}
重要的提示:
MIT App Inventor是创建用于Android的简单应用程序的一种简便方法。使用以下URL打开App Developer应用程序:MIT APP INVENTOR 2。
使用Google帐户登录后,创建一个新项目。创建新项目后,你将看到一个屏幕,你可以在该屏幕上布置不同的对象,例如按钮,滑块,文本框等。
创建一个类似于以下所示的界面。它由三个按钮,几个标签和一个Web组件组成。
注意: Web组件可以在左侧的“ Connectivity”选项卡中找到。
排列完所有组件并确定了应用布局后,从右上角切换到“Blocks”部分。
在“Blocks”部分中,创建如下图所示的块。你在代码中分配的静态IP地址必须在此块的URL部分中输入。
你不必创建与我完全相同的应用程序。
在完成“Blocks”部分之后,你可以直接从浏览器或Android Phone来使用应用程序,而无需实际安装应用程序。为此,你必须下载并安装两个应用程序:
最后,在完成应用程序的界面, blocks和debugging之后,你可以将.apk文件下载到计算机上,然后将其安装到设备(Android手机)上。
注意:要下载.apk文件,请转到Build并选择App(将.apk保存到我的计算机上)。
根据电路图进行所有必要的连接,然后将程序上传到ESP8266 WiFi模块。
程序上传后,你将收到有关WiFi连接和静态IP地址的确认消息。现在打开我们使用MIT App Inventor 2开发的Android App,并将其安装在你的Android Phone上。
如果一切顺利,当你点击应用程序上的“ Lamp ON”按钮时,继电器将收到逻辑低电平信号,并且灯泡将亮起。同样,当按下“ Lamp OFF”按钮时,灯泡关闭。
注意:该项目中使用的继电器模块是低电平有效。
所有需要的文件在下载区均可找到。
via:https://www.electronicshub.org/control-a-relay-using-esp8266-wifi-based/
如果遇到文件不能下载或其他产品问题,请添加管理员微信:ligongku001,并备注:产品反馈
评论(0)