💡 درس 84: وبسرور: LED از مرورگر
ESP32 خودش یک سایت کوچک میشود؛ با دکمههای صفحه LED را روشن و خاموش کن.
سطح: پیشرفته · زمان: حدود 20 دقیقه · مفاهیم: وبسرور، HTTP، HTML
قدمهای این درس
- مرورگر و سرور چطور حرف میزنند؟
- قدم ۱ — مدار
- قدم ۲ — سرور و سه آدرس
- اشتباه رایج — صفحه باز نمیشود
- چالش
نمونهای از کد این درس
// ESP32 web server: switch an LED on GPIO4 from a browser.
// Run it, then open the «مرورگر» (Browser) tab.
#include <WiFi.h>
#include <WebServer.h>
const int LED = 4;
WebServer server(80); // port 80 = normal web pages
void handleRoot() {
String html = "<!doctype html><html><body style='font-family:sans-serif;text-align:center'>";
html += "<h2>My ESP32 lamp</h2>";
html += "<p>LED is " + String(digitalRead(LED) ? "ON" : "OFF") + "</p>";
html += "<a href='/on'><button>ON</button></a> ";
html += "<a href='/off'><button>OFF</button></a>";
html += "</body></html>";
server.send(200, "text/html", html);
}
void setup() {
Serial.begin(115200);
pinMode(LED, OUTPUT);
WiFi.begin("MyHome", "YOUR_PASSWORD");
while (WiFi.status() != WL_CONNECTED) delay(200);
Serial.print("Open http://");
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
server.on("/on", []() {
digitalWrite(LED, HIGH);
handleRoot();
});
server.on("/off", []() {
digitalWrite(LED, LOW);
handleRoot();
});
server.begin();
}
void loop() {
server.handleClient(); // answer whoever is asking
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓