🏠 داشبورد خانه روی گوشی

یک صفحه: کلید لامپ (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();
}

چطور اجرایش کنم؟

  1. شبیه‌ساز تینکرکد فارسی را باز کن و «مود آردوینو» را انتخاب کن.
  2. از پنل «نمونه‌ها»، «داشبورد خانه روی گوشی» را بارگذاری کن — مدار و کد با هم می‌آیند.
  3. دکمه‌ی اجرا ▶ را بزن و خروجی Serial و رفتار قطعات را تماشا کن.
  4. حالا کد را تغییر بده — عددها، پین‌ها، ترتیب — و دوباره اجرا کن!
این پروژه را رایگان در شبیه‌ساز اجرا کن 🤖