0 有用
0 下载

使用ESP8266和Android MIT App Inventor控制继电器

文件列表(压缩包大小 42.65K)

免费

概述

需要的元件

  • ESP8266
  • Arduino UNO
  • 电阻(1KΩ和2.2KΩ)–均为1/4W
  • 跳线
  • 继电器模块
  • 5V小灯泡
  • 按钮
  • SPDT开关
  • Android app
  • Android手机
  • 可以上网的电脑

原理及流程

本项目目的是使用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。

电路图

下图为本项目的电路图,你可以看到我在电路图中使用了一个单通道继电器模块。

Control-a-Relay-using-ESP8266-and-Android-Circuit-Diagram

组件说明

ESP8266(ESP-01)WiFi模块:负责连接到WiFi网络并控制中继模块。

ESP8266-Arduino-Image-4

在本项目中,ESP8266模块充当HTTP Server。每当客户端(在本例中为Android App)发送请求时,ESP8266 Server都会接受请求并执行相关操作。

继电器模块:此项目中使用了两个通道的继电器模块,但仅使用了一个通道。此继电器模块可以与AC电源一起使用,但本例中使用一个5V的小灯泡来显示输出。

Relay-Module

电路设计

如果你仔细观察电路图,则所有连接都与我们在早期项目中看到的类似,例如如何通过互联网控制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("");
}

重要的提示:

  • 知道静态IP地址在做什么很重要。请仔细检查路由器中未使用(未分配)的IP地址,并将其分配给ESP8266。
  • 我建议你上传带有分配给ESP8266的静态IP地址的程序,以便你可以继续开发App。

创建Android App

MIT App Inventor是创建用于Android的简单应用程序的一种简便方法。使用以下URL打开App Developer应用程序:MIT APP INVENTOR 2

使用Google帐户登录后,创建一个新项目。创建新项目后,你将看到一个屏幕,你可以在该屏幕上布置不同的对象,例如按钮,滑块,文本框等。

创建一个类似于以下所示的界面。它由三个按钮,几个标签和一个Web组件组成。

Control-a-Relay-using-ESP8266-and-Android-App-Interface

注意: Web组件可以在左侧的“ Connectivity”选项卡中找到。

排列完所有组件并确定了应用布局后,从右上角切换到“Blocks”部分。

在“Blocks”部分中,创建如下图所示的块。你在代码中分配的静态IP地址必须在此块的URL部分中输入。

Control-a-Relay-using-ESP8266-and-Android-App-Blocks

你不必创建与我完全相同的应用程序。

在完成“Blocks”部分之后,你可以直接从浏览器或Android Phone来使用应用程序,而无需实际安装应用程序。为此,你必须下载并安装两个应用程序:

  • 计算机:MIT_Appinventor_Tools
  • Android:MIT AI2 Companion

最后,在完成应用程序的界面, blocks和debugging之后,你可以将.apk文件下载到计算机上,然后将其安装到设备(Android手机)上。

注意:要下载.apk文件,请转到Build并选择App(将.apk保存到我的计算机上)。

加工

根据电路图进行所有必要的连接,然后将程序上传到ESP8266 WiFi模块。

程序上传后,你将收到有关WiFi连接和静态IP地址的确认消息。现在打开我们使用MIT App Inventor 2开发的Android App,并将其安装在你的Android Phone上。

如果一切顺利,当你点击应用程序上的“ Lamp ON”按钮时,继电器将收到逻辑低电平信号,并且灯泡将亮起。同样,当按下“ Lamp OFF”按钮时,灯泡关闭。

注意:该项目中使用的继电器模块是低电平有效。

应用领域

  • 在这个项目中,我们已经看到了如何使用ESP8266通过MIT App Inventor 2 Application开发的Android App通过WiFi控制继电器。
  • 这样的项目可以成为复杂的家庭自动化系统的垫脚石,制造商不仅可以组装电路,还可以制造自己的Android应用程序。
  • 该项目的下一个重要步骤是在世界任何地方控制中继,即真正的Web受控中继。

最后

所有需要的文件在下载区均可找到。

via:https://www.electronicshub.org/control-a-relay-using-esp8266-wifi-based/

理工酷提示:

如果遇到文件不能下载或其他产品问题,请添加管理员微信:ligongku001,并备注:产品反馈

评论(0)

0/250