#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "SEU_SSID";
const char* password = "SEU_SENHA";
WebServer server(80);
const int ledRed = 27;
const int ledGreen = 26;
const int ledBlue = 25;
const int ldrPin = 34;
bool modoLdr = false;
void setup() {
Serial.begin(115200);
pinMode(ledRed, OUTPUT);
pinMode(ledGreen, OUTPUT);
pinMode(ledBlue, OUTPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) { delay(500); }
server.on("/", handleRoot);
server.on("/red", []() { if(!modoLdr) digitalWrite(ledRed, !digitalRead(ledRed)); server.sendHeader("Location", "/"); server.send(302); });
server.on("/green", []() { if(!modoLdr) digitalWrite(ledGreen, !digitalRead(ledGreen)); server.sendHeader("Location", "/"); server.send(302); });
server.on("/blue", []() { if(!modoLdr) digitalWrite(ledBlue, !digitalRead(ledBlue)); server.sendHeader("Location", "/"); server.send(302); });
server.on("/modo", []() { modoLdr = !modoLdr; server.sendHeader("Location", "/"); server.send(302); });
server.begin();
Serial.println(WiFi.localIP());
}
void loop() {
server.handleClient();
if (modoLdr) {
int luz = analogRead(ldrPin);
if (luz < 1500) {
digitalWrite(ledRed, HIGH);
digitalWrite(ledGreen, HIGH);
digitalWrite(ledBlue, HIGH);
} else {
digitalWrite(ledRed, LOW);
digitalWrite(ledGreen, LOW);
digitalWrite(ledBlue, LOW);
}
}
}
void handleRoot() {
int luz = analogRead(ldrPin);
String html = "<h1>ESP32 LDR & LEDs</h1>";
html += "<p>Leitura LDR: " + String(luz) + "</p>";
html += "<p>Modo: " + String(modoLdr ? "Automatico (LDR)" : "Manual") + "</p>";
html += "<a href='/red'>Vermelho ON/OFF</a><br>";
html += "<a href='/green'>Verde ON/OFF</a><br>";
html += "<a href='/blue'>Azul ON/OFF</a><br><br>";
html += "<a href='/modo'><b>Mudar Modo (Manual/LDR)</b></a>";
server.send(200, "text/html", html);
}