🌡️ درس 85: صفحهی وب سنسور
دما و رطوبت اتاق را در صفحهای ببین که خودش تازه میشود.
سطح: پیشرفته · زمان: حدود 18 دقیقه · مفاهیم: DHT11، وبسرور، refresh
قدمهای این درس
- چرا صفحهی سنسور؟
- قدم ۱ — سیمکشی DHT11
- قدم ۲ — ساختن صفحه از عددها
- اشتباه رایج — سنسور در loop با delay
- چالش
نمونهای از کد این درس
// 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) + " °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();
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓