ESP32+ 继电器-控制交流电器(Web 服务器)

采用继电器配合esp32远程控制电灯的方法,继电器也可以改成多路继电器,这样单个esp32可以控制多个电器原件

以下是esp32的io引脚,本文采用IO26作为信号输入

 将继电器模块连接到esp32,如下图所示

本例子中用的是一个继电器模块

以下是实物的接线图,图中没有用AC接灯泡而是直接连接esp32的3.3v,仅做参考

创建一个web网页的代码部分

#include <WiFi.h>
#include <WebServer.h>

const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

WebServer server(80);

int relayPin = 26; // 设置继电器输出引脚

void setup() {
  Serial.begin(115200);

  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW); // 初始关闭继电器

  // 连接WiFi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }

  Serial.println("WiFi connected!");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  // 网页请求
  server.on("/", handleRoot);
  server.on("/on", handleOn);
  server.on("/off", handleOff);

  server.begin();

  Serial.println("Server started");
}

void loop() {
  server.handleClient(); // 处理客户端请求
}

void handleRoot() {
   server.send(200, "text/html", "<html><head><title>ESP32 Web Control</title></head><body><a href=\"/on\"><button>ON</button></a> <a href=\"/off\"><button>OFF</button></a></body></html>");
}

void handleOn() {
  digitalWrite(relayPin, LOW); // 打开继电器
  server.send(200, "text/html", "<html><head><title>ESP32 Web Control</title></head><body><h1>Relay is ON</h1></body></html>");
}

void handleOff() {
  digitalWrite(relayPin, HIGH); // 关闭继电器
  server.send(200, "text/html", "<html><head><title>ESP32 Web Control</title></head><body><h1>Relay is OFF</h1></body></html>");
}

 将代码烧录进去esp32板上,在arduino上打开串口,查看web网页的ip,在浏览器上打开对应的ip地址

 web网页下的继电器控制

 打开关闭就能控制继电器的开关啦

 

 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 以下是一个简单的 ESP 远程控制继电器的代码示例: ``` #include <WiFi.h> const char *ssid = "your_SSID"; const char *password = "your_PASSWORD"; int relayPin = 5; WiFiServer server(80); void setup() { pinMode(relayPin, OUTPUT); digitalWrite(relayPin, LOW); Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); server.begin(); Serial.println("Server started"); IPAddress ip = WiFi.localIP(); Serial.print("Use this URL to control the device: "); Serial.print("http://"); Serial.print(ip); Serial.println("/"); } void loop() { WiFiClient client = server.available(); if (!client) { return; } Serial.println("new client"); while(!client.available()){ delay(1); } String req = client.readStringUntil('\r'); client.flush(); if (req.indexOf("/ON") != -1) { digitalWrite(relayPin, HIGH); } if (req.indexOf("/OFF") != -1) { digitalWrite(relayPin, LOW); } client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.print("Relay is now: "); if(digitalRead(relayPin)) { client.print("ON"); } else { client.print("OFF"); } client.println("<br><br>"); client.println("<a href=\"/ON\"\"><button>ON</button></a>"); client.println("<a href=\"/OFF\"><button>OFF</button></a><br />"); client.println("</html>"); delay(1); Serial.println("Client disonnected"); Serial.println(""); } ``` 该代码基于 ESP8266 或 ESP32 开发板,使用 WiFiClient 库进行 WiFi 连接,通过网页请求来控制继电器。 ### 回答2: ESP远程控制继电器可以使用Arduino IDE和ESP8266开发板来编写代码。以下是一个简单的示例代码: ``` #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> const char* ssid = "你的Wi-Fi名称"; const char* password = "你的Wi-Fi密码"; ESP8266WebServer server(80); // 创建一个Web服务器对象,监听端口80 int relayPin = D4; // 连接继电器的引脚 void setup() { Serial.begin(115200); pinMode(relayPin, OUTPUT); // 设置继电器引脚为输出模式 WiFi.begin(ssid, password); // 连接Wi-Fi while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("正在连接到Wi-Fi..."); } Serial.println("Wi-Fi连接成功!"); Serial.print("IP地址: "); Serial.println(WiFi.localIP()); server.on("/", handleRoot); // 处理根目录请求 server.on("/on", handleOn); // 处理打开继电器请求 server.on("/off", handleOff); // 处理关闭继电器请求 server.begin(); // 启动Web服务器 } void loop() { server.handleClient(); // 处理客户端请求 } void handleRoot() { server.send(200, "text/html", "<h1>ESP 远程控制继电器</h1><br><a href=\"/on\">打开继电器</a><br><a href=\"/off\">关闭继电器</a>"); // 发送网页内容到客户端 } void handleOn() { digitalWrite(relayPin, HIGH); // 继电器闭合(打开) server.send(200, "text/html", "<h1>继电器已打开</h1>"); // 发送网页内容到客户端 } void handleOff() { digitalWrite(relayPin, LOW); // 继电器断开(关闭) server.send(200, "text/html", "<h1>继电器已关闭</h1>"); // 发送网页内容到客户端 } ``` 在这个示例代码中,我们首先引入必要的库文件,包括`ESP8266WiFi`和`ESP8266WebServer`。然后设置了Wi-Fi的名称和密码。接下来创建了一个`ESP8266WebServer`对象,并指定监听端口为80。 在`setup()`函数中,我们开始串口通信,设置继电器引脚为输出模式,并连接到Wi-Fi网络。如果连接成功,将打印IP地址。然后注册请求处理函数`handleRoot`、`handleOn`和`handleOff`,分别处理根目录、打开继电器和关闭继电器的请求。最后启动Web服务器。 在`loop()`函数中,我们不断处理来自客户端的请求。当客户端请求打开继电器时,将置继电器引脚为高电平以打开继电器,并向客户端发送一个网页反馈。当客户端请求关闭继电器时,将置继电器引脚为低电平以关闭继电器,并向客户端发送一个网页反馈。 这个示例代码只是一个简单的演示,你可以根据自己的需求扩展功能,比如添加认证、权限控制等。 ### 回答3: ESP是指Espressif Systems公司生产的一系列Wi-Fi模块,其远程控制继电器的代码可以通过编程方式实现。以下是一个简单的例子: 首先,你需要使用Arduino IDE或其他支持ESP编程的集成开发环境。然后,你需要在代码中包含必要的库文件,例如ESP8266WiFi和ESP8266HTTPClient。 接下来,在设置部分,你需要指定要连接的Wi-Fi网络的凭据,以及要连接的服务器的URL。你可以使用ESP8266WiFi库提供的函数来连接到Wi-Fi网络。 然后,在循环部分,你可以设置一个按钮或传感器来控制继电器开关状态。当该按钮或传感器被触发时,你可以使用ESP8266HTTPClient库提供的功能来向服务器发送请求,并在服务器上执行适当的动作。 例如,你可以使用POST请求将指定的参数发送到服务器服务器可以解析这些参数并相应地控制继电器开关状态。 最后,你可以以适当的频率发送请求以保持与服务器的连接,并在需要时更新继电器的状态。 请注意,以上只是一个简单的例子,你可以根据你的具体需求进行修改和扩展。此外,在编写ESP控制代码时,你还需要考虑网络安全性和错误处理等方面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值