TRƯỜNG ĐẠI HỌC CẦN THƠ TRƯỜNG BÁCH KHOA ….…. BÁO CÁO Đồ án Điện tử căn bản_KC331 ĐỀ TÀI: HỆ THỐNG TƯỚI TỰ ĐỘNG DỰA TRÊN ĐỘ ẨM ĐẤT VÀ THEO DÕI THÔNG QUA WEDSITE Giảng viên hướng dẫn : Thầy Trương Quốc Bảo Học phần : Đồ án Điện tử căn bản_KC331 Sinh viên thực hiện : Nguyễn Quốc Bảo MSSV : B2012416
Trang 1TRƯỜNG ĐẠI HỌC CẦN THƠ
TRƯỜNG BÁCH KHOA
….….
BÁO CÁO
Đồ án Điện tử căn bản_KC331
ĐỀ TÀI: HỆ THỐNG TƯỚI TỰ ĐỘNG DỰA TRÊN ĐỘ
ẨM ĐẤT VÀ THEO DÕI THÔNG QUA WEDSITE
Trang 2Do thời gian làm báo cáo có hạn cũng như những hạn chế về kiến thức, trong bài chắc chắn sẽ không tránh khỏi những thiếu sót Rất mong nhận được sự nhận xét, đóng góp ý kiến từ phía Thầy để bài làm của nhóm em được hoàn thiện hơn.
Lời cuối cùng, em xin kính chúc thầy nhiều sức khỏe, thành công và hạnh phúc!”
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Nguyễn Quốc Bảo
MỤC LỤC
Đồ án Điện tử căn bản_KC331
HỆ THỐNG TƯỚI TỰ ĐỘNG DỰA TRÊN ĐỘ ẨM ĐẤT VÀ THEO DÕI
THÔNG QUA WEDSITE
I GIỚI THIỆU 5
II PHƯƠNG PHÁP THỰC HIỆN 6
1 Tổng quan về hệ thống 6
2 Tổng quan về thiết bị sử dụng 7
Trang 32.1 Vi xử lý Arduino Uno 7
2.2 Cảm biến độ ẩm đất (Soil moisture sensor) 8
2.3 Nguồn tổ ong 9
2.4 Mạch cầu H (L298N) 11
2.5 Động cơ bơm nước R385 (DC motor 12V) 12
2.6 Màn hình LCD 16*2 và module I2C 12
3 Thiết kế hệ thống 13
3.1 Thiết kế phần cứng 13
3.2 Thiết kế phần mềm 15
3.3 Thiết kế giao diện Wed 21
3.4 Thiết kế mô hình 24
III KẾT QUẢ VÀ THẢO LUẬN 25
IV KẾT LUẬN VÀ ĐỀ NGHỊ 26
DANH MỤC BẢNG VÀ HÌNH
Hình 1: Hình 1: Vi xử lý Arduino Uno Bảng 1: Các thống số kỹ thuật của arduino:
Hình 2: Sơ đồ chi tiết của Arduino Uno Bảng 2: Các thống số kỹ thuật của cảm biến:
Hình 3: Cảm biến độ ẩm đất Bảng 3: Các thống số kỹ thuật của nguồn tổ
ong:
Trang 4Hình 4: Sơ đồ kết nối của cảm biến Bảng 4: Các thống số kỹ thuật của mạch
Hình 14: Sơ đồ kết nối I2C với LCD
Hình 15: Sơ đồ khối của hệ thống
Hình 16: Sơ đồ nguyên lý của hệ thống mô phỏng trên
phần mềm Proteus
Hình 17: Lưu đồ của hệ thống
Hình 19: Sơ đồ các node để thiết lập giao diện Wed
Hình 20: Sơ đồ các node để thiết lập giao diện Wed
Hình 21: Thiết kế mô hình cho đề tài và phần cứng
mạch điện
Hình 22: Một số hình ảnh thực tế của hệ thống
HỆ THỐNG TƯỚI TỰ ĐỘNG DỰA TRÊN ĐỘ ẨM ĐẤT
VÀ THEO DÕI THÔNG QUA WED
Nguyễn Quốc Bảo 1
1 Sinh viên lớp TN20S3A1, Mã số SV:B2012416, Số ĐT: 0869 911 434, email: baob2012416@student.ctu.edu.vn
Trang 5This project is about making a system that waters plants automatically using soil moisture sensors The system will check how wet the soil is by reading signals from these sensors Then, it will decide if the soil needs water and turn on the water pump if it does To make this happen, we'll use a small computer called arduino to
do the thinking and talking between the water pump, soil moisture sensor, and a control panel on a website This project could lead to making other cool things like smart vegetable gardens in neighborhoods or even inside greenhouses The main goal here is to learn more about programming and how to use sensors effectively to control things.
Keyword: Soil moisture sensor, microcontroller, pump.
Title: Building an automatic irrigation system based on soil moisture and monitoring irrigation through the website interface
Từ khóa: Cảm biến độ ẩm đất, vi điều khiển, máy bơm.
Tiêu đề: Xây dựng hệ thống tưới tự động dựa trên độ ẩm đất và giám sát việc tưới qua giao diện trang wed
Cách mạng 4.0 mang lại cho lĩnh vực điều khiển tự động một sự thay đổi mạnh mẽ
Đề tài “Thiết kế hệ thống tưới tự động dựa vào độ ẩm đất” sẽ là một phần quan
trọng trong việc phát triển mạnh mẽ trong lĩnh vực công nghệ điều khiển và tự độnghóa Việc sử dụng vi điều khiển để để đọc dữ liệu cảm biến độ ẩm đất và điều khiển
máy bơm nước và đèn sưởi mang lại nhiều lợi ích Đầu tiên, nó cung cấp khả năng
tự động hóa quá trình điều khiển dựa trên độ ẩm đất của cảm biến đọc được, giúp
tối ưu hóa hiệu suất và độ chính xác của hệ thống Thứ hai, việc sử các thành phần phần cứng và phần mềm mã nguồn mở (Arduino) giúp giảm chi phí cài đặt và phát triển hệ thống Cuối cùng, đề tài này có tiềm năng ứng dụng rộng rãi trong lĩnh vực
nông nghiệp, giáo dục kỹ thuật, và đóng vai trò quan trọng trong việc cải thiện quátrình điều khiển và đo lường
Đề tài được lấy ý tưởng từ Thầy Trương Quốc Bảo - Trường Đại học Cần Thơ Mục
tiêu là phát triển một hệ thống tự động hóa để đọc cảm biến độ ẩm đất và điều khiểnmáy bơm nước và đèn sưởi Cụ thể bao gồm xây dựng kết nối tin cậy giữa các thành
Trang 6phần, thu thập dữ liệu từ cảm biến độ ẩm đất và điều khiển các thiết bị chấp hành
dựa trên thông tin có sẵn này, đảm bảo độ chính xác và đáng tin cậy trong quá trình
điều khiển
1 Tổng quan về hệ thống
Tổng quan về hệ thống bao gồm như: Về mục tiêu chính: Xây dựng hệ thống tự
động hóa việc tưới nước dựa trên độ ẩm đất, giúp nâng cao hiệu suất và tiết kiệm tài
nguyên nước và cung cấp lượng nước tưới cần thiết khi cây cần thiết.Về các thành
phần chính:Vi xử lý (Arduino) là trung tâm điều khiển cho hệ thống, Cảm biến độ
ẩm đất dùng để đo thông tin độ ẩm của đất và cung cấp dữ liệu cho hệ thống Hệ
thống tưới nước và sưởi tự động: Điều khiển việc tưới nước và sấy khô dựa trên dữ
liệu cảm biến (động cơ bơm nước, đèn sưởi) Về giao diện web: Cung cấp khả năng
theo dõi và điều khiển hệ thống Chức năng quan trọng là theo dõi và điều khiển
người dùng có thể theo dõi trạng thái của hệ thống và tưới nước từ bất kỳ đâu thông
qua giao diện trang web Về tính tự động hóa tưới nước: Hệ thống hoạt động khi độ
ẩm đất thấp hơn ngưỡng quy định, giúp ngăn chặn thiếu nước cho cây trồng Về lợi
ích: Tiết kiệm tài nguyên nước tăng hiệu suất sử dụng nước và giảm lãng phí tài
nguyên, tăng năng suất nông nghiệp đảm bảo cây trồng nhận đủ nước và tạo điều
kiện tốt nhất cho sự phát triển, người dùng có khả năng quản lý và kiểm soát hệ
thống từ xa, thuận tiện và linh hoạt Về công nghệ và mô hình: Sử dụng các cảm
biến độ ẩm đất với độ độ chính xác và độ bền đã được nhà sản xuất chứng minh
Mô hình do cá nhân tìm hiểu lên ý tưởng và thiết kế
2 Tổng quan về thiết bị sử dụng
2.1.Vi xử lý Arduino Uno
Arduino là một bo mạch vi điều khiển do một nhóm
giáo sư và sinh viên nước Ý thiết kế và đưa ra đầu tiên
vào năm 2005 Mạch Arduino được sử dụng để cảm
nhận và điều khiển nhiều đối tượng khác nhau Nó có
thể thực hiện nhiều nhiệm vụ lấy tín hiệu từ cảm biến
đến điều khiển đèn, động cơ, và nhiều đối tượng khác
Ngoài ra mạch còn có khả năng liên kết với nhiều
module khác nhau như: module đọc thẻ từ, ethernet
shield, sim900A, v.v…để tăng khả ứng dụng của
mạch.Phần cứng bao gồm một board mạch nguồn mở
được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit,
hoặc ARM, Atmel 32-bit, Hiện phần cứng của
Arduino có tất cả 6 phiên bản, Tuy nhiên, phiên bản
thường được sử dụng nhiều nhất là Arduino Uno và
Arduino Mega Phần mềm để lập trình cho mạch
Arduino là phần mềm IDE
Hình 1: Vi xử lý Arduino Uno
Trang 7Bảng 1: Các thống số kỹ thuật của arduino:
Điện áp cấp (hoạt động tốt) 7 – 12 V
Trang 82.2 Cảm biến độ ẩm đất (Soil moisture sensor)
Cảm biến độ ẩm đất (soil moisture sensor) là một thiết
bị quan trọng trong lĩnh vực tự động hóa nông nghiệp
và quản lý tưới tiêu Chức năng chính của cảm biến
này là đo lường mức độ ẩm của đất trong một khu vực
cụ thể Cảm biến giúp xác định độ ẩm của đất qua đầu
dò và trả về giá trị analog hoặc digital qua 2 chân
tương ứng để giao tiếp với vi điều khiển để thực hiện
vô số các ứng dụng khác nhau
Thông qua việc đo lường này, người dùng có thể biết
được liệu đất đã khô hay ẩm và cần được tưới nước
hay không Cảm biến độ ẩm đất thường được tích hợp
vào các hệ thống tưới tự động để cung cấp nước cho
cây trồng đúng lúc và đúng lượng, giúp tối ưu hóa sự
phát triển của cây và tiết kiệm nước
Bảng 2: Các thống số kỹ thuật của cảm biến:
Hình 3: Cảm biến độ ẩm đất
Hình 4: Sơ đồ kết nối của cảm biến
+
DO (mức cao hoặc mứcĐầu ra tín hiệu số
Digital: High hoặc
Low, có thể điềuchỉnh độ ẩm mongmuốn bằng biến trởthông qua mạch sosánh LM393 tích
Trang 9áp thường sẽ sử dụng lõi thép kỹ thuật điện Nguồn tổ ong sửdụng lõi ferit.
Cầu chì: linh kiện có tác dụng bảo vệ mạch nguồn bị ngắnmạch.
Bộ phận: cuộn chống nhiễu, tụ lọc sơ cấp Điốt chỉnh lưu sẽ
có nhiệm vụ biến đổi dòng xoay chiều 220VAC thành điện áp
1 chiều tích Sau đó tích điện trên tụ lọc sơ cấp để cung cấpnăng lượng cho cuộn sơ cấp của máy biến áp xung
Sò công suất: phần bán dẫn dùng như một công tắc chuyểnmạch trong bộ xung Trong đó có thể là transistor, mosfet, ICtích hợp, IGBT Những bộ phần này có nhiệm vụ đóng cắtđiện từ chân (+) của tụ lọc sơ cấp vào cuộn dây sơ cấp củabiến áp xung rồi cho xuống mass
Tụ lọc nguồn thứ cấp: bộ phận này có nhiệm vụ tích trữ năng lượng điện từcuộn thứ cấp của biến áp xung để cấp cho tải tiêu thụ Khi cuộn sơ cấp đượcđóng cắt điện liên tục bằng sò Chúng ta đều biết sẽ xuất hiện trường biếnthiên dẫn đến cuộn thứ cấp cũng xuất hiện một điện áp ra Điện áp sẽ đượcchỉnh lưu qua các điốt rồi đưa vào tụ lọc thứ cấp để san phẳng điện áp
IC quang và IC TL431: hai linh liện này có nhiệm vụ tạo ra điện áp ổn định
để khống chế điện áp ra bên thứ cấp ổn định theo mong muốn người dùng.Chúng cần phải khống chế dao động đóng cắt điện vào cuộn sơ cấp để điện
áp ra bên thứ cấp đạt yêu cầu
Hình 6: Cấu tạo nguồn tổ ong Hình 5: Nguồn tổ ong
Trang 10Bảng 3: Các thống số kỹ thuật của nguồn tổ ong:
cơ step (bước) bằng cách cung cấp dòng điện lớn và chính xác từ nguồn cung cấp
ngoại vi
Mạch L298N thường đi kèm với hai cầu H (H-bridge)
độc lập, cho phép điều khiển động cơ theo cả hai
hướng (tiến và lùi) cũng như điều khiển tốc độ quay
của động cơ Nó cũng có khả năng chống ngược điện
và chịu được dòng điện cao, làm cho nó trở thành lựa
chọn lý tưởng cho việc điều khiển các động cơ có
dòng điện lớn
Mạch L298N thường được điều khiển bằng cách sử
dụng tín hiệu từ một vi điều khiển Điều này cho phép
người dùng linh hoạt trong việc lập trình và điều khiển
Hình 7: Sơ đồ phân tích nguyên lý hoạt động của bộ nguồn
Hình 8: Mạch L298N
Trang 11Công suất tải tối đa 25WDòng tiêu thụ không tải 0 – 36mA Nhiệt độ bảo quản 20 – 135 độ C
2.5 Động cơ bơm nước R385 (DC motor 12V)
Động cơ bơm nước R385 Water Pump 12VDC là một
thiết bị nhỏ gọn và mạnh mẽ được sử dụng để bơm
nước và dung dịch Với điện áp sử dụng từ 6 đến
12VDC, động cơ có thể hoạt động hiệu quả trong nhiều
ứng dụng khác nhau Nó là một lựa chọn tốt cho các dự
án sử dụng máy bơm 12V và đáp ứng tốt nhu cầu cho
những mô hình sinh viên hay nghiên cứu
Bảng 5: Các thống số kỹ thuật của động cơ bơm 12V - R385:
Thời gian làm việc liên tục tối đa: 120h
Hình 10: Động cơ bơm 12V
Trang 12Áp suất nước tạo ra: 0.3Mpa
Hoạt động nhiệt độ môi trường: 5 - 40℃ ℃
2.6 Màn hình LCD 16*2 và module I2C
Màn hình LCD 16*2:
LCD được sử dụng để hiển thị trạngthái hoặc các thông số:
LCD 16x2 có 16 chân trong đó có:
- 8 chân dữ liệu (D0 - D7)
- 3 chân điều khiển (RS, RW, EN),
- 5 chân còn lại dùng để cấp nguồn và đènnền cho LCD 16x2
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 16x2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đanglàm
Module IC2:
Module I2C là một module dựa trên giao thứcI2C Module này giúp giảm số lượng kết nối dâygiữa vi điều khiển và màn hình LCD xuống chỉcòn 2 dây, điều này giúp tiết kiệm rất nhiều chânGPIO cho các cảm biến và thiết bị khác
Trang 13Bảng 6: Các thống số kỹ thuật của LCD 16*2 và module I2C:
Thông số module I2C
3.1.1 Sơ đồ khối của hệ thống
SVTH: Nguyễn Quốc Bảo Trang 13
Hình 15: Sơ đồ khối của hệ thống
Phần được điều khiển trược tiếp trên giao diện dashboar
Giao diện Dashboar
(Theo dõi và điều khiển)
Cổng COM Cổng COM
Chữ đen, nền xanh lá có đèn led nền
Có thể dùng biến trở hoặc PWM điều chình độsáng để sử dụng ít điện năng hơn
Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụngkhi kết nối với Breadboard
Tên các chân được ghi ở mặt sau của màn hình LCD hổtrợ việc kết nối, đi dây điện
Trang 14 Mô tả sơ đồ khối:
- Bộ nguồn: Bộ nguồn cung cấp năng lượng vi xử lí trung tâm là Arduino đồng
thời cung cấp cho các thiết bị khac như động cơ, mạch điều khiển L298N…
- Bộ xử lí trung tâm: Arduino Uno có nhiệm vụ xử lí tín hiệu từ cảm biến độ ẩm
đất , xử lí các tính hiệu theo điều kiện để bật/tắt các thiết bị chấp hành Đồngthời xử lí đề điều khiển hiển thị LCD
- Giao diện Dashboar: Cho phép quan sát và điều khiển từ xa hoạt động của hệ
thống tăng tính tiện lợi và trực quan
- Bộ điều khiển: L298N có nhiệm vụ điều khiển động cơ bật và tắt đồng thời
thông qua đó có thể điều chỉnh độ rộng xung đê điều khiển tốc độ cũng nhưchiều quay của động cơ
- Bộ hiển thị: LCD hiển thị trực quan cho phép quan sát kết quả đo được từ cảm
biến
- Bộ cảnh báo: Người dùng có thể điều khiển còi báo để cảnh báo về tình trạng
của hệ thống hiện tại như vườn tưới thiếu nước cung cấp cho động cơ, động cơ
bị hỏng
- Động cơ bơm 12V và động cơ phụ 5V: Động cơ bơm dùng để bơm nước tưới
cho hệ thống khi độ ẩm thấp và động cơ phụ dùng để bật khi động cơ chính xãy
ra sự cố hư hỏng nhàm giúp đảm bảo kịp thời lượng nước tưới cho cây
- Đèn sưởi: Dùng để sưởi ấm khi độ ẩm tăng cao trong vườn tưới lúc vừa tưới
nước từ động cơ
3.1.2 Sơ đồ nguyên lý
Trang 153.2 Thiết kế phần mềm
3.2.1 Lưu đồ của hệ thống
SVTH: Nguyễn Quốc Bảo Trang 15
Giao diện Dashboard
Tiếp nhận và xử lí chuổi JSON
Tạo và gửi chuổi JSON qua cổng
Serial Monitor
1 Led red OFF, Led green ON, Motor OFF, Đèn ON
2 Nếu nhận kí tự số: “0” Động cơ phụ OFF và nhận kí
Trang 16Giải thích lưu đồ: Chương trình bắt đầu bằng begin sau đó khởi tạo các GPIO cho
các chân kết nối của: Sensors, đèn LED, buzzer, động cơ, LCD…sau đó tiến hành
đo giá trị độ ẩm đất bằng cảm biến độ ẩm đất giá trị này được tiếp nhận và sử lý bởi
bộ điều khiển trung tâm sau đó hiển thị giá trị ra màn hình LCD Tiếp đến chươngtrình kiểm tra điều kiện độ ẩm đất có lớn hơn hoặc bằng 50% hay không nếu lớnhơn thì thực hiện bật động cơ và led tương ứng và ngược lại độ ẩm nhỏ hơn hoặcbằng 50% thì tắt động cơ và các led tương ứng Cuối cùng, chương trình in ra chuổiJSON để giao diện nhận được chuổi và xử lí chuổi JSON và hiển thị lên giao diệnwed Ở phần giao diện wed này cũng cho phép gửi ký hiệu truyền về để điều khiểncác thiết bị chấp hành như động cơ phụ, còi báo
3.2.2 Đoạn code chương trình
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
ẩm đất
// Kết nối với L298N cho động cơ bơm 12V
#define IN3_PIN 8 // Chân kết nối với L298N IN3
#define IN4_PIN 7 // Chân kết nối với L298N IN4
#define ENB_PIN 6 // Chân kết nối với L298N ENB
// Kết nối với L298N cho đèn sưởi
#define IN1_PIN 2 // Chân kết nối với L298N IN1
#define IN2_PIN 4 // Chân kết nối với L298N IN2
Trang 17// Khai báo chân cho hai led đỏ và xanh
Trang 18void loop() {
// Đo độ ẩm đất
int moistureValue = analogRead(MOISTURE_SENSOR_PIN);
float moisturePercentage = map(moistureValue, 300, 1023, 100,0); // Chuyển đổi giá trị ADC sang phần trăm
json += "\"LED Red\": \"ON\", ";
json += "\"LED Blue\": \"OFF\"";
Trang 19json += "\"LED Red\": \"OFF\", ";
json += "\"LED Blue\": \"ON\"";
Trang 20// Đọc lệnh từ Serial và thực hiện các hành động tương ứng(Dashboar)
if (Serial.available() > 0) { char command = Serial.read();
if (command == '1') { digitalWrite(MOTOR2_PIN, HIGH); // Bật động cơ phụ
} else if (command == '0') { digitalWrite(MOTOR2_PIN, LOW); // Tắt động cơ phụ
} else if (command == '2') { digitalWrite(BUZZER_PIN, HIGH); // Bật còi
} else if (command == '3') { digitalWrite(BUZZER_PIN, LOW); // Tắt còi
} } delay(1000);
}
3.3 Thiết kế giao diện Wed
3.3.1 Các khối chức năng và đoạn mã code cho các khối
Trang chủ:
SVTH: Nguyễn Quốc Bảo Trang 20