用滑条写个网页控制esp8266灯亮度的程序
时间: 2023-11-06 07:25:16 浏览: 90
好的,以下是一个简单的网页控制esp8266灯亮度的程序示例:
```c++
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
// WiFi信息
const char* ssid = "你的WiFi名称";
const char* password = "你的WiFi密码";
// 创建一个Web服务器
ESP8266WebServer server(80);
// LED灯引脚
const int ledPin = 2;
// 初始亮度为0
int brightness = 0;
void setup() {
// 初始化串口
Serial.begin(115200);
// 初始化LED灯
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
// 连接WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// 开启MDNS
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
// 设置Web服务器路由
server.on("/", handleRoot);
server.on("/slider", handleSlider);
server.onNotFound(handleNotFound);
// 启动Web服务器
server.begin();
Serial.println("Web server started");
}
void loop() {
// 处理Web服务器请求
server.handleClient();
// 更新LED灯亮度
analogWrite(ledPin, brightness);
}
// 处理根路由请求
void handleRoot() {
server.send(200, "text/html", "<html><head><title>ESP8266 LED</title></head><body><h1>ESP8266 LED</h1><p><a href=\"/slider\">点此调整亮度</a></p></body></html>");
}
// 处理滑条路由请求
void handleSlider() {
String sliderValue = server.arg("value");
brightness = sliderValue.toInt();
server.send(200, "text/html", "<html><head><title>ESP8266 LED</title></head><body><h1>ESP8266 LED</h1><p><a href=\"/slider\">点此调整亮度</a></p><p>亮度:" + sliderValue + "</p></body></html>");
}
// 处理未知路由请求
void handleNotFound() {
server.send(404, "text/plain", "404: Not Found");
}
```
在上面的示例中,我们使用了ESP8266WebServer库来创建一个Web服务器,然后设置了两个路由:
1. 根路由("/"),用于显示一个简单的HTML页面,包含一个指向滑条路由的链接;
2. 滑条路由("/slider"),用于处理滑条的值,并将其转换为亮度,然后将亮度值显示在HTML页面上。
要运行这个程序,你需要将WiFi名称和密码替换为你自己的,然后将LED灯连接到ESP8266的GPIO2引脚上,并将滑条连接到ESP8266的GPIO5引脚上。
注意:为了使MDNS正常工作,你需要打开你的路由器的mDNS功能(如果支持的话)或者在你的计算机上安装Bonjour服务(如果你使用的是Windows操作系统)。
阅读全文