🏠 داشبورد خانه روی گوشی
یک صفحه: کلید لامپ (LED)، دمای DHT11 و اسلایدر سرعت پنکه (موتور با ترانزیستور).
سطح: چالشی ⭐⭐⭐ · مود: آردوینو (سهبعدی + کد)
قطعات لازم
کد کامل پروژه
// ESP32 home dashboard: lamp switch, temperature and a fan slider.
#include <WiFi.h>
#include <WebServer.h>
#include <DHT.h>
const int LAMP = 4; // LED = the lamp
const int FAN = 25; // NPN transistor base -> DC motor
DHT dht(15, DHT11);
WebServer server(80);
const char page[] PROGMEM = R"rawliteral(<!DOCTYPE html><html>
<head><meta name="viewport" content="width=device-width, initial-scale=1"></head>
<body style="font-family:sans-serif;text-align:center">
<h2>My home</h2>
<p>Lamp <input type="checkbox" onchange="fetch('/lamp?on='+(this.checked?1:0))"></p>
<p>Temperature: <b id="t">...</b></p>
<p>Fan <input type="range" min="0" max="255" value="0" onchange="fetch('/fan?v='+this.value)"></p>
<script>
setInterval(function () {
fetch('/temp').then(function (r) { return r.text(); })
.then(function (x) { document.getElementById('t').innerText = x + ' C'; });
}, 2000);
</script></body></html>
)rawliteral";
void setup() {
Serial.begin(115200);
pinMode(LAMP, OUTPUT);
ledcAttach(FAN, 1000, 8); // motor speed by PWM, 0..255
dht.begin();
WiFi.begin("MyHome", "YOUR_PASSWORD");
while (WiFi.status() != WL_CONNECTED) delay(200);
Serial.println(WiFi.localIP());
server.on("/", []() { server.send(200, "text/html", page); });
server.on("/lamp", []() {
bool on = server.arg("on") == "1";
digitalWrite(LAMP, on ? HIGH : LOW);
server.send(200, "text/plain", on ? "lamp on" : "lamp off");
});
server.on("/fan", []() {
int v = constrain(server.arg("v").toInt(), 0, 255);
ledcWrite(FAN, v);
server.send(200, "text/plain", String(v));
});
server.on("/temp", []() {
server.send(200, "text/plain", String(dht.readTemperature(), 1));
});
server.begin();
}
void loop() {
server.handleClient();
}
چطور اجرایش کنم؟
- شبیهساز تینکرکد فارسی را باز کن و «مود آردوینو» را انتخاب کن.
- از پنل «نمونهها»، «داشبورد خانه روی گوشی» را بارگذاری کن — مدار و کد با هم میآیند.
- دکمهی اجرا ▶ را بزن و خروجی Serial و رفتار قطعات را تماشا کن.
- حالا کد را تغییر بده — عددها، پینها، ترتیب — و دوباره اجرا کن!