Project 03 • Automatic Light Control System

ระบบเปิด–ปิดไฟอัตโนมัติตามแสง

หน้าเว็บตัวอย่างโครงงาน IoT สำหรับนักศึกษา โดยใช้ LDR ตรวจวัดระดับแสงรอบข้าง แล้วควบคุมหลอด LED หรือหลอดไฟจำลองให้เปิดเมื่อแสงน้อยและปิดเมื่อแสงเพียงพอ พร้อมเพิ่มโหมด Manual/Auto และแสดงผลผ่าน Dashboard

2–4 คนขนาดทีมแนะนำ
3–5 สัปดาห์ระยะเวลาพัฒนา
Prototypeใช้ทดสอบจริงได้
Smart Light Monitor
Light Level Control
AUTO
Light Level

285 lx

LED / Lamp

ON

Mode

AUTO

Network

Dashboard

แสงน้อยกว่าค่ากำหนด • เปิดไฟอัตโนมัติ
Project Overview

แนวคิดโครงงาน

โครงงานนี้พัฒนาระบบตรวจวัดระดับแสงรอบข้างด้วย LDR แล้วนำค่าที่ได้ไปประมวลผลบน Arduino หรือ ESP32 เพื่อควบคุมหลอด LED หรือหลอดไฟจำลองให้เปิด–ปิดโดยอัตโนมัติ เมื่อแสงสว่างต่ำกว่าค่า Threshold ระบบจะเปิดไฟ และเมื่อแสงเพียงพอจะปิดไฟ พร้อมรองรับโหมด Manual/Auto และสามารถแสดงค่าความสว่าง สถานะไฟ และโหมดการทำงานผ่าน Dashboard ได้

LDR Sensor LED / Lamp Control Arduino / ESP32 Manual / Auto Mode

ข้อมูลสรุปโครงงาน

ระดับความยากเริ่มต้น
งบประมาณประมาณ 250–900 บาท
เหมาะกับPrototype ใช้งานจริง
ผลลัพธ์หลักควบคุมไฟตามแสง
ดูรายการส่งงาน
System Infographic

แผนภาพอธิบายการทำงานภาพรวมของระบบ

ภาพด้านล่างแสดงลำดับการทำงานของระบบเปิด–ปิดไฟอัตโนมัติตามแสง ตั้งแต่การตรวจวัดแสงด้วย LDR การประมวลผล การเปรียบเทียบค่า Threshold การควบคุมไฟ และการแสดงผลบน Dashboard

ระบบเปิด–ปิดไฟอัตโนมัติตามแสง LDR Sensor → Arduino/ESP32 → Threshold Decision → LED/Relay → Dashboard 1 ตรวจวัดแสง LDR อ่านระดับแสงรอบข้าง และส่งค่า Analog เข้า Controller 2 ประมวลผลค่า Arduino/ESP32 แปลงค่า เป็นระดับแสงหรือเปอร์เซ็นต์ 3 เทียบค่า Threshold ถ้าแสงน้อยกว่าเกณฑ์ → เปิดไฟ ถ้าแสงพอ → ปิดไฟ 4 ควบคุมไฟ เปิด–ปิด LED หรือหลอดไฟจำลอง 5 แสดงผล Dashboard ค่าความสว่าง สถานะไฟ และโหมด Manual/Auto สรุปแนวคิดของระบบ Input: ระดับแสงจาก LDR • Process: เปรียบเทียบกับ Threshold และโหมด Manual/Auto • Output: เปิด–ปิดไฟ LED/Relay และส่งข้อมูลขึ้น Dashboard เหมาะสำหรับ Prototype ใช้งานจริง เช่น ไฟทางเสภาพแสง ไฟโต๊ะอ่านหนังสือ ไฟในห้องเรียน หรือระบบประหยัดพลังงานขนาดเล็ก
Prototype Box Design

แบบกล่องควบคุมระบบเปิด–ปิดไฟอัตโนมัติตามแสง

ภาพนี้แสดงแนวคิดการออกแบบกล่องต้นแบบสำหรับระบบเปิด–ปิดไฟอัตโนมัติตามแสง โดยรวมช่องรับแสงสำหรับ LDR, หน้าจอ OLED, ไฟ LED แสดงสถานะ, Buzzer, บอร์ด ESP32/NodeMCU, โมดูลรีเลย์ และพอร์ตต่อหลอดไฟหรือรีเลย์โหลด เพื่อให้นักศึกษานำไปใช้เป็นแนวทางพัฒนา Prototype ที่เป็นระเบียบและสาธิตการทำงานได้จริง

แบบกล่องควบคุมระบบเปิด–ปิดไฟอัตโนมัติตามแสง IoT Prototype
ส่วนตรวจวัดแสง

ใช้ LDR Sensor ติดตั้งบริเวณช่องรับแสงด้านหน้ากล่อง เพื่ออ่านระดับแสงรอบข้างแบบ Real-time และส่งค่าเข้าสู่บอร์ดควบคุมสำหรับเปรียบเทียบกับค่า Threshold

ส่วนแสดงผลและสถานะ

แสดงค่าความสว่าง สถานะไฟ และโหมด AUTO/MANUAL บน OLED พร้อมไฟ LED สีแดง/เหลือง/เขียว และ Buzzer สำหรับแจ้งเตือนเมื่อค่าแสงผิดปกติหรือเปลี่ยนสถานะ

ส่วนควบคุมไฟและ Dashboard

ESP32/NodeMCU ควบคุม LED หรือ Relay Module เพื่อเปิด–ปิดหลอดไฟตามระดับแสง พร้อมเชื่อมต่อ Wi‑Fi เพื่อส่งข้อมูลขึ้น Dashboard และปรับค่า Threshold ผ่าน Web/Mobile ได้

Problem & Motivation

ปัญหาและแนวทางแก้ไข

ในหลายพื้นที่มีการเปิดไฟทิ้งไว้แม้มีแสงสว่างเพียงพอ หรือปิดไฟไม่ทันเมื่อพื้นที่มืดลง ทำให้สิ้นเปลืองพลังงานและไม่สะดวกต่อการใช้งาน ระบบนี้จึงใช้ LDR ตรวจวัดระดับแสงและควบคุมไฟแบบอัตโนมัติ เพื่อเพิ่มความสะดวก ลดการใช้พลังงาน และใช้เป็นต้นแบบ Smart Lighting ขนาดเล็กได้

เปิดไฟทิ้งไว้

สิ้นเปลืองพลังงานเมื่อไม่มีการควบคุมตามสภาพแสงจริง

สภาพแสงเปลี่ยน

ช่วงเช้า กลางวัน เย็น หรือฝนตกทำให้ระดับแสงแตกต่างกัน

ต้องการควบคุมได้เอง

ควรมีทั้งโหมด Auto และ Manual เพื่อให้ผู้ใช้เลือกตามสถานการณ์

Objectives

วัตถุประสงค์ของโครงงาน

1
ตรวจวัดแสง

อ่านค่าระดับแสงด้วย LDR และแปลงเป็นค่าที่เข้าใจง่าย เช่น เปอร์เซ็นต์หรือ Lux จำลอง

2
ควบคุมไฟอัตโนมัติ

สั่งเปิดไฟเมื่อแสงน้อยและปิดไฟเมื่อแสงเพียงพอตามค่า Threshold

3
เพิ่ม Manual/Auto

ให้ผู้ใช้เลือกควบคุมไฟเองหรือปล่อยให้ระบบตัดสินใจอัตโนมัติ

4
แสดงผล Dashboard

แสดงค่าความสว่าง สถานะไฟ โหมดการทำงาน และประวัติย้อนหลัง

Scope

ขอบเขตของโครงงาน

ขอบเขตที่ควรทำให้สำเร็จ
  • อ่านค่า LDR ได้อย่างต่อเนื่องและแสดงผลผ่าน Serial Monitor หรือหน้าจอ
  • กำหนดค่า Threshold เพื่อแยกสภาพ “แสงน้อย / แสงเพียงพอ”
  • ควบคุม LED หรือหลอดไฟจำลองผ่านขา Digital หรือ Relay
  • มีโหมด Auto และ Manual สำหรับควบคุมไฟ
  • แสดงสถานะไฟและค่าความสว่างผ่าน Dashboard หรือ Web Interface
ข้อจำกัดของ Prototype
  • หากใช้ไฟบ้านจริงต้องใช้ Relay และการเสภาพแสงสายโดยผู้มีความรู้ด้านไฟฟ้า
  • ค่า LDR อาจเปลี่ยนตามตำแหน่งติดตั้งและแสงสะท้อน
  • การคำนวณ Lux เป็นการประมาณ หากต้องการความแม่นยำควรใช้ Light Sensor เฉพาะทาง
  • Dashboard อาจเลือกทำแบบ Local หรือ Cloud ตามระดับความพร้อมของทีม
Equipment

อุปกรณ์และเทคโนโลยีที่ใช้

อุปกรณ์หน้าที่หมายเหตุ
LDR Sensorตรวจวัดระดับแสงรอบข้างใช้ร่วมกับตัวต้านทาน 10kΩ ทำวงจรแบ่งแรงดัน
Arduino UNO / ESP32อ่านค่า Analog และตัดสินใจควบคุมไฟESP32 เหมาะเมื่อต้องการ Wi‑Fi Dashboard
LED / Lamp Moduleแสดงผลการเปิด–ปิดไฟใช้ LED สำหรับจำลอง หรือ Relay สำหรับควบคุมหลอดไฟ
Relay Moduleสวิตช์ควบคุมโหลดไฟฟ้าใช้เมื่อควบคุมหลอดไฟจริงหรือโหลดกำลังสูง
OLED/LCD Displayแสดงค่าความสว่างและสถานะไฟเป็นอุปกรณ์เสริมเพื่อให้ Prototype ดูสมบูรณ์ขึ้น
Blynk / ThingSpeak / Web Dashboardแสดงข้อมูลและควบคุมผ่านเครือข่ายเหมาะสำหรับทีมที่ใช้ ESP32
System Architecture

สถาปัตยกรรมระบบ

Input

LDR อ่านระดับแสงรอบข้าง

Controller

Arduino/ESP32 ประมวลผลและเทียบค่า

Output

LED/Relay เปิด–ปิดไฟตามเงื่อนไข

Dashboard

แสดงค่าแสง สถานะไฟ และโหมด

Circuit Connection

ตารางการต่อวงจร

อุปกรณ์ขาอุปกรณ์ต่อกับ Arduino/ESP32คำอธิบาย
LDR + Resistorจุดแบ่งแรงดันA0 / GPIO34อ่านค่า Analog ของระดับแสง
LDRขาหนึ่ง5V หรือ 3.3Vจ่ายแรงดันให้วงจร LDR
Resistor 10kΩขาหนึ่งGNDสร้างวงจร Voltage Divider
LEDขา AnodeD13 / GPIO23 ผ่าน R 220Ωไฟแสดงสถานะหรือไฟจำลอง
Relay ModuleIND7 / GPIO26ควบคุมหลอดไฟจริงหรือโหลดภายนอก
OLED I2CSDA/SCLA4/A5 หรือ GPIO21/22แสดงค่าแสงและสถานะ
ข้อควรระวัง: หากควบคุมไฟบ้าน 220V ต้องใช้ Relay ที่เหมาะสม กล่องป้องกัน และให้ผู้มีความรู้ด้านไฟฟ้าตรวจสอบก่อนใช้งานจริง
Working Process

กระบวนการทำงานของระบบ

1
อ่านค่าจาก LDR

ระบบอ่านค่า Analog จาก LDR ทุกช่วงเวลาที่กำหนด เช่น ทุก 1–3 วินาที

2
ปรับสเกลและกรองค่า

แปลงค่าเป็นเปอร์เซ็นต์หรือระดับแสง และอาจใช้ค่าเฉลี่ยเพื่อลดการแกว่งของข้อมูล

3
ตรวจสอบโหมด

ถ้าเป็นโหมด Manual ให้ผู้ใช้สั่งเปิด–ปิดเอง ถ้าเป็น Auto ให้ระบบตัดสินใจตาม Threshold

4
ควบคุมไฟ

เมื่อแสงต่ำกว่าเกณฑ์ให้เปิดไฟ และเมื่อแสงสูงกว่าเกณฑ์ให้ปิดไฟ โดยอาจใช้ hysteresis กันไฟกระพริบถี่

5
แสดงผลและบันทึกข้อมูล

ส่งค่าแสง สถานะไฟ และโหมดการทำงานไปยัง Dashboard หรือแสดงบน OLED/LCD

Example Code

ตัวอย่างโค้ด Arduino เบื้องต้น

int ldrPin = A0; int ledPin = 13; int threshold = 500; // ปรับตามสภาพแสงจริง bool autoMode = true; // true = Auto, false = Manual bool manualLight = false; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { int ldrValue = analogRead(ldrPin); Serial.print("LDR Value: "); Serial.println(ldrValue); if (autoMode) { if (ldrValue < threshold) { digitalWrite(ledPin, HIGH); // แสงน้อย → เปิดไฟ } else { digitalWrite(ledPin, LOW); // แสงพอ → ปิดไฟ } } else { digitalWrite(ledPin, manualLight ? HIGH : LOW); } delay(1000); }
แนวทางต่อยอด: หากใช้ ESP32 สามารถเพิ่ม Blynk หรือ Web Server เพื่อปรับค่า Threshold และสลับ Manual/Auto ผ่านมือถือได้
Dashboard Design

แนวทางออกแบบ Dashboard

Dashboard ควรแสดงข้อมูลที่จำเป็นต่อการควบคุมไฟ เช่น ค่าความสว่าง สถานะไฟ โหมดการทำงาน ค่า Threshold และปุ่มสั่งงาน Manual

  • ค่าระดับแสงปัจจุบัน เช่น 285 lx หรือ 28%
  • สถานะไฟ: ON / OFF
  • โหมดการทำงาน: Manual / Auto
  • ปุ่มเปิด–ปิดไฟ และปุ่มปรับ Threshold
  • กราฟแสดงระดับแสงย้อนหลัง
IoT Dashboard

Smart Light Control

ONLINE
Light Level

285 lx

Lamp

ON

Mode

AUTO

Threshold

500

Light Trend
Testing Plan

แผนการทดสอบระบบ

กรณีทดสอบวิธีทดสอบผลที่คาดหวัง
แสงน้อยใช้มือบัง LDR หรือทดสอบในที่มืดไฟเปิดอัตโนมัติ
แสงเพียงพอใช้ไฟฉายหรือวางในที่สว่างไฟปิดอัตโนมัติ
เปลี่ยน Thresholdปรับค่าเกณฑ์ในโค้ดหรือ Dashboardจุดเปิด–ปิดไฟเปลี่ยนตามค่าใหม่
Manual Modeสลับโหมดและกดเปิด–ปิดเองระบบทำตามคำสั่งผู้ใช้โดยไม่อิง LDR
Dashboardดูค่าผ่านมือถือหรือเว็บข้อมูลแสดงถูกต้องและอัปเดตต่อเนื่อง
Development Plan

แผนพัฒนาโครงงาน

แบ่งงานเป็นรอบสั้น ๆ เพื่อให้ทีมตรวจความคืบหน้าได้ต่อเนื่องและลดความเสี่ยงตอนรวมระบบ

ช่วงเวลากิจกรรมผลลัพธ์ที่ต้องได้
สัปดาห์ที่ 1วิเคราะห์ปัญหา กำหนด Requirement และออกแบบผังระบบเอกสาร Requirement, รายการอุปกรณ์, Block Diagram
สัปดาห์ที่ 2ต่อวงจร อ่านค่าเซ็นเซอร์ และคาลิเบรตค่าสภาพแสงแห้ง/สภาพแสงชื้นค่าทดสอบ Sensor และตาราง Calibration
สัปดาห์ที่ 3เขียนโปรแกรมควบคุม Relay/LED / Lamp และทดสอบเงื่อนไขอัตโนมัติFirmware ที่เปิด–ปิดปั๊มตาม Threshold ได้
สัปดาห์ที่ 4เชื่อมต่อ Dashboard และบันทึกข้อมูลย้อนหลังDashboard แสดงค่าและ Log ได้
สัปดาห์ที่ 5ทดสอบรวมระบบ ปรับปรุงกล่อง/สายไฟ และเตรียมนำเสนอPrototype พร้อมวิดีโอ รายงาน และสไลด์

รายการส่งงาน Project03

นักศึกษาควรส่งทั้งชิ้นงาน Prototype ไฟล์โค้ด วิดีโอสาธิต และรายงานสรุปผลการทดสอบ เพื่อแสดงให้เห็นว่าระบบทำงานได้จริง

  • แผนภาพการต่อวงจร LDR + Controller + LED/Relay
  • โค้ด Arduino/ESP32 พร้อมคำอธิบาย Threshold และ Manual/Auto
  • ภาพหรือวิดีโอสาธิตการเปิด–ปิดไฟตามแสง
  • Dashboard หรือหน้าจอแสดงผลค่าความสว่างและสถานะไฟ
  • ตารางผลการทดสอบอย่างน้อย 5 กรณี
Optional Extensions

แนวทางต่อยอดเพื่อเพิ่มคะแนน

ตรวจระดับน้ำในถัง

เพิ่ม Ultrasonic Sensor หรือ Float Switch เพื่อแจ้งเตือนเมื่อน้ำใกล้หมด

พยากรณ์อากาศ

เชื่อมต่อ API สภาพอากาศ เพื่อลดการเปิด–ปิดไฟเมื่อมีฝนหรือแสงสูง

แจ้งเตือนมือถือ

ส่ง Notification เมื่อสภาพแสงแห้งมาก ปั๊มทำงาน หรือถังน้ำหมด

วิเคราะห์ข้อมูลย้อนหลัง

ทำกราฟรายวันและสรุปจำนวนครั้ง/ปริมาณเวลาในการเปิด–ปิดไฟ

พร้อมพัฒนา Prototype ระบบเปิด–ปิดไฟอัตโนมัติตามแสง

ใช้หน้านี้เป็นแนวทางสำหรับวางแผนโครงงาน เขียนรายงาน ทำสไลด์ และสาธิตผลงานปลายภาคในรายวิชา IoT