🌐 ماموریت ۸۹: کلید LED در صفحهی وب
WebServer server(80) بساز، با server.on مسیرهای /on و /off را تعریف کن و در loop حتماً handleClient را صدا بزن.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد
هدفها
- ☐ یه برد (آردوینو یا ESP32) روی صحنه باشه
- ☐ یه ESP32 روی صحنه باشه
- ☐ یه LED
- ☐ مسیرهای وب تعریف بشن
- ☐ درخواستها جواب داده بشن
- ☐ شبیهسازی در حال اجرا
قطعههای لازم
- ESP32 DevKit
- مقاومت 220Ω
- LED قرمز
💡 گیر کردی؟ داخل شبیهساز راهنما را ببین، و اگر باز هم نشد دکمهی «برام حلش کن» مدار را برایت میچیند تا ببینی چطور کار میکند.
جواب کامل
اول خودت امتحان کن! بعد جواب را ببین 👀
سیمکشی
- ESP32 DevKit (D4) ⟷ مقاومت 220Ω (PIN1)
- مقاومت 220Ω (PIN2) ⟷ LED (Red) (ANODE)
- 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
📚 برای یاد گرفتن پایهها سری به دورهی آموزش آردوینو بزن · 🎯 همهی ماموریتها