Bối cảnh và vấn đề nghiên cứu
Trong xu thế hiện đại hóa sản xuất nông nghiệp, việc ứng dụng các mô hình tự động hóa vào canh tác các giống cây trồng, hoa, nấm và rau có giá trị kinh tế cao đang trở thành một nhu cầu cấp thiết. Tuy nhiên, phần lớn các hệ sinh thái tự động tại Việt Nam ở thời điểm tác giả nghiên cứu vẫn còn hạn chế về tính phổ biến, chi phí lắp đặt cao và chưa thực sự phù hợp với điều kiện kinh tế, khí hậu nhiệt đới gió mùa tại địa phương. Bên cạnh lĩnh vực nông nghiệp tập trung, đời sống đô thị ngày càng bận rộn khiến nhu cầu chăm sóc vườn cây cảnh, hoa, vườn rau tại các không gian gia đình (như sân thượng, ban công) gặp nhiều trở ngại do chủ nhà thường xuyên vắng mặt hoặc không có thời gian tưới tiêu định kỳ.
Xuất phát từ thực tiễn trên, tác giả Phạm Minh Anh đã thực hiện đồ án tốt nghiệp với đề tài "Thiết kế hệ thống tưới cây tự động" dưới sự hướng dẫn của GS. TSKH Thân Ngọc Hoàn tại Trường Đại học Dân lập Hải Phòng. Mục tiêu và các nhiệm vụ nghiên cứu của đề tài được xác lập cụ thể như sau:
- Mục tiêu nghiên cứu: Thiết kế, xây dựng và hoàn thiện mô hình hệ thống tưới nước tự động cho cây trồng dựa trên nền tảng vi điều khiển Arduino Mega 2560; có khả năng tự động giám sát nhiệt độ, độ ẩm không khí, nhận biết trạng thái mưa và quản lý thời gian thực để đóng/cắt động cơ bơm nước tưới cây chính xác, thay thế hoàn toàn thao tác thủ công của con người và ngăn chặn tình trạng tưới dư thừa trong mùa mưa.
- Nhiệm vụ nghiên cứu:
- Khảo sát các phương pháp tưới tiêu tự động, tính toán nhu cầu nước cho từng loại cây trồng và nguyên lý thủy lực đường ống cấp thoát nước.
- Nghiên cứu cấu trúc phần cứng và tính năng kỹ thuật của bo mạch vi điều khiển Arduino Mega 2560 cùng các module chức năng: cảm biến nhiệt độ - độ ẩm DHT21, cảm biến mưa SENSRAIN, module thời gian thực DS3231, màn hình hiển thị LCD Keypad Shield, module relay đóng cắt và động cơ bơm 12VDC.
- Ứng dụng phần mềm Proteus để mô phỏng sơ đồ nguyên lý mạch điện tử và Arduino IDE để viết mã điều khiển hệ thống bằng ngôn ngữ C/C++.
- Lắp đặt mạch thực tế, nạp chương trình điều khiển, tiến hành kiểm thử các chức năng đo đạc cảm biến, hiển thị giao diện và đóng ngắt bơm nước theo các kịch bản thời tiết và lịch hẹn giờ.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Mạch điều khiển tự động hóa tưới cây tích hợp vi điều khiển ATmega2560, các cảm biến môi trường (nhiệt độ, độ ẩm, mưa), module định thời gian thực và cơ cấu chấp hành động cơ bơm nước 12VDC.
- Phạm vi không gian và ứng dụng: Nghiên cứu tập trung vào quy mô nhà trồng thông minh (smart greenhouse), vườn gia đình (ban công, sân thượng) và các mô hình chuyên biệt như hệ thống tưới phun sương cho hoa lan, tưới phun sương trồng nấm, tưới phun tia mưa cho hoa cúc.
- Phạm vi thời gian: Đề tài được giao ngày 31/09/2016 và hoàn thành vào ngày 31/12/2016.
Cơ sở lý thuyết và phương pháp
Cơ sở tính toán kỹ thuật và thủy lực tưới tiêu
Đề tài dựa trên cơ sở tính toán của môn học cấp thoát nước và thủy lực đường ống nhằm xác lập thông số vận hành cho hệ thống tưới. Quá trình thiết kế đòi hỏi xác định diện tích, hình dạng vùng tưới, địa hình khu tưới và nhu cầu nước của cây trồng theo đơn vị thời gian (lít/ngày).
Căn cứ vào phương pháp tưới, định mức tiêu thụ nước của một cây trong một lần tưới được văn bản tổng hợp như sau:
- Phương pháp tưới nhỏ giọt: 5 – 10 lít/cây/lần.
- Phương pháp tưới phun tia: 15 – 20 lít/cây/lần.
- Phương pháp tưới rãnh hoặc tưới phun mưa: 30 – 40 lít/cây/lần.
Để tính toán kích thước đường ống chính và số lượng cây trong vùng tưới, công thức xác định số cây trên mỗi hàng cây được tác giả sử dụng là:
$$\text{Số cây/hàng} = \frac{\text{Chiều dài hàng}}{\text{Cự ly trồng (cây cách cây)}} + 1$$
Về mặt bố trí đường ống, nếu địa hình dốc dần, đường ống chính được bố trí theo cạnh có cao độ lớn nhất để nước chảy tự nhiên từ nơi cao xuống nơi thấp, tiết kiệm năng lượng bơm. Trường hợp đất bằng phẳng hoặc nhô cao ở giữa, đường ống chính chạy dọc theo đỉnh cao xuyên qua vùng đất để chia đều lưu lượng sang hai phía.
Phương pháp nghiên cứu
Tác giả kết hợp đồng thời các phương pháp kỹ thuật công nghệ:
- Phương pháp phân tích - tổng hợp tài liệu: Thu thập thông số kỹ thuật, sơ đồ chân và giao thức truyền thông của vi điều khiển AVR ATmega2560, cảm biến DHT21, IC thời gian thực DS3231, IC so sánh LM393 và module relay đóng cắt.
- Phương pháp tính toán và thiết kế kỹ thuật: Tính toán phân chia khu tưới, lựa chọn công suất nguồn 12V-10A, xác định điện áp kích relay và tính toán lưu lượng bơm áp lực cao 130 PSI.
- Phương pháp mô phỏng mạch điện: Sử dụng phần mềm Proteus 8 Professional tích hợp thư viện Arduino mô phỏng hoạt động điều khiển, kiểm tra tín hiệu logic trước khi triển khai phần cứng.
- Phương pháp thực nghiệm và lập trình nhúng: Lập trình firmware trên Arduino IDE bằng ngôn ngữ C/C++, bắt xung giao tiếp 1-wire, giải mã bàn phím chia áp trên kênh ADC và thực hiện đo kiểm thực tế trên mô hình phần cứng hoàn chỉnh.
Thiết kế và triển khai hệ thống
Hệ thống điều khiển tưới cây tự động được thiết kế dưới dạng mạch vòng kín với sơ đồ nguyên lý: Tín hiệu đặt (THĐ) $\rightarrow$ Bộ điều khiển trung tâm (BĐK) $\leftrightarrow$ Cảm biến (CB) $\rightarrow$ Bộ biến đổi đóng cắt (BBĐ) $\rightarrow$ Động cơ bơm (ĐC) $\rightarrow$ Vùng tưới.
+---------------+ +-------------------+ +----------------+ +---------------+
| Tín hiệu đặt | ---> | Bộ điều khiển | ---> | Bộ biến đổi | ---> | Động cơ bơm | ---> Vườn cây
| (Bàn phím LCD)| | (Arduino Mega2560)| | (Module Relay) | | (12VDC) |
+---------------+ +-------------------+ +----------------+ +---------------+
^
|
+-------------------+
| Khối cảm biến |
| (DHT21, SENSRAIN, |
| DS3231) |
+-------------------+
Thành phần phần cứng và thông số kỹ thuật
Hệ thống tích hợp các linh kiện phần cứng công nghiệp và module chuyên dụng, thông số kỹ thuật cụ thể được tổng hợp trong bảng dưới đây:
| Tên thiết bị / Module |
Thông số kỹ thuật chính |
Vai trò trong hệ thống |
| Arduino Mega 2560 |
Vi điều khiển ATmega2560; điện áp hoạt động 5V; 54 chân Digital I/O (15 chân PWM); 16 chân Analog; bộ nhớ Flash 256 KB; SRAM 8 KB; EEPROM 4 KB; thạch anh 16 MHz; giao tiếp nạp qua ATmega16U2. |
Bộ xử lý trung tâm, tiếp nhận tín hiệu cảm biến, xử lý thuật toán thời gian và xuất lệnh điều khiển relay. |
| LCD Keypad Shield |
Màn hình LCD 1602 (16 ký tự x 2 dòng, chữ trắng nền xanh); 5 phím điều hướng (Select, Left, Right, Up, Down) kết nối qua mạch chia áp 5 giai đoạn vào chân Analog A0. |
Giao tiếp người - máy, hiển thị thời gian, nhiệt độ, độ ẩm, trạng thái thời tiết và thực hiện cài đặt thông số hẹn giờ. |
| Cảm biến DHT21 (AM2301) |
Cảm biến điện dung tích hợp; điện áp 3.3 - 5V; dải đo nhiệt độ -40 đến 80 °C (sai số ±0.5 °C); dải đo độ ẩm 0 - 100% (sai số ±3%); chuẩn giao tiếp 1-wire; khoảng cách truyền dẫn 20m. |
Đo nhiệt độ và độ ẩm môi trường khu vực trồng trọt. |
| Cảm biến mưa (SENSRAIN) |
Bo mạch mạch in xen kẽ dẫn điện; điện áp 5V; IC so sánh LM393; có biến trở điều chỉnh độ nhạy; xuất tín hiệu số D0 (TTL) và tín hiệu tương tự A0. |
Phát hiện trạng thái có nước mưa ngoài trời để ngắt bơm kịp thời. |
| Module RTC DS3231 |
Tích hợp thạch anh nội có bù nhiệt; pin nuôi dự phòng; giao tiếp I2C tối đa 400 kHz; bộ nhớ EEPROM AT24C32 (32k bit); lưu dữ liệu giờ/phút/giây/thứ/ngày/tháng/năm đến năm 2100. |
Cung cấp mốc thời gian thực chuẩn xác phục vụ thuật toán tưới theo giờ định sẵn. |
| Module Relay 2 kênh |
Điện áp nuôi 5V; kích đóng bằng transistor PNP; tích hợp diode xả ngược D1; tiếp điểm chịu tải 10A ở 250VAC / 125VAC; có chân thường mở (NO) và thường đóng (NC). |
Đóng ngắt nguồn điện cấp cho động cơ bơm áp lực 12VDC. |
| Động cơ bơm 12VDC |
Động cơ nam châm vĩnh cửu dòng cực đại 6A; áp lực 130 PSI; tích hợp cơ cấu tự mồi và công tắc áp suất tự động ngắt khi áp suất đường ống tăng cao; chống ăn mòn. |
Hút nước từ nguồn và đẩy nước qua các đầu béc phun sương/phun tia. |
| Nguồn tổ ong 12V - 10A |
Điện áp vào 110/220VAC; ngõ ra 12VDC; sai số điện áp ra 1-3%; dải nhiệt độ làm việc 0 - 70 °C. |
Cung cấp nguồn nuôi công suất cho động cơ bơm và hạ áp nuôi mạch điều khiển. |
Cấu hình kết nối chân tín hiệu
Các chân giao tiếp ngoại vi của Arduino Mega 2560 được quy hoạch như sau:
- Module cảm biến mưa SENSRAIN: Chân tín hiệu số D0 nối vào chân Digital 23 (cấu hình
INPUT), chân cấp nguồn nối 5V và GND.
- Cảm biến nhiệt độ - độ ẩm DHT21: Chân DATA nối vào chân Digital 22 (
#define DHTPIN 22), sử dụng điện trở kéo lên, chân nguồn cấp 5V và GND.
- Module thời gian thực DS3231: Kết nối qua đường truyền TWI/I2C tiêu chuẩn (chân SDA và SCL của bo mạch Mega 2560).
- Màn hình LCD Keypad Shield: Gắn trực tiếp lên bo mạch Arduino, sử dụng chân Analog A0 để đọc trạng thái của 5 nút nhấn; các chân dữ liệu và điều khiển LCD gồm Digital 4 (DB4), 5 (DB5), 6 (DB6), 7 (DB7), 8 (RS), 9 (Enable) và 10 (Backlit control).
- Module Relay điều khiển bơm: Đầu vào kích điều khiển kết nối chân Digital của vi điều khiển, đầu ra tiếp điểm thường mở (NO) đấu nối tiếp với cực dương nguồn 12VDC cấp cho động cơ bơm.
Nội dung chính theo từng chương
Chương 1. Giới thiệu tổng quát về tưới tiêu tự động trong nông nghiệp
Nội dung chương 1 phân tích hiện trạng sản xuất nông nghiệp ứng dụng công nghệ cao và nhu cầu cấp thiết của việc áp dụng giải pháp tự động hóa vào quy mô hộ gia đình và nhà vườn. Tác giả phân tích các yếu tố kỹ thuật then chốt khi thiết kế hệ thống tưới tiêu:
- Nhận diện các thông số đầu vào bao gồm: hình dạng, diện tích vùng tưới, địa hình khu tưới, khoảng cách giữa các cây trồng và nhu cầu tiêu thụ nước theo ngày của từng giống cây.
- Tổng kết định mức tưới thực nghiệm cho các phương pháp: tưới nhỏ giọt (5 - 10 lít/cây), tưới phun tia (15 - 20 lít/cây), tưới phun mưa (30 - 40 lít/cây).
- Đưa ra giải pháp phân chia vùng tưới thành nhiều khu vực độc lập nếu diện tích canh tác lớn nhằm tránh việc tăng đột biến đường kính ống dẫn và công suất máy bơm gây lãng phí kinh tế.
- Trình bày công thức tính toán số cây trên hàng và nguyên lý bố trí đường ống chính dựa theo địa hình cao độ tự nhiên để tối ưu áp lực thủy lực và tiết kiệm năng lượng vận hành.
Chương 2. Cấu trúc và tính năng của Arduino
Chương 2 trình bày toàn diện về cơ sở kỹ thuật của hệ thống nhúng và các thiết bị phần cứng được sử dụng:
- Giới thiệu lịch sử hình thành của nền tảng mã nguồn mở Arduino (khởi nguồn từ năm 2005 tại thị trấn Ivrea, Italia bởi nhóm nghiên cứu của giáo sư Massimo Banzi).
- Khảo sát chi tiết kiến trúc bo mạch Arduino Mega 2560 sử dụng vi điều khiển ATmega2560 với 54 chân Digital, 16 chân Analog, 4 cổng UART phần cứng, bộ nhớ Flash 256 KB và vi điều khiển giao tiếp USB-to-Serial ATmega16U2 thay thế cho chip FTDI truyền thống.
- Cấu tạo và nguyên lý hoạt động của các module thành phần:
- LCD Keypad Shield: Tích hợp màn hình 1602 và 5 nút bấm sử dụng mạch chia điện áp 5 giai đoạn giúp tối ưu hóa tài nguyên phần cứng, chỉ sử dụng duy nhất chân A0 để đọc trạng thái phím.
- Cảm biến DHT21 (AM2301): Cung cấp thông số dải đo nhiệt độ -40 đến 80 °C, dải đo độ ẩm 0 - 100%, nguyên lý truyền dữ liệu 1 dây số hóa chống nhiễu cao.
- Cảm biến mưa SENSRAIN: Nguyên lý nhận diện nước qua mạch dẫn điện hở, sử dụng IC so sánh LM393 để tạo mức logic TTL D0 (mức 1 khi khô, mức 0 khi có mưa) và điện áp A0 tỷ lệ thuận với lượng nước tiếp xúc.
- Module Relay 12VDC: Nguyên lý đóng mở tiếp điểm cơ khí thông qua cuộn hút điện từ được kích dòng bởi transistor PNP, có diode bảo vệ chống xung điện áp ngược.
- Module RTC DS3231, động cơ bơm 12VDC (130 PSI) và bộ nguồn xung tổ ong 12V-10A: Thông số vận hành, sơ đồ nguyên lý và khả năng tự mồi, tự ngắt áp suất cao của máy bơm.
- Môi trường phát triển: Giới thiệu phần mềm mô phỏng Proteus (ISIS, ARES), thư viện Arduino cho Proteus do nhóm kỹ sư quốc tế phát triển, và môi trường lập trình Arduino IDE.
Chương 3. Thiết kế, lập trình, lắp đặt mạch thực tế
Chương 3 là phần trọng tâm kỹ thuật của đồ án, mô tả toàn bộ quá trình thiết kế sơ đồ nguyên lý, lập trình firmware và tích hợp hệ thống:
- Xây dựng sơ đồ khối điều khiển mạch vòng và thiết kế mạch mô phỏng trên phần mềm Proteus (sử dụng IC L293D hoặc relay OMIH-SH-124D để điều khiển động cơ DC).
- Phân tích chi tiết quy trình giao tiếp 1-wire thời gian thực với cảm biến DHT21/DHT22:
- Khởi tạo tín hiệu (Start signal): Vi điều khiển kéo chân DATA xuống mức thấp (LOW) trong thời gian $\ge 1\text{ ms}$, sau đó kéo lên mức cao và chuyển sang trạng thái ngõ vào (
INPUT). Chờ cảm biến phản hồi kéo xuống mức thấp trong 20 - 40 $\mu\text{s}$, duy trì mức thấp 80 $\mu\text{s}$ rồi kéo lên mức cao 80 $\mu\text{s}$.
- Đọc dữ liệu 40-bit (5 byte): Cảm biến truyền về 5 byte dữ liệu theo thứ tự: Byte 1 (phần nguyên độ ẩm), Byte 2 (phần thập phân độ ẩm), Byte 3 (phần nguyên nhiệt độ), Byte 4 (phần thập phân nhiệt độ), Byte 5 (checksum kiểm tra tổng).
- Quy tắc kiểm tra và tính toán: Tính hợp lệ của dữ liệu được xác nhận khi:
$$\text{Byte 5} = \text{Byte 1} + \text{Byte 2} + \text{Byte 3} + \text{Byte 4}$$
Giá trị thực tế được tính bằng công thức: $\frac{\text{Byte cao} \times 256 + \text{Byte thấp}}{10}$. Mỗi bit dữ liệu được phân biệt dựa vào độ rộng xung mức cao: bit 0 duy trì mức cao từ 26 - 28 $\mu\text{s}$, bit 1 duy trì mức cao khoảng 70 $\mu\text{s}$ (thuật toán bắt sườn lên và tạo trễ delay 50 $\mu\text{s}$ để đọc mức logic).
- Thiết kế giao diện hiển thị trên màn hình LCD 1602: Tạo các ký tự tùy biến (custom characters) thông qua mảng ma trận 8 byte bao gồm: ký tự độ C (
doC[8]), biểu tượng trời mưa (mua[8]), biểu tượng trời nắng (nang[8]) và biểu tượng chuông báo hẹn giờ (chuong[8]).
- Xây dựng máy trạng thái hữu hạn (FSM) và lưu đồ thuật toán điều khiển:
- Vòng lặp chính quét màn hình chính (
MH_CHINH), hiển thị thời gian từ DS3231 và thông số nhiệt độ - độ ẩm từ DHT21.
- Nhận diện phím bấm: Nhấn phím
Select để chuyển sang chế độ cài đặt giờ (CAI_GIO), nhấn tiếp chuyển cài đặt phút (CAI_PHUT), thiết lập trạng thái kích hoạt (TG_CAI_ON).
- Thiết lập cơ chế tự động thoát về màn hình chính nếu không có thao tác bàn phím sau thời gian định thời (
TIME_OUT = 5 giây).
- Thuật toán kích hoạt động cơ: Khi biến
SET == true và thời gian thực trùng với thời gian cài đặt, đồng thời tín hiệu cảm biến mưa ở mức cao (rainSensor == HIGH - trời không mưa), vi điều khiển xuất tín hiệu đóng relay kích hoạt máy bơm. Nếu cảm biến mưa báo mức thấp (rainSensor == LOW - có mưa), hệ thống lập tức cưỡng bức chuyển trạng thái ngắt động cơ (transition(OFF)), hiển thị icon mưa trên màn hình LCD.
Kết quả và đóng góp
Kết quả kỹ thuật đạt được
- Thiết kế và chế tạo mô hình phần cứng hoàn chỉnh: Tác giả đã lắp ráp thành công mô hình hệ thống tưới cây tự động với khối xử lý Arduino Mega 2560, kết nối đồng bộ module thời gian thực DS3231, màn hình LCD 1602 Keypad Shield, cảm biến nhiệt độ - độ ẩm DHT21, cảm biến mưa SENSRAIN và mạch điều khiển đóng ngắt relay 12VDC.
- Đo đạc và xử lý dữ liệu cảm biến chính xác: Hệ thống đọc ổn định dải nhiệt độ từ -40 đến 80 °C (sai số ±0.5 °C) và độ ẩm (sai số ±3%) theo đúng chuẩn truyền 1 dây; phát hiện tức thời hiện tượng mưa thông qua đầu ra số của IC LM393.
- Vận hành chính xác cơ chế hẹn giờ và logic bảo vệ: Đồng hồ thời gian thực duy trì chính xác các thông số giờ, phút, giây, ngày, tháng, năm. Hệ thống tự động chuyển mạch ngắt bơm khi trời có mưa nhằm bảo vệ rễ cây không bị úng nước và tiết kiệm tài nguyên nước.
- Vận hành cơ cấu bơm công suất: Động cơ bơm áp lực 12VDC - 6A áp lực 130 PSI hoạt động ổn định thông qua tiếp điểm relay chịu dòng, tích hợp khả năng tự mồi và tự ngắt áp suất cao.
Đóng góp kỹ thuật của đề tài
- Hệ thống hóa các công thức thủy lực, tính toán lưu lượng tưới và cự ly cây trồng áp dụng cho thiết kế hệ thống tưới đường ống tự động.
- Triển khai thành công giải thuật đọc chuỗi xung nhị phân 40-bit từ cảm biến nhiệt ẩm DHT21 trực tiếp ở cấp độ vi điều khiển vi xử lý mà không bị phụ thuộc hoàn toàn vào các hàm thư viện đen, đi kèm cơ chế kiểm tra lỗi tổng checksum.
- Tối ưu hóa giao diện điều khiển với bàn phím chia áp trên một chân Analog duy nhất kết hợp cơ chế menu cài đặt thời gian có tính năng time-out an toàn.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế kỹ thuật
- Về mô phỏng: Thư viện phần mềm Proteus ở thời điểm thực hiện chưa hỗ trợ đầy đủ mô hình cảm biến DHT21 và module cảm biến mưa SENSRAIN chuyên dụng, do đó trên bản vẽ mô phỏng tác giả buộc phải thay thế tạm thời bằng cảm biến nhiệt tương tự LM35 và công tắc logic.
- Về cơ cấu phân phối nước: Mô hình thực nghiệm mới dừng lại ở việc điều khiển đóng cắt một bơm chung cho một vùng tưới đơn nhất; chưa tích hợp hệ thống van điện từ (solenoid valves) để đóng/cắt phân luồng độc lập cho từng khu tưới riêng biệt khi diện tích canh tác mở rộng.
- Về khả năng kết nối: Hệ thống vận hành độc lập cục bộ tại chỗ, việc cài đặt và giám sát phải thông qua các nút bấm vật lý và màn hình LCD trên mạch, chưa có module truyền thông từ xa.
Hướng nghiên cứu tiếp
- Thiết kế bổ sung các mạch công suất điều khiển van điện từ đa kênh nhằm mở rộng khả năng phân chia vùng tưới cho các nhà kính hoặc trang trại diện tích lớn.
- Tích hợp thêm các cảm biến đo độ ẩm đất chuyên sâu đặt trực tiếp tại các gốc cây để bổ trợ cho cảm biến độ ẩm không khí DHT21.
- Nghiên cứu phát triển module truyền thông không dây (như GSM, Wi-Fi hoặc RF) để truyền dữ liệu trạng thái về điện thoại thông minh hoặc máy tính trung tâm, cho phép người dùng giám sát và điều khiển chế độ tưới từ xa.
Giá trị tham khảo
Tài liệu đồ án này có giá trị ứng dụng và tham khảo thiết thực cho các đối tượng sau:
- Sinh viên ngành Kỹ thuật điều khiển và Tự động hóa, Điện tử viễn thông, Cơ điện tử: Là tài liệu tham khảo hoàn chỉnh về quy trình thiết kế một hệ thống điều khiển nhúng sử dụng vi điều khiển ATmega/Arduino, từ khâu phân tích bài toán, tính toán thủy lực đến khâu thiết kế phần cứng và lập trình firmware.
- Kỹ sư và nhà nghiên cứu nông nghiệp công nghệ cao: Tham khảo định mức tính toán lưu lượng nước theo từng phương pháp tưới (nhỏ giọt 5 - 10L, phun tia 15 - 20L, phun mưa 30 - 40L) và công thức bố trí đường ống thủy lực dựa trên địa hình cao độ.
- Các phần nội dung đáng tham khảo chuyên sâu:
- Mục 3.3.1 (Chương 3): Quy trình lập trình bắt xung thời gian thực 1-wire cho cảm biến nhiệt độ - độ ẩm (phân biệt bit 0 và bit 1 qua mức trễ 50 $\mu\text{s}$ và thuật toán tính checksum).
- Mục 3.3.4 (Chương 3): Kỹ thuật lập trình tạo mảng ký tự tùy biến (custom characters) trên màn hình LCD 1602 và giải thuật phân chia trạng thái phím bấm (FSM) có cơ chế time-out 5 giây.
Câu hỏi thường gặp
1. Bo mạch vi điều khiển nào được lựa chọn làm trung tâm điều khiển và các thông số kỹ thuật cốt lõi là gì?
Hệ thống sử dụng bo mạch vi điều khiển Arduino Mega 2560 tích hợp chip vi điều khiển 8-bit ATmega2560. Các thông số kỹ thuật chính gồm: điện áp hoạt động 5V (nguồn khuyên dùng từ 7 - 12V), 54 chân Digital I/O (với 15 chân hỗ trợ điều chế độ rộng xung PWM), 16 chân Analog ngõ vào, 4 cổng truyền thông UART phần cứng, tần số thạch anh 16 MHz, bộ nhớ Flash 256 KB (trong đó 8 KB dùng cho bootloader), 8 KB SRAM và 4 KB EEPROM.
2. Thuật toán đọc dữ liệu từ cảm biến DHT21 được triển khai như thế nào để đảm bảo tính chính xác?
Để đọc dữ liệu từ DHT21 qua chuẩn giao tiếp 1 dây (1-wire), vi điều khiển phát xung Start kéo chân DATA xuống mức thấp tối thiểu 1 ms, sau đó thả lên mức cao để cảm biến phản hồi. DHT21 gửi liên tiếp 40 bit dữ liệu tương ứng 5 byte: Byte 1 (nguyên ẩm), Byte 2 (thập phân ẩm), Byte 3 (nguyên nhiệt), Byte 4 (thập phân nhiệt) và Byte 5 (checksum). Mỗi bit được xác định bằng cách bắt sườn lên của tín hiệu và tạo trễ delay 50 $\mu\text{s}$; nếu tín hiệu vẫn ở mức cao thì đó là bit 1 (tồn tại ~70 $\mu\text{s}$), nếu đã về mức thấp thì là bit 0 (chỉ tồn tại 26 - 28 $\mu\text{s}$). Dữ liệu chỉ được chấp nhận là chính xác khi $\text{Byte 5} = \text{Byte 1} + \text{Byte 2} + \text{Byte 3} + \text{Byte 4}$.
3. Làm thế nào tấm chắn LCD Keypad Shield có thể đọc được 5 phím bấm mà chỉ cần dùng một chân kết nối của vi điều khiển?
LCD Keypad Shield sử dụng mạch phân áp 5 giai đoạn nối tiếp các điện trở khác nhau tương ứng với từng phím bấm (Select, Left, Up, Down, Right). Khi một phím được nhấn, mạch sẽ tạo ra một mức điện áp tương tự (analog voltage) đặc trưng riêng biệt đưa vào chân Analog A0 của Arduino Mega 2560. Bộ chuyển đổi ADC 10-bit của vi điều khiển sẽ đọc giá trị điện áp này và so sánh với các ngưỡng định sẵn để xác định chính xác nút nào đang được bấm, giúp tiết kiệm tối đa các chân Digital I/O cho hệ thống.
4. Động cơ bơm nước được trang bị trong hệ thống có thông số kỹ thuật và tính năng an toàn gì?
Động cơ sử dụng trong đồ án là loại động cơ điện một chiều 12VDC - 6A nam châm vĩnh cửu có khả năng tạo áp lực nước cao lên tới 130 PSI. Động cơ tích hợp cơ cấu bơm tự mồi, có công tắc áp suất tự động ngắt bơm khi áp lực đường ống vượt ngưỡng cho phép, có chức năng bảo vệ quá nhiệt, độ ồn thấp, khả năng chống ăn mòn hóa chất và có thể chạy khô mà không gây hư hại cho buồng bơm.
5. Cảm biến mưa SENSRAIN can thiệp vào quy trình tưới tự động như thế nào?
Cảm biến mưa sử dụng bo mạch có các đường kim loại xen kẽ hở mạch. Khi có nước mưa rơi vào, bề mặt dẫn điện làm thay đổi điện áp đưa vào IC so sánh LM393, kích hoạt đầu ra số D0 chuyển từ mức cao (mức 1 khi khô ráo) xuống mức thấp (mức 0 khi có mưa). Vi điều khiển kết nối chân D0 vào chân Digital 23; khi nhận tín hiệu mức thấp, chương trình lập tức chuyển trạng thái cưỡng bức ngắt relay động cơ (transition(OFF)), hiển thị icon mưa trên màn hình LCD và bỏ qua lịch hẹn tưới nhằm chống ngập úng và tiết kiệm điện, nước.
Kết luận
Đồ án tốt nghiệp "Thiết kế hệ thống tưới cây tự động" của sinh viên Phạm Minh Anh đã giải quyết hoàn chỉnh bài toán tự động hóa quy trình chăm sóc cây trồng ở quy mô vừa và nhỏ thông qua việc kết hợp nền tảng vi điều khiển Arduino Mega 2560 với các cảm biến môi trường DHT21, SENSRAIN và module thời gian thực DS3231. Hệ thống đã được kiểm chứng hoạt động ổn định trên cả phần mềm mô phỏng Proteus và mô hình phần cứng thực tế, thực hiện chính xác các kịch bản hẹn giờ, hiển thị trực quan thông số khí hậu và ngắt bơm an toàn khi trời mưa. Đây là công trình kỹ thuật có tính ứng dụng thực tiễn cao, cung cấp cơ sở tài liệu chi tiết cho việc nghiên cứu và mở rộng các giải pháp nông nghiệp thông minh tại Việt Nam.