หน้าเว็บตัวอย่างโครงงาน IoT สำหรับนักศึกษา โดยใช้ Ultrasonic Sensor ตรวจจับมือหรือวัตถุที่อยู่ใกล้ฝาถัง แล้วสั่ง Servo Motor เปิดฝาโดยไม่ต้องสัมผัส เพิ่มเงื่อนไขหน่วงเวลาปิดฝา และสามารถต่อยอดด้วยการตรวจระดับขยะภายในถังเพื่อแจ้งเตือนเมื่อใกล้เต็มผ่าน Dashboard
โครงงานนี้ออกแบบถังขยะอัจฉริยะที่เปิดฝาโดยไม่ต้องสัมผัส โดยใช้ Ultrasonic Sensor ตรวจจับมือหรือวัตถุที่เข้าใกล้บริเวณฝาถัง เมื่อระยะอยู่ในช่วงที่กำหนด ระบบจะสั่ง Servo Motor ให้เปิดฝา จากนั้นหน่วงเวลาปิดฝาอัตโนมัติ สามารถเพิ่มเซ็นเซอร์วัดระดับขยะภายในถัง เพื่อแจ้งเตือนเมื่อขยะใกล้เต็ม และแสดงสถานะผ่าน OLED หรือ Dashboard ได้
ภาพด้านล่างแสดงลำดับการทำงานของถังขยะอัจฉริยะ ตั้งแต่การตรวจจับมือด้วย Ultrasonic Sensor การประมวลผลระยะ การสั่ง Servo เปิดฝา การหน่วงเวลาปิดฝา และการแจ้งเตือนระดับขยะผ่าน Dashboard
ภาพนี้แสดงแนวคิดการออกแบบถังขยะอัจฉริยะสำหรับโครงงาน Project04 โดยรวมเซ็นเซอร์ Ultrasonic, Servo Motor สำหรับเปิด–ปิดฝา, OLED, LED แสดงสถานะ, Buzzer, บอร์ด ESP32/Arduino และส่วนตรวจระดับขยะ เพื่อให้นักศึกษานำไปใช้เป็นแนวทางสร้าง Prototype ที่เป็นระเบียบและสาธิตการทำงานได้จริง
ใช้ Ultrasonic Sensor ตรวจจับมือหรือวัตถุที่อยู่ใกล้ฝาถัง เพื่อสั่งให้ระบบเปิดฝาโดยไม่ต้องสัมผัส และสามารถเพิ่มเซ็นเซอร์อีกตัวสำหรับตรวจระดับขยะภายในถังได้
ใช้ Servo Motor ควบคุมมุมฝาถัง เช่น เปิด 70–90 องศา และปิดกลับอัตโนมัติหลังหน่วงเวลา เพื่อให้ใช้งานสะดวกและลดการสัมผัสฝาถัง
แสดงระยะ สถานะฝา และระดับขยะผ่าน OLED/LED/Buzzer พร้อมเชื่อมต่อ Wi‑Fi เพื่อส่งข้อมูลขึ้น Dashboard เช่น จำนวนครั้งที่เปิดฝาและสถานะถังใกล้เต็ม
ถังขยะทั่วไปต้องใช้มือสัมผัสฝาถัง ทำให้เกิดความเสี่ยงด้านสุขอนามัย โดยเฉพาะในห้องเรียน ห้องปฏิบัติการ หรือพื้นที่สาธารณะ นอกจากนี้ผู้ใช้มักไม่ทราบว่าถังใกล้เต็มหรือยัง โครงงานนี้จึงพัฒนาถังขยะที่เปิดฝาอัตโนมัติเมื่อตรวจพบมือหรือวัตถุ และสามารถต่อยอดด้วยการวัดระดับขยะเพื่อแจ้งเตือนเมื่อใกล้เต็ม
เปิดฝาโดยไม่ต้องสัมผัสโดยตรง ลดโอกาสปนเปื้อนจากฝาถัง
เปิดฝาอัตโนมัติและปิดเองหลังครบเวลาที่กำหนด
สามารถเพิ่มการตรวจระดับขยะเพื่อแจ้งเตือนเมื่อใกล้เต็ม
ใช้ Ultrasonic Sensor ตรวจจับวัตถุที่เข้าใกล้ฝาถังในระยะที่กำหนด
ควบคุม Servo Motor ให้เปิดฝาและปิดฝาหลังหน่วงเวลา
เพิ่มการตรวจระดับขยะภายในถังและแจ้งเตือนด้วยไฟ เสียง หรือ Dashboard
แสดงสถานะฝา ระยะตรวจจับ จำนวนครั้งการใช้งาน และระดับขยะ
| อุปกรณ์ | หน้าที่ | หมายเหตุ |
|---|---|---|
| Ultrasonic Sensor HC‑SR04 | ตรวจจับมือ/วัตถุและวัดระดับขยะ | อาจใช้ 1–2 ตัว แยกตัวตรวจฝาถังและตัวตรวจระดับขยะ |
| Arduino UNO / ESP32 | อ่านค่าระยะ ตัดสินใจ และควบคุม Servo | ESP32 เหมาะเมื่อต้องการ Dashboard ผ่าน Wi‑Fi |
| Servo Motor | เปิด–ปิดฝาถัง | เลือกแรงบิดให้เหมาะกับน้ำหนักฝา เช่น SG90/MG996R |
| LED / Buzzer | แจ้งสถานะการทำงานหรือถังใกล้เต็ม | ไฟเขียว/เหลือง/แดง หรือเสียงเตือน |
| OLED/LCD Display | แสดงระยะ สถานะฝา และระดับขยะ | เป็นอุปกรณ์เสริมเพื่อให้ Prototype สมบูรณ์ขึ้น |
| Blynk / ThingSpeak / Web Dashboard | แสดงข้อมูลและแจ้งเตือนผ่านเครือข่าย | เหมาะสำหรับทีมที่ใช้ ESP32 |
Ultrasonic อ่านระยะมือ/วัตถุและระดับขยะ
Arduino/ESP32 ประมวลผลและตัดสินใจ
Servo เปิด–ปิดฝา พร้อม LED/Buzzer แจ้งเตือน
แสดงสถานะฝา ระดับขยะ และประวัติการใช้งาน
| อุปกรณ์ | ขาอุปกรณ์ | ต่อกับ Arduino/ESP32 | คำอธิบาย |
|---|---|---|---|
| Ultrasonic HC‑SR04 | VCC / GND | 5V / GND | จ่ายไฟให้เซ็นเซอร์ |
| Ultrasonic HC‑SR04 | Trig | D9 / GPIO5 | ส่งสัญญาณ Trigger เพื่อเริ่มวัดระยะ |
| Ultrasonic HC‑SR04 | Echo | D10 / GPIO18 | รับสัญญาณสะท้อนกลับเพื่อคำนวณระยะ |
| Servo Motor | Signal | D6 / GPIO13 | ควบคุมมุมเปิด–ปิดฝาถัง |
| LED / Buzzer | Signal | D4 / GPIO26 | แจ้งเตือนเมื่อฝาเปิดหรือถังใกล้เต็ม |
| OLED I2C | SDA/SCL | A4/A5 หรือ GPIO21/22 | แสดงระยะ สถานะฝา และระดับขยะ |
ระบบอ่านระยะจาก Ultrasonic Sensor ทุกช่วงเวลาที่กำหนด เช่น ทุก 0.5–1 วินาที
หากพบมือหรือวัตถุอยู่ใกล้กว่าระยะที่กำหนด เช่น น้อยกว่า 20 ซม. ให้เตรียมเปิดฝา
หมุน Servo ไปยังมุมเปิด เช่น 80–100 องศา เพื่อให้ผู้ใช้ทิ้งขยะได้โดยไม่สัมผัส
เมื่อครบเวลาที่กำหนด เช่น 3–5 วินาที และไม่มีวัตถุอยู่ใกล้ฝา ระบบจะสั่งปิดฝา
หากเพิ่มเซ็นเซอร์วัดระดับขยะ ระบบจะแสดงสถานะว่าง/ปกติ/ใกล้เต็ม และส่งแจ้งเตือนผ่าน Dashboard
#include <Servo.h>
const int trigPin = 9;
const int echoPin = 10;
const int servoPin = 6;
const int buzzerPin = 4;
Servo lidServo;
int openDistance = 20;
int openAngle = 90;
int closeAngle = 0;
long readDistanceCM() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
return duration * 0.034 / 2;
}
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
lidServo.attach(servoPin);
lidServo.write(closeAngle);
Serial.begin(9600);
}
void loop() {
long distance = readDistanceCM();
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance > 0 && distance <= openDistance) {
lidServo.write(openAngle);
digitalWrite(buzzerPin, HIGH);
delay(150);
digitalWrite(buzzerPin, LOW);
delay(3000);
lidServo.write(closeAngle);
}
delay(500);
}Dashboard ควรแสดงข้อมูลที่จำเป็นต่อการติดตามการใช้งานถังขยะ เช่น ระยะตรวจจับ สถานะฝา ระดับขยะ จำนวนครั้งที่เปิดฝา และการแจ้งเตือนถังใกล้เต็ม
| กรณีทดสอบ | วิธีทดสอบ | ผลที่คาดหวัง |
|---|---|---|
| ไม่มีวัตถุใกล้ฝาถัง | วางมือห่างเกินระยะ Threshold | ฝาถังปิดอยู่และ Servo ไม่ทำงาน |
| มีมือเข้าใกล้ฝาถัง | นำมือเข้าใกล้ระยะน้อยกว่า 20 ซม. | ฝาถังเปิดอัตโนมัติ |
| หน่วงเวลาปิดฝา | รอหลังเปิดฝา 3–5 วินาที | ฝาถังปิดเองโดยไม่ต้องกดปุ่ม |
| ทดสอบหลายระยะ | ทดสอบที่ 5, 10, 15, 20, 30 ซม. | ระบบเปิดเฉพาะระยะที่กำหนด |
| ถังใกล้เต็ม | จำลองขยะสูงขึ้นภายในถัง | ระบบแจ้งเตือนด้วยไฟ/เสียง/Dashboard |
แบ่งงานเป็นรอบสั้น ๆ เพื่อให้ทีมตรวจความคืบหน้าได้ต่อเนื่องและลดความเสี่ยงตอนรวมระบบ
| ช่วงเวลา | กิจกรรม | ผลลัพธ์ที่ต้องได้ |
|---|---|---|
| สัปดาห์ที่ 1 | วิเคราะห์ปัญหา กำหนด Requirement และออกแบบโครงสร้างถัง | Requirement, รายการอุปกรณ์, Sketch/Block Diagram |
| สัปดาห์ที่ 2 | ต่อวงจร Ultrasonic และทดสอบค่าระยะ | ตารางทดสอบระยะและค่า Threshold ที่เหมาะสม |
| สัปดาห์ที่ 3 | ติดตั้ง Servo กับฝาถังและเขียนโปรแกรมเปิด–ปิด | ฝาถังเปิด–ปิดได้ตามระยะและหน่วงเวลา |
| สัปดาห์ที่ 4 | เพิ่ม Dashboard หรือการแจ้งเตือนระดับขยะ | Dashboard แสดงสถานะฝา ระดับขยะ และประวัติ |
| สัปดาห์ที่ 5 | ทดสอบรวมระบบ ปรับปรุงกล่อง/สายไฟ และเตรียมนำเสนอ | Prototype พร้อมวิดีโอ รายงาน และสไลด์ |
นักศึกษาควรส่งทั้งชิ้นงาน Prototype ไฟล์โค้ด วิดีโอสาธิต และรายงานสรุปผลการทดสอบ เพื่อแสดงให้เห็นว่าระบบทำงานได้จริง
เพิ่ม Ultrasonic อีกตัวเพื่อตรวจระดับขยะภายในถังและแจ้งเตือนเมื่อใกล้เต็ม
เพิ่ม Sleep Mode หรือควบคุมรอบการอ่านค่าระยะเพื่อลดการใช้พลังงาน
ส่ง Notification เมื่อถังใกล้เต็ม ฝาค้าง หรือมีการใช้งานผิดปกติ
ทำกราฟจำนวนครั้งการเปิดฝา รายชั่วโมง/รายวัน และช่วงเวลาที่มีการใช้งานสูง