🧩 1. แนวคิดของ Mini Project: “Smart Environment Monitor”

ระบบตรวจวัดอุณหภูมิ ความชื้น และความเข้มแสง พร้อมควบคุมพัดลมและไฟส่องสว่าง อัตโนมัติ และสามารถดูข้อมูลแบบเรียลไทม์ผ่านเว็บได้


⚙️ 2. อุปกรณ์ที่ใช้

ลำดับรายการจำนวนหมายเหตุ
1ESP32 DevKit V11บอร์ดควบคุมหลัก
2DHT22 Sensor1วัดอุณหภูมิ / ความชื้น
3LDR + ตัวต้านทาน 10kΩ1วัดความสว่าง
4Relay Module (1 Channel)1เปิด/ปิดพัดลม
5LED ขาว (ไฟห้อง)1จำลองแสงไฟ
6Breadboard / Jumperต่อวงจร
7แหล่งจ่าย 5V USB1สำหรับ ESP32

🧠 3. ผังระบบ (System Diagram)

            [ DHT22                      [ LDR ]
                │                                 │
                ├─────► ESP32 ◄──────┐
                │                                                     │
                │                                                     │
         [ Relay → Fan ]                          [ LED Light ]
                │                                                    │
                └───────────► Web Server (Wi-Fi)

🔹 4. หลักการทำงาน

1️⃣ อ่านค่าอุณหภูมิ / ความชื้น จาก DHT22
2️⃣ อ่านค่าความสว่างจาก LDR
3️⃣ เงื่อนไขควบคุมอัตโนมัติ

  • ถ้าอุณหภูมิ > 30°C → เปิดพัดลม
  • ถ้าความสว่าง < 1000 → เปิดไฟ LED
    4️⃣ แสดงผลผ่าน Web Server (ภายใน Wi-Fi เดียวกัน)
    5️⃣ สามารถบันทึกค่าล่าสุดไว้ใน EEPROM (ถ้าต้องการจำสถานะ)

🔧 5. การต่อวงจร

Sensor / Actuatorขา ESP32หมายเหตุ
DHT22 (DATA)GPIO 4พร้อมตัวต้าน 10kΩ Pull-up
LDR → ADCGPIO 34Analog input
Relay (IN)GPIO 26Output ควบคุมพัดลม
LEDGPIO 27Output
3.3V / GNDใช้ร่วมทุกอุปกรณ์

💻 6. ตัวอย่างโค้ดหลัก

C++
#include <WiFi.h>
#include <WebServer.h>
#include <DHT.h>

#define DHTPIN 4
#define DHTTYPE DHT22
#define LDR_PIN 34
#define RELAY_PIN 26
#define LED_PIN 27

const char* ssid = "LIC-WiFi";
const char* password = "12345678";

WebServer server(80);
DHT dht(DHTPIN, DHTTYPE);

float t, h;
int lightValue;

void handleRoot() {
  String html = "<html><head><meta http-equiv='refresh' content='5'></head><body>";
  html += "<h2>Smart Environment Monitor</h2>";
  html += "Temperature: " + String(t) + "°C<br>";
  html += "Humidity: " + String(h) + "%<br>";
  html += "Light: " + String(lightValue) + "<br>";
  html += (digitalRead(RELAY_PIN) ? "Fan: ON<br>" : "Fan: OFF<br>");
  html += (digitalRead(LED_PIN) ? "Light: ON<br>" : "Light: OFF<br>");
  html += "</body></html>";
  server.send(200, "text/html", html);
}

void setup() {
  Serial.begin(115200);
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(LED_PIN, OUTPUT);
  dht.begin();

  WiFi.begin(ssid, password);
  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nConnected!");
  Serial.println(WiFi.localIP());

  server.on("/", handleRoot);
  server.begin();
}

void loop() {
  t = dht.readTemperature();
  h = dht.readHumidity();
  lightValue = analogRead(LDR_PIN);

  // ควบคุมอุปกรณ์อัตโนมัติ
  if (t > 30) digitalWrite(RELAY_PIN, HIGH);
  else digitalWrite(RELAY_PIN, LOW);

  if (lightValue < 1000) digitalWrite(LED_PIN, HIGH);
  else digitalWrite(LED_PIN, LOW);

  server.handleClient();
  delay(2000);
}

เปิด Browser แล้วพิมพ์ IP ของ ESP32 → จะแสดงค่าพร้อมสถานะแบบ Real-time


🔹 7. การต่อยอด (Extension Ideas)

แนวคิดคำอธิบาย
📊 ThingSpeak / MQTTส่งค่าขึ้น Cloud ดูกราฟแบบออนไลน์
🕒 Timer Controlตั้งเวลาเปิด/ปิดอัตโนมัติ
📱 Blynk / Line Notifyแจ้งเตือนผ่านมือถือเมื่ออุณหภูมิสูง
💾 EEPROM Saveบันทึกค่า Temp/Light ล่าสุดก่อนปิดระบบ
🧠 Machine Learningใช้โมเดลทำนายพฤติกรรมสภาพอากาศ (ระดับต่อไป)

🧰 8. ตัวอย่างผลลัพธ์ใน Web

-----------------------------
 Smart Environment Monitor
-----------------------------
Temperature : 31.2 °C
Humidity    : 68.1 %
Light       : 850
Fan         : ON
Light       : ON
-----------------------------

🧪 9. การประเมินผลนักเรียน

รายการประเมินรายละเอียดคะแนน
ความถูกต้องของวงจรต่ออุปกรณ์ครบ ถูกต้อง20
การทำงานของระบบอ่าน Sensor / ควบคุมได้จริง30
ความสามารถของ Web UIแสดงผล / ควบคุมได้20
ความคิดสร้างสรรค์ในการต่อยอดเพิ่มฟีเจอร์ เช่น แจ้งเตือน / เก็บ Log20
การนำเสนอผลงานอธิบายแนวคิดและผลลัพธ์10
รวม100 คะแนน

🧾 10. สรุปภาพรวมกระบวนการ (IoT Lifecycle)

┌───────────────────────────────────┐
│ 1️⃣ Sensing: อ่านข้อมูลจาก Sensor                                          │
│ 2️⃣ Processing: ประมวลผลบน ESP32                                     │
│ 3️⃣ Action: ควบคุม Actuator (Relay/LED)                              │
│ 4️⃣ Communication: ส่งข้อมูลผ่าน Wi-Fi                                 │
│ 5️⃣ Visualization: แสดงผลบน Web / App                               │
└───────────────────────────────────┘

📚 11. สรุปทักษะที่นักเรียนได้จาก Project นี้

หมวดทักษะรายละเอียด
การเขียนโปรแกรมใช้ Digital / Analog I/O, Control Structure, Function
การเชื่อมต่อ Sensor / Actuatorเข้าใจการต่อวงจรและการอ่านค่าจากอุปกรณ์จริง
การประมวลผลข้อมูลใช้เงื่อนไขควบคุม, คำนวณค่ากลาง, แปลงสัญญาณ
การสื่อสารข้อมูลใช้ Wi-Fi / Web Server / HTTP
การออกแบบระบบ IoTเข้าใจการไหลของข้อมูลจาก Sensor → Cloud
การทำงานเป็นทีมแบ่งหน้าที่ ออกแบบวงจร / เขียนโค้ด / ทดสอบ
การคิดเชิงระบบออกแบบระบบสมบูรณ์จากแนวคิดหนึ่งจุด

🎓 12. แนวทางขยายต่อในระดับสูง (ESP32 Advanced)

แนวคิดต่อยอดคำอธิบาย
✅ MQTT / Node-RED Dashboardสร้าง UI ออนไลน์แบบเรียลไทม์
✅ OTA (Over-The-Air Update)อัปเดตโปรแกรมผ่าน Wi-Fi
✅ Firebase / Google Sheetsเก็บข้อมูลลงฐานข้อมูลออนไลน์
✅ ESP-NOWสื่อสารระหว่าง ESP32 หลายตัวโดยไม่ผ่าน Wi-Fi
✅ FreeRTOS Taskแบ่งงานหลายอย่างให้ทำพร้อมกัน
✅ AIoTใช้ Machine Learning ในการตัดสินใจ