💡 درس 84: وب‌سرور: LED از مرورگر

ESP32 خودش یک سایت کوچک می‌شود؛ با دکمه‌های صفحه LED را روشن و خاموش کن.

سطح: پیشرفته · زمان: حدود 20 دقیقه · مفاهیم: وب‌سرور، HTTP، HTML

قدم‌های این درس

  1. مرورگر و سرور چطور حرف می‌زنند؟
  2. قدم ۱ — مدار
  3. قدم ۲ — سرور و سه آدرس
  4. اشتباه رایج — صفحه باز نمی‌شود
  5. چالش

نمونه‌ای از کد این درس

// 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
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

📶

درس 83: وصل شدن به وای‌فای

🌡️

درس 85: صفحه‌ی وب سنسور