You are on page 1of 8

NGHIÊN CỨU CHẾ TẠO HỆ THỐNG TƯỚI NƯỚC TỰ ĐỘNG

TRONG CÔNG VIÊN

Tóm tắt: Bài viết này đề cập đến nội dung nghiên cứu mô hình điều khiển tưới nước tự động.
Từ đó có thể ứng dụng mô hình vào thực tế nhằm đáp ứng được nhu cầu hiện nay.

1. Đặt vấn đề

Hiện nay công viên là nơi vui chơi của hầu hết người dân trong thành phố, bảo đảm người ở
các lứa tuổi có thể tìm được không gian trong đó cho mình, tính yên tĩnh, thư giãn của cá
nhân. Mọi người đều có quyền vào nghỉ ngơi, tham quan và hoạt động thể dục dưỡng
sinh trong công viên bình thường, không phải trả bất kỳ một khoản thu nào nếu không tham
gia các dịch vụ giải trí có thu tiền. Đặc biệt công viên còn là một lá phổi xanh của thành phố,
kiến trúc bên trong được bố trí rất nhiều cây xanh, bãi cỏ. Hiện nay hầu hết việc tưới tiêu
cho những cây này đều được vận hành bởi con người, điều này gây lãng phí một lượng lớn
nhân lực vì vậy chúng ta hoàn toàn có thể thay thế việc này bằng hệ thống tưới tự động.

2. Cơ sở lý thuyết

Chúng ta hoàn toàn có thể sử dụng một vi điều khiển nhận tín hiệu từ các cảm biến như: cảm
biến độ ẩm, cảm biến nhiệt độ..v.v. Vi điều khiển tiến hành tính toán và quyết định việc đóng
mở relay được đấu với bơm và xuất tín hiệu lên LCD.

Mô hình hệ thống

Sensors Processor Actuator

Power

Tín hiệu cảm biến truyền đến bộ vi xử lý, bộ vi xử lý tiến hành tính toán và tác động vào cơ
cấu chấp hành, cơ cấu chấp hành truyền tín hiệu so sánh về cảm biến để so sánh và thay đổi
giúp hệ thống điều khiển hoạt động hiệu quả hơn.
3. Mô hình điện tử

Arduino R3

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:

32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash của
vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader
nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu.

2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo khi lập trình
sẽ lưu ở đây. Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM. Tuy vậy, thực
sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm. Khi mất điện,
dữ liệu trên SRAM sẽ bị mất.

1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây giống
như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình vào đây mà không
phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.

Hoàn toàn thích hợp cho các dự án nhỏ.

LCD 16x2 kèm module I2C


LCD 16×2 được sử dụng để hiển thị trạng thái hoặc các thông số.

LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW,
EN).

5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2.

Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu.

Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi.

LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm.

Cảm biến độ ẩm
Cảm biến độ ẩm hoạt động dựa trên nguyên lý. Sự hấp thụ hơi nước khiến biến đổi tính chất
của thành phần cảm nhận trong cảm biến. Từ đó làm thay đổi điện trở cảm biến qua đó xác
định được độ ẩm.

Đối với một cảm biến điện dung, không khí chảy qua giữa hai tấm kim loại. Sự biến đổi độ
ẩm không khí phụ thuộc hoàn toàn vào sự biến đổi điện dung giữa các bản.

Trong nguyên lý đo độ ẩm điện trở, polymer hay sứ có chức năng hấp thụ độ ẩm. Sau đó tác
động trực tiếp đến điện trở suất của nó. Và được kết nối với một mạch. Trong đó độ ẩm ảnh
hưởng đến điện trở của vật liệu. Từ đó độ ẩm tương đối được đo lường dựa trên sự biến đổi
của dòng điện.

Module 12V

Sơ đồ đấu nối
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;

4. Kết luận và hướng phát triển

Nhìn chung hệ thống đáp ứng được yêu cầu vận hành từ đó là cơ sở có thể phát triển them
vào ví dụ bổ sung hệ thống nạp năng lượng mặt trời để vận hành đèn trong công viên.

You might also like