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!
Hướng dẫn nạp code cho Arduino
Các bước cơ bản để biên dịch và nạp chương trình vào board Arduino.
Kết nối Arduino với máy tính
Sử dụng cáp USB để kết nối board Arduino với máy tính.
Mở Arduino IDE
Mở Arduino IDE trên máy tính và tạo một project mới hoặc mở project Arduino có sẵn.
- Mở Arduino IDE.
- Chọn project cần nạp.
- Kiểm tra code trước khi nạp.
Chọn loại board
Trong Arduino IDE, chọn đúng loại board Arduino đang sử dụng.
Tools → Board → Arduino Uno Chọn cổng COM
Chọn đúng cổng Serial mà Arduino đang kết nối.
Tools → Port → COM3 Trên Windows, cổng thường có dạng COM3, COM4, COM5....
Kiểm tra và biên dịch code
Nhấn nút Verify để kiểm tra chương trình trước khi nạp.
✓ Verify / Compile Nạp code vào Arduino
Sau khi code biên dịch thành công, nhấn nút Upload.
→ Upload Chờ Arduino IDE hiển thị thông báo:
Done uploading. Kiểm tra Arduino
Sau khi nạp thành công, Arduino sẽ chạy chương trình vừa được tải lên.
