🌐 ماموریت ۸۹: کلید LED در صفحه‌ی وب

WebServer server(80) بساز، با server.on مسیرهای /on و /off را تعریف کن و در loop حتماً handleClient را صدا بزن.

سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد

هدف‌ها

قطعه‌های لازم

▶ همین ماموریت را در شبیه‌ساز امتحان کن
💡 گیر کردی؟ داخل شبیه‌ساز راهنما را ببین، و اگر باز هم نشد دکمه‌ی «برام حلش کن» مدار را برایت می‌چیند تا ببینی چطور کار می‌کند.

جواب کامل

اول خودت امتحان کن! بعد جواب را ببین 👀

سیم‌کشی

  1. ESP32 DevKit (D4) ⟷ مقاومت 220Ω (PIN1)
  2. مقاومت 220Ω (PIN2) ⟷ LED (Red) (ANODE)
  3. LED (Red) (CATHODE) ⟷ ESP32 DevKit (GND1)

کد

// ESP32 web server: /on and /off switch the LED on GPIO4
#include <WiFi.h>
#include <WebServer.h>

WebServer server(80);
const int LED = 4;

void setup() {
  Serial.begin(115200);
  pinMode(LED, OUTPUT);
  WiFi.begin("MyHome", "12345678");
  while (WiFi.status() != WL_CONNECTED) delay(200);
  Serial.println(WiFi.localIP());

  server.on("/", []() {
    server.send(200, "text/html", "<h2>LED</h2><a href='/on'>ON</a> | <a href='/off'>OFF</a>");
  });
  server.on("/on", []() {
    digitalWrite(LED, HIGH);
    server.send(200, "text/html", "LED is ON <a href='/'>back</a>");
  });
  server.on("/off", []() {
    digitalWrite(LED, LOW);
    server.send(200, "text/html", "LED is OFF <a href='/'>back</a>");
  });
  server.begin();
}

void loop() {
  server.handleClient();
}

ماموریت‌های مشابه

📊

ماموریت ۹۰: صفحه‌ی وب با مقدار سنسور

🧾

ماموریت ۹۱: API با JSON

⚡

ماموریت ۹۲: مقدار زنده با WebSocket

📡

ماموریت ۹۳: انتشار با MQTT

📚 برای یاد گرفتن پایه‌ها سری به دوره‌ی آموزش آردوینو بزن · 🎯 همه‌ی ماموریت‌ها