Thời tiết nắng mưa thất thường luôn là nỗi ám ảnh. Bài viết này sẽ hướng dẫn bạn chế tạo hệ thống Giàn phơi đồ tự động sử dụng Arduino. Nguyên lý: Trời nắng tự đẩy ra, trời mưa tự động kéo vào.
1. Linh Kiện Chuẩn Bị
Dự án cực kỳ đơn giản, linh kiện dễ tìm tại các cửa hàng điện tử:
- Arduino Uno R3: Bộ điều khiển trung tâm.
- Cảm biến mưa: Nhận diện giọt nước mưa đầu tiên.
- Servo SG90/MG996R: Động cơ xoay kéo sào phơi.
- Dây cắm Jumper: Loại Đực-Cái và Đực-Đực.
2. Sơ Đồ Đấu Nối
Hướng dẫn kết nối chi tiết
Nên dùng nguồn rời 5V bên ngoài cho servo để tránh làm hỏng mạch Arduino do sụt áp.
3. Video Hướng Dẫn Chi Tiết
Xem video dưới đây để hiểu rõ hơn về cách lắp ráp cơ khí và vận hành thực tế của hệ thống:
Đừng quên nhấn Subscribe kênh để cập nhật các dự án DIY mới nhất nhé!
4. Mã Nguồn Arduino
Sử dụng thư viện Servo.h. Logic: Đọc cảm biến mỗi giây, nếu mưa thì quay Servo 180°, nếu nắng thì về 90°.
#include <Servo.h>
Servo myServo;
const int rainSensorPin = 2; // Dùng chân Digital số 2
const int servoPin = 9;
bool isOutside = true;
void pullInside();
void pushOutside();
void setup() {
Serial.begin(9600);
pinMode(rainSensorPin, INPUT); // Thiết lập chân cảm biến là đầu vào
myServo.attach(servoPin);
delay(1000);
// Đọc trạng thái cảm biến ngay khi khởi động
int rainState = digitalRead(rainSensorPin);
Serial.print("Trang thai khoi dong - Cam bien mua: ");
Serial.println(rainState == LOW ? "Dang Mua (LOW)" : "Troi Nang (HIGH)");
if (rainState == LOW && isOutside == true) {
pullInside(); // Kéo vào trong
isOutside = false;
}
// KỊCH BẢN 2: TRỜI TẠNH, NẮNG RÁO
else if (rainState == HIGH && isOutside == false) {
pushOutside(); // Đẩy ra ngoài
isOutside = true;
}
}
void loop() {
// Đọc trạng thái tín hiệu (HIGH = Khô, LOW = Mưa)
int rainState = digitalRead(rainSensorPin);
Serial.print("Trang thai hien tai - Cam bien mua: ");
Serial.println(rainState == LOW ? "Dang Mua (LOW)" : "Troi Nang (HIGH)");
// KỊCH BẢN 1: TRỜI MƯA
if (rainState == LOW && isOutside == true) {
pullInside(); // Kéo vào trong
isOutside = false;
}
// KỊCH BẢN 2: TRỜI TẠNH, NẮNG RÁO
else if (rainState == HIGH && isOutside == false) {
pushOutside(); // Đẩy ra ngoài
isOutside = true;
}
delay(2000);
}
void pullInside() {
for (int pos = 90; pos <= 180; pos += 2) {
myServo.write(pos);
delay(15);
}
}
void pushOutside() {
for (int pos = 180; pos >= 90; pos -= 2) {
myServo.write(pos);
delay(15);
}
} 5. Gợi Ý Nâng Cấp Hệ Thống
Để biến dự án này trở nên chuyên nghiệp hơn, bạn có thể tham khảo các hướng phát triển sau:
- Cảm biến ánh sáng (LDR): Tự động thu đồ vào khi trời tối để tránh sương đêm, ngay cả khi không mưa.
- Điều khiển qua WiFi (ESP32): Sử dụng Blynk hoặc Telegram để theo dõi trạng thái và điều khiển từ xa qua smartphone.
- Màn hình OLED: Hiển thị nhiệt độ, độ ẩm và trạng thái hiện tại của giàn phơi.
- Tích hợp Loa/Còi báo: Phát âm thanh cảnh báo khi bắt đầu thu đồ vào để chủ nhà biết.
Việc kết hợp thêm các cảm biến môi trường khác sẽ giúp hệ thống hoạt động thông minh và tin cậy hơn trong mọi điều kiện thời tiết.
Kết Luận
Chỉ với vài linh kiện đơn giản và một chút thời gian lập trình, bạn đã sở hữu một hệ thống giàn phơi đồ cực kỳ hữu ích. Chúc các bạn thành công với dự án DIY này!
