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

دما و رطوبت اتاق را در صفحه‌ای ببین که خودش تازه می‌شود.

سطح: پیشرفته · زمان: حدود 18 دقیقه · مفاهیم: DHT11، وب‌سرور، refresh

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

  1. چرا صفحه‌ی سنسور؟
  2. قدم ۱ — سیم‌کشی DHT11
  3. قدم ۲ — ساختن صفحه از عددها
  4. اشتباه رایج — سنسور در loop با delay
  5. چالش

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

// ESP32: a web page that shows the DHT11 temperature and refreshes itself.
#include <WiFi.h>
#include <WebServer.h>
#include <DHT.h>

DHT dht(15, DHT11);                    // DATA on GPIO15
WebServer server(80);

void handleRoot() {
  float t = dht.readTemperature();
  float h = dht.readHumidity();
  String html = "<!doctype html><html><head>";
  html += "<meta http-equiv='refresh' content='3'>";   // reload every 3 s
  html += "</head><body style='font-family:sans-serif;text-align:center'>";
  html += "<h2>My room</h2>";
  if (isnan(t)) {
    html += "<p>Sensor error!</p>";
  } else {
    html += "<p style='font-size:40px'>" + String(t, 1) + " &deg;C</p>";
    html += "<p>Humidity: " + String(h, 0) + " %</p>";
  }
  html += "<p>Up for " + String(millis() / 1000) + " s</p>";
  html += "</body></html>";
  server.send(200, "text/html", html);
}

void setup() {
  Serial.begin(115200);
  dht.begin();
  WiFi.begin("MyHome", "YOUR_PASSWORD");
  while (WiFi.status() != WL_CONNECTED) delay(200);
  Serial.println(WiFi.localIP());
  server.on("/", handleRoot);
  server.begin();
}

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

چرا این درس؟

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

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

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

💡

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

🧾

درس 86: داده‌ی JSON