การทำโปรเจกต์ถังขยะเปิด-ปิดฝาแบบไร้สัมผัสอัตโนมัติด้วย Arduino สามารถทำได้โดยใช้เซนเซอร์อินฟราเรด (IR) หรือเซนเซอร์ Ultrasonic เพื่อตรวจจับการเคลื่อนไหวของมือหรือวัตถุที่อยู่ในระยะที่กำหนด หากตรวจจับเห็นการเคลื่อนไหว ฝาถังขยะจะถูกเปิดโดยมอเตอร์ Servo และจะปิดเองหลังจากเวลาที่กำหนด โดยในโปรเจกนี้เราจะใช้ Ultrasonic
Arduino เป็น มินิโปรเจคขนาดเล็กสามารถนำไปประยุกต์ใช้งานให้เหมาะสมตามความต้องการของเรา
สิ่งที่ต้องใช้
- ถังขยะแบบฝา เปิด / ปิด ขนาดเล็ก
- Arduino Nano จำนวน 1 บอร์ด
- Sensor IR ตรวจจับวัตถุ จำนวน 1 บอร์ด
- Protoboard 400 pin จำนวน 1 บอร์ด
- Servo MG996 จำนวน 1 ตัว
- แบตเตอรี่ 18650 จำนวน 2 ก้อน
- รางถ่าน 18650 แบบ 2 ก้อน 1 ชิ้น
- สายจั๊มเปอร์
นักเรียนต้องเตรียม
- ถังขยะแบบฝา เปิด / ปิด ขนาดเล็ก
- Arduino Nano จำนวน 1 บอร์ด
- Sensor IR ตรวจจับวัตถุ จำนวน 1 บอร์ด
- Protoboard 400 pin จำนวน 1 บอร์ด
- Servo MG996 จำนวน 1 ตัว
- แบตเตอรี่ 18650 จำนวน 2 ก้อน
- รางถ่าน 18650 แบบ 2 ก้อน 1 ชิ้น
- สายจั๊มเปอร์
ความสะอาดในการจัดการขยะเป็นสิ่งที่ควรให้ความสำคัญ โดยเฉพาะอย่างยิ่งในยุคปัจจุบันที่เราต้องเน้นความสะอาดและการไม่สัมผัสสิ่งต่างๆ เพื่อป้องกันการระบาดของเชื้อโรค มาพบกับโปรเจกต์ ถังขยะอัจฉริยะ ที่พัฒนาขึ้นโดยการใช้ Arduino และเซนเซอร์ Ultrasonic ที่จะช่วยให้ฝาถังขยะเปิดและปิดโดยอัตโนมัติเมื่อมีคนเข้ามาใกล้ ความสะอาด
การทำโปรเจกต์ถังขยะเปิด-ปิดฝาแบบไร้สัมผัสอัตโนมัติด้วย Arduino สามารถทำได้โดยใช้เซนเซอร์อินฟราเรด (IR) หรือเซนเซอร์ Ultrasonic เพื่อตรวจจับการเคลื่อนไหวของมือหรือวัตถุที่อยู่ในระยะที่กำหนด หากตรวจจับเห็นการเคลื่อนไหว ฝาถังขยะจะถูกเปิดโดยมอเตอร์ Servo และจะปิดเองหลังจากเวลาที่กำหนด โดยในโปรเจกนี้เราจะใช้ Ultrasonic
- Arduino board เช่น Arduino Uno
- เซนเซอร์ Ultrasonic HC-SR04
- มอเตอร์ Servo
- ถังขยะพร้อมฝา
- บอร์ดทดลอง Breadboard และสาย jumper
- ถ่าน 9V พร้อมขั้งถ่านแบบ DC Jack 5.5x2.1mm
Servo servoMotor; // สร้างออบเจกต์ servo
long previousDistance = 0;
int sensor = 600; // ระยะที่ให้เซนเซอร์ทำงาน mm
long readUltrasonicDistance(int triggerPin, int echoPin) {
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
return pulseIn(echoPin, HIGH);
}
void setup() {
servoMotor.attach(SERVO_PIN); // กำหนด pin ที่เชื่อมต่อกับ Servo
servoMotor.write(0); // เริ่มต้นด้วยการปิดฝาถังขยะ
Serial.begin(9600);
}
void loop() {
long distance = readUltrasonicDistance(TRIGGER_PIN, ECHO_PIN);
Serial.println(distance);
if (distance <= sensor && previousDistance > sensor) { // หากมีวัตถุเข้ามาใกล้ในระยะ sensor
servoMotor.write(90); // เปิดฝาถังขยะ
} else if (distance > sensor && previousDistance <= sensor) { // หากวัตถุออกจากระยะ sensor
servoMotor.write(0); // ปิดฝาถังขยะ
}
previousDistance = distance;
delay(100);
}
เขียนโค้ด Arduinoโปรแกรมที่ใช้ (ใช้ได้ทั้ง Arduino Nano และ UNO R3) อ่านค่าจากเซนเซอร์ Ultrasonic หากตรวจจับเห็นการเคลื่อนไหว สั่งให้มอเตอร์ Servo เปิดฝาถังขยะ ตั้งเวลาปิดฝาถังขยะโดยอัตโนมัติหลังจากเวลาที่กำหนด
#include <Servo.h> // ไลบรารี่ Servo ควรติดตั้ง
Servo myservo;
int State = 0;
void setup() {
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(9, OUTPUT);
myservo.attach(9);
myservo.write(160); // Setup Servo เปิดฝาเอาขยะออก
delay(10000); //หน่วงเวลา 10 วินาที
myservo.write(0); // Setup กลับตำแหน่ง 0 องศา
}
void loop() {
int Sr = digitalRead(2); // รับค่า Sensor จากขา 2
Serial.println(State);
if (State == 0) {
if (Sr == 1) { // เมื่อ Sr เซ็นเซอร์มีค่า = 1
myservo.write(0); // Servo อยู่ที่ตำแหน่ง 0
delay(100);
}
else if (Sr == 0) { // เมื่อ Sr เซ็นเซอร์มีค่า = 0
myservo.write(160); // Servo หมุนไปที่ 160 องศา
State = 1; // State มีค่าเท่ากับ 1
}
}
if (State == 1) { // เมื่อ State = 1
delay(3000); // หน่วงเวลา 3 นาที
State = 0; // State มีค่า = 0
}
} // กลับไปวนลูป
| |||
วิธีทำถังขยะอัตโนมัติโดยใช้อาดูโน่และเซอร์โวมอเตอร์และอัลตร้าโซนิคเซนเซอร์ การทำถังขยะอัตโนมัติโดยใช้ Arduino เซอร์โวมอเตอร์ และเซ็นเซอร์อัลตราโซนิกเป็นโครงการง่ายๆ ที่สามารถทำได้ในไม่กี่ขั้นตอน นี่คือโครงร่างทั่วไปของวิธีเริ่มต้นใช้งาน: หลักการทำงานของ เซ็นเซอร์อัลตราโซนิก HC-SR04 เป็นอุปกรณ์ยอดนิยมและราคาไม่แพงที่สามารถใช้วัดระยะทางไปยังวัตถุได้ ทำงานโดยปล่อยคลื่นเสียงความถี่สูงและวัดเวลาที่คลื่นเสียงสะท้อนกลับหลังจากกระทบวัตถุ หากต้องการใช้เซ็นเซอร์อัลตราโซนิก HC-SR04 กับบอร์ด Arduino จะต้องเชื่อมต่อเข้ากับบอร์ดโดยใช้สายจัมเปอร์ HC-SR04 มี 4 พิน คือ Vcc, Trig, Echo และ GND
ตัวอย่าง Arduino Code เชื่อมต่ออัลตราโซนิคเซนเซอร์เพื่อวัดระยะทางไปยังวัตถุ