🌐 وبسرور ESP32 به روش WiFiServer
همان روشن و خاموش کردن LED از صفحهی وب، به روشی که بیشتر آموزشهای اینترنت مینویسند: خواندن درخواست و چاپ جواب خط به خط.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو (سهبعدی + کد)
قطعات لازم
کد کامل پروژه
// ESP32 web server the "raw" way (WiFiServer): read the request yourself
// and print the answer line by line. Run it, then open the «مرورگر» tab.
#include <WiFi.h>
const char* ssid = "MyHome";
const char* password = "12345678";
const int LED = 4;
WiFiServer server(80);
String header = "";
bool ledOn = false;
void setup() {
Serial.begin(115200);
pinMode(LED, OUTPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(200);
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
WiFiClient client = server.available(); // is a browser asking?
if (client) {
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
header += c;
if (c == '\n') {
if (currentLine.length() == 0) { // an empty line = end of the request
if (header.indexOf("GET /led/on") >= 0) ledOn = true;
if (header.indexOf("GET /led/off") >= 0) ledOn = false;
digitalWrite(LED, ledOn ? HIGH : LOW);
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE html><html><body style='font-family:sans-serif;text-align:center'>");
client.println("<h1>ESP32 LED</h1>");
client.println(ledOn ? "<p>LED is ON</p>" : "<p>LED is OFF</p>");
client.println("<p><a href='/led/on'><button>ON</button></a> <a href='/led/off'><button>OFF</button></a></p>");
client.println("</body></html>");
client.println();
break;
} else {
currentLine = "";
}
} else if (c != '\r') {
currentLine += c;
}
}
}
header = "";
client.stop();
}
}
چطور اجرایش کنم؟
- شبیهساز تینکرکد فارسی را باز کن و «مود آردوینو» را انتخاب کن.
- از پنل «نمونهها»، «وبسرور ESP32 به روش WiFiServer» را بارگذاری کن — مدار و کد با هم میآیند.
- دکمهی اجرا ▶ را بزن و خروجی Serial و رفتار قطعات را تماشا کن.
- حالا کد را تغییر بده — عددها، پینها، ترتیب — و دوباره اجرا کن!