Đã được đăng vào 11/12/2019 @ 12:06
Cảm biến độ ẩm | Hệ thống tưới tự động sử dụng Arduino
Mục lục
hiện
Nội dung bài viết hôm nay mình sẽ hướng dẫn cho các bạn một dự án giám sát độ ẩm trong nông nghiệp, phù hợp cho những vườn rau nhỏ.
Để đảm bảo độ ẩm trong đất đạt mức tốt nhất. Trong dự án này ngoài việc đọc độ ẩm và được hiển thị lên LCD16X2, còn có thể điều chỉnh độ ẩm ở mức phù hợp.
Khi độ ẩm nhỏ hơn mức độ ẩm được cài đặt thì sẽ cho bơm hoạt động cung cấp nước để đổ ẩm đạt mức tốt nhất.
Xem thêm:
- Bật Tắt Đèn bằng cảm biến ánh sáng sử dụng Arduino
- Hệ thống khóa cửa thông minh sử dụng RFID RC-522 và Arduino
- Đọc nhiệt độ, độ ẩm (DHT11) sử dụng Arduino Uno
Sơ đồ đấu nối
Các linh kiện cần thiết cho dự án
Tên linh kiện | Số lượng |
Shield Arduino Nano | 1 |
Arduino Nano | 1 |
Dây cắm | 15 |
Relay | 1 |
LCD16X2 | 1 |
Board I2C LCD16X2 | 1 |
Cảm biến độ ẩm | 1 |
Nguồn Adapter 12V/1A | 1 |
Biến trở | 1 |
Code
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); #define doam A0 #define pot A2 #define relay 8 int doamdat; int bientro; bool trangthai; bool first = true; unsigned long timeBom; void hienthi(int DoAm, int Nguong){ /////////// Do am ////////// lcd.setCursor(10,0); lcd.print(DoAm); if(DoAm <=9) { lcd.print(" %"); } else if(DoAm <=99) { lcd.print(" %"); } else{ lcd.print("%"); } ////////// Bien tro ////////////// lcd.setCursor(10,1); lcd.print(Nguong); if(Nguong <=9) { lcd.print(" %"); } else if(Nguong <=99) { lcd.print(" %"); } else{ lcd.print("%"); } } void setup() { Serial.begin(9600);//Mở cổng Serial ở mức 9600 pinMode(relay,OUTPUT); lcd.init(); lcd.backlight(); lcd.setCursor(1,0); lcd.print(" Do am: "); lcd.setCursor(0,1); lcd.print(" Bientro: "); digitalWrite(relay, HIGH); Serial.println("Tuoi cay tu dong"); } void loop() { doamdat = analogRead(doam); doamdat = map(doamdat, 1023,0,0,100); bientro = analogRead(pot); bientro = map(bientro, 0,1023,0,100); hienthi(doamdat,bientro); delay(1000); if(doamdat < bientro){ if(first){ Serial.println("Bat bom"); digitalWrite(relay,LOW); trangthai = true; timeBom = millis(); Serial.println(String("Time bat: ") + timeBom); first = false; } } if(((millis() - timeBom) > 10000) && trangthai == true){ Serial.println("Tat bom"); Serial.println(String("Time tat: ") + millis()); digitalWrite(relay, HIGH); trangthai = false; first = true; } }
Thư viện cho hệ thống tưới tự động
Nguồn: arduinokit.vn
Để lại một bình luận