Hiện nay, thị trường có rất nhiều loại thùng rác với kiểu dáng và giá thành khác nhau. Do đó, bạn có thể dễ dàng mua một chiếc thùng rác thông minh để phục vụ cho nhu cầu sinh hoạt của gia đình.
Song, bạn hoàn toàn có thể tự tay mày mò và làm ra sản phẩm của riêng mình với những vật dụng và linh kiện sau:
- 1 thùng rác dạng đạp chân: 25.000 - 30.000 đồng
- 1 kit Arduino Uno R3/Pro Mini: 250.000 - 650.000 đồng
- 1 cảm biến siêu âm SRF05: 30.000 - 45.000 đồng
- 1 động cơ Servo SG90: 30.000 - 40.000 đồng
- 1 bộ dây cắm: 15.000 - 25.000 đồng
- 1 cây súng bắn keo và keo: 50.000 - 60.000 đồng
Tổng chi phí ước tính để làm thùng rác thông minh tại nhà sẽ vào khoảng 400.000 - 850.000 đồng. Như vậy, chỉ với chưa đến 1 triệu đồng, bạn đã có thể biến một chiếc thùng rác bình thường thành một chiếc thùng rác thông minh ít "đụng hàng".
Cơ chế của thùng rác dạng đạp chân là khi bạn ấn vào bàn đạp, phần đế của thùng có chế độ đòn bẩy sẽ tác động lực vào thanh nhựa trắng phía sau, từ đó đẩy nắp thùng rác mở lên.
Dựa trên nguyên lý này, bạn cần lắp một chiếc Servo ngay cạnh thanh trục để thùng rác có thể hoạt động với cơ chế tương tự khi sử dụng hệ thống cảm biến.
Chi tiết các bước làm thùng rác thông minh như sau:
Bước 1: Kết nối cảm biến siêu âm với Arduino.
- Trên cảm biến siêu âm có 5 cổng ra, bạn cần cắm vào 4 chân gồm VCC, Trig, Echo và GND (không sử dụng tới cổng OUT).
- Nối các cổng của cảm biến với các cổng trên Arduino theo cặp như sau: VCC - 5V, Trig - D13, Echo - D12 và GND - GND.
Bước 2: Nối Servo vào Arduino.
- Do trên Arduino thiếu chân VCC 5V, bạn cần cắm Servo vào cổng ICSP.
- Cổng ICSP gồm có các chân GND, MOSI và VCC, bạn cắm tương ứng với GND và VCC trên Servo, còn chân tín hiệu của Servo nối với chân MOSI hoặc chân D11 trên Arduino.
Bước 3: Cắm cáp và nạp đoạn code sau:
#include <DistanceSRF04.h>
#include <Servo.h>
DistanceSRF04 Dist;
Servo myservo;
#define GOC_DONG 0 //Đây là góc đóng của servo
#define GOC_MO 110 //Đây là góc mở của servo
int distance;
unsigned long previousMillis = 0;
unsigned char autoTrigger = 0;
unsigned long autoMillis = 0;
void setup()
{
Serial.begin(9600);
//echo, trigger
Dist.begin(12, 13);
//servo
myservo.attach(11);
myservo.write(GOC_DONG);
}
void loop()
{ // Phần previousMillis >= 100 đây chính là thời gian lấy mẫu của cảm biến siêu âm 100ms
if (millis() - previousMillis >= 100) {
previousMillis = millis();
distance = Dist.getDistanceCentimeter();
Serial.print("\nDistance in centimers: ");
Serial.print(distance);
// Phần distance < 10 đây là phần cài đặt khoảng cách cảm biến nhận được kích hoạt mở thùng rác
if (distance < 10) {
autoTrigger = 1;
autoMillis = millis();
myservo.write(GOC_MO);
}
}
// Phần autoMillis >= 2000 đây sẽ là thời gian tự động đóng thùng rác sau 2s
if (millis() - autoMillis >= 2000 && autoTrigger == 1) {
autoTrigger = 0;
myservo.write(GOC_DONG);
}
}
Bước 4: Kiểm tra khả năng cảm biến của Servo, sau đó tiến hành lắp đặt vào thùng rác.
Bước 5: Chuẩn bị một thanh sắt nhỏ để gắn vào đầu trục của Servo. Đục một lỗ nhỏ trên thanh nhựa trắng để gắn phần đẩy của động cơ vào. Gắn keo để cố định phần động cơ cho chắc chắn.
Bước 6: Gắn phần cảm biến siêu âm ở mặt trước của thùng rác để có thể dễ dàng nhận biết được khi chúng ta đến gần thùng rác.
Bước 7: Gắn Arduino vào phần đáy của thùng rác, sau đó tiến hành hàn dây nối theo sơ đồ dưới đây:
Bước 8: Sau khi hàn và đi dây xong, nối dây nguồn đen với GND và dây màu trắng nối vào VCC. Gắn cổng DC ở cạnh bên và hàn dây nguồn.
Bước 9: Vặn phần đế thùng rác vào lại phần thân. Cấp nguồn cho thùng rác dễ dàng bằng nguồn 5V hoặc pin sạc dự phòng.
Bước 10: Kiểm tra khả năng hoạt động của thùng rác. Khi đưa tay vào phần cảm biến, lập tức thùng rác sẽ mở ra để bỏ rác vào. Sau 2 giây, thùng rác sẽ tự động đóng lại rất tiện dụng.