Đồ án tốt nghiệp: Thiết kế và thi công hệ thống thủy canh ứng dụng công nghệ IoTs

Trọn bộ đồ án tốt nghiệp thiết kế hệ thống thủy canh thông minh ứng dụng công nghệ IoTs, giám sát và điều khiển tự động các thông số qua Web server.

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2019

104
7
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu về Hệ thống Thủy Canh Thông Minh IoT

Hệ thống thủy canh ứng dụng công nghệ IoT là giải pháp trồng trọt hiện đại kết hợp nông nghiệp công nghệ cao với internet vạn vật. Đây là mô hình trồng rau sạch sử dụng công nghệ IoTs nhằm giải quyết vấn đề cấp cấp về an toàn thực phẩm tại Việt Nam. Thay vì phương pháp truyền thống, hệ thống thủy canh thông minh cho phép người dùng giám sát và điều khiển toàn bộ quá trình trồng trọt từ xa thông qua giao diện Web server. Công nghệ này không chỉ nâng cao năng suất mà còn đảm bảo chất lượng sản phẩm, tạo ra rau sạch an toàn cho người tiêu dùng. Mô hình được thiết kế ở quy mô nhỏ, phù hợp cho các hộ gia đình và các cơ sở nông nghiệp vừa và nhỏ.

1.1. Khái niệm Hệ thống Thủy Canh

Thủy canh là kỹ thuật trồng cây mà không sử dụng đất, thay vào đó cây được trồng trong dung dịch dinh dưỡng. Phương pháp này có lợi thế tiết kiệm nước, không bị ô nhiễm từ đất, và cho phép kiểm soát chặt chẽ các yếu tố sinh trưởng. Hệ thống thủy canh hồi lưu được sử dụng trong đề tài này tái sử dụng dung dịch dinh dưỡng, giảm chi phí và bảo vệ môi trường.

1.2. Ứng dụng Công nghệ IoT trong Nông Nghiệp

Công nghệ Internet of Things (IoT) kết nối các thiết bị cảm biến, bộ điều khiển và hệ thống Web server để tự động hóa nông nghiệp. Trong hệ thống thủy canh IoT, các cảm biến theo dõi độ pH, dinh dưỡng, và độ ẩm, sau đó hệ thống tự động điều chỉnh hoặc thông báo cho người dùng qua ứng dụng web.

II. Cấu Trúc và Thành Phần Chính của Hệ Thống

Hệ thống thủy canh thông minh bao gồm hai phần chính là thu thập dữ liệuđiều khiển thiết bị. Phần thu thập dữ liệu sử dụng các cảm biến IoT để đo lường các thông số quan trọng như độ pH, độ dẫn điện (EC) và độ ẩm của dung dịch dinh dưỡng. Phần điều khiển gồm vi điều khiển Arduino và các rơle điều khiển máy bơm tưới. Tất cả dữ liệu được gửi đến Web server được xây dựng bằng PHP và HTML, cho phép người dùng giám sát thực thời và điều khiển hệ thống từ xa. Mô hình này hoạt động với hai chế độ: chế độ auto (tự động) và chế độ manual (thủ công), đáp ứng nhu cầu đa dạng của người dùng.

2.1. Các Cảm Biến Đo Lường

Hệ thống sử dụng cảm biến pH để giám sát độ axit-kiềm của dung dịch, cảm biến EC để đo độ dẫn điện (chỉ số dinh dưỡng), và cảm biến độ ẩm để theo dõi tình trạng nước. Các cảm biến này kết nối với bộ điều khiển trung tâm để xử lý dữ liệu real-time.

2.2. Hệ thống Điều Khiển và Web Server

Vi điều khiển PIC hoặc Arduino là trái tim của hệ thống, xử lý dữ liệu từ cảm biến và điều khiển máy bơm qua rơle. Web server được lập trình bằng PHP/HTML cho phép người dùng theo dõi thông số và điều khiển hệ thống qua giao diện Internet, nâng cao tính tiện lợi và tự động hóa.

III. Quy Trình Hoạt Động của Hệ Thống Thủy Canh Thông Minh

Hệ thống thủy canh ứng dụng IoT hoạt động theo quy trình tự động hóa cao. Ban đầu, các cảm biến thu thập dữ liệu về pH, dinh dưỡng và độ ẩm liên tục gửi về bộ vi điều khiển. Bộ điều khiển so sánh dữ liệu thực tế với các giá trị chuẩn đã được lập trình sẵn. Nếu độ pH quá thấp hoặc quá cao, hệ thống tự động điều chỉnh bằng cách bơm các dung dịch cân bằng. Tương tự, khi dinh dưỡng không đủ hoặc độ ẩm bất thường, máy bơm sẽ kích hoạt để tưới thêm dung dịch. Người dùng có thể theo dõi toàn bộ quá trình này thông qua giao diện Web server và tùy chọn chuyển sang chế độ manual để điều khiển thủ công khi cần thiết.

3.1. Chế Độ Tự Động Auto

Ở chế độ auto, hệ thống tự động duy trì các thông số pH, EC, và độ ẩm trong giới hạn tối ưu cho cây trồng. Bộ điều khiển sử dụng thuật toán để kích hoạt máy bơm và điều chỉnh dinh dưỡng, giảm thiểu can thiệp thủ công và tiết kiệm sức lao động.

3.2. Chế Độ Thủ Công Manual

Chế độ manual cho phép người dùng trực tiếp kiểm soát máy bơm và các thiết bị thông qua Web interface. Điều này hữu ích khi người dùng muốn thực hiện các điều chỉnh đặc biệt hoặc khi hệ thống cần bảo trì, sửa chữa.

IV. Lợi Ích và Ứng Dụng Thực Tiễn của Hệ Thống

Hệ thống thủy canh thông minh mang lại nhiều lợi ích vượt trội. Thứ nhất, nó đảm bảo rau sạch an toàn vì toàn bộ quy trình được kiểm soát khoa học, tránh được các tác nhân gây ô nhiễm từ đất hay thuốc bảo vệ thực vật bất hợp pháp. Thứ hai, hệ thống tiết kiệm nước lên đến 90% so với phương pháp truyền thống nhờ tái sử dụng dung dịch. Thứ ba, nó tăng năng suất do điều kiện sinh trưởng tối ưu và chu kỳ trồng nhanh hơn. Thứ tư, giảm chi phí nhân công thông qua tự động hóa toàn diện. Ứng dụng thực tiễn của hệ thống này rất rộng: từ các hộ gia đình muốn tự cung cấp rau sạch, đến các cơ sở trồng rau quy mô nhỏ và vừa, thậm chí các mô hình nông nghiệp thông minh lớn hơn.

4.1. Lợi Ích Kinh Tế và Môi Trường

Hệ thống thủy canh IoT giảm chi phí đầu vào nhờ tiết kiệm nước, phân bón, và nhân công. Bảo vệ môi trường bằng cách không sử dụng hóa chất độc hại, không gây ô nhiễm đất, nước ngầm. Mô hình này phù hợp với nông nghiệp bền vững và xu hướng kinh tế xanh toàn cầu.

4.2. Ứng Dụng tại Các Hộ Gia Đình và Doanh Nghiệp

Mô hình nhỏ của hệ thống phù hợp cho các gia đình Việt Nam muốn tự sản xuất rau sạch. Đồng thời, các doanh nghiệp nông nghiệp có thể mở rộng hệ thống thủy canh để kinh doanh rau sạch với chất lượng ổn địnhchi phí cạnh tranh.

21/12/2025

Trích đoạn nội dung tài liệu

Chương 1: Tổng quan.  Chương 2: Cơ sở lý thuyết liên quan.  Chương 3: Xây dựng và thiết kế hệ thống.  Chương 4: Kết quả và thực nghiệm.

 Chương 5: Kết luận và hướng phát triển. 3 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Chuẩn truyền dữ liệu nối tiếp UART UART – là viết tắt của Universal Asynchronous Receiver – Transmitter có nghĩa là truyền nhận dữ liệu nối tiếp bất đồng bộ. Đặc điểm: Truyền dữ liệu nối tiếp bất đồng bộ có 1 đường phát dữ liệu (Tx) và 1 đường nhận dữ liệu (Rx), do không có tín hiệu xung clock nên gọi là bất đồng bộ.

Để truyền được dữ liệu thì cả bên phát và bên nhận phải tự tạo xung clock có cùng tần số và thường được gọi là tốc độ baud, ví dụ như 2400 baud, 4800 baud, 9600 baud… Ưu điểm: Đơn giản, chi phí truyền thấp, hiệu quả tương đối cao, tiết kiệm năng lượng cho hệ thống nên được sử dụng phổ biến trong các hệ thống IoTs. Khuyết điểm: Do tồn tại các bit start và bit stop, khoảng trống dẫn đến thời gian truyền chậm. Thông số chuẩn truyền UART  Tốc độ truyền ( baud rate ) Như trong ví dụ trên về việc truyền 1 bit trong 1ms, để việc truyền và nhận bất đồng bộ xảy ra thành công thì các thiết bị tham gia phải thống nhất nhau về khoảng thời gian dành cho 1 bit truyền, hay nói cách khác tốc độ truyền phải được cài đặt như nhau trước, tốc độ này gọi là tốc độ baud. Theo định nghĩa, tốc độ baud là số bit truyền trong 1 giây.

Ví dụ nếu tốc độ baud được đặt là 19200 thì thời gian dành cho 1 bit truyền là 1/19200 ~ 52.  Khung dữ liệu (frame) Do truyền thông nối tiếp và nhất là nối tiếp bất đồng bộ nên rất dễ mất hoặc sai lệch dữ liệu, quá trình truyền theo kiểu này phải tuân theo một số quy cách nhất định. Bên cạnh tốc độ baud, khung truyền là một yếu tố quan trọng tạo nên sự thành công khi truyền và nhận. Khung truyền bao gồm các quy định về số bit trong mỗi lần truyền, các bit “báo” như bit Start và bit Stop, các bit kiểm tra như Parity, ngoài ra số lượng các bit trong một data cũng được quy định bởi khung truyền.

 Start bit Start là bit đầu tiên được truyền trong một frame truyền, bit này có chức năng báo cho thiết bị nhận biết rằng có một gói dữ liệu sắp được truyền tới. Start bit là bit 4 bắt buộc phải có trong khung truyền. Đối với chuẩn truyền UART Start bit luôn luôn là mức thấp (0V).  Data Data hay dữ liệu cần truyền là thông tin chính mà chúng ta cần gởi và nhận.

Data không nhất thiết phải là gói 8 bit. Trong truyền nối tiếp UART, bit có ảnh hưởng nhỏ nhất (Least Significant Bit, bit bên phải) của data sẽ được truyền trước và cuối cùng là bit có ảnh hưởng lớn nhất (Most Significant Bit, bit bên trái).  Parity bit Parity là bit dùng kiểm tra tính đúng đắn của dữ liệu truyền (một cách tương đối). Có 2 loại parity là parity chẵn (even parity) và parity lẻ (odd parity).

Parity chẵn nghĩa là số lượng bit 1 trong dữ liệu bao gồm bit parity luôn là số chẵn. Ngược lại tổng số lượng các bit 1 nếu là parity lẻ thì luôn là số lẻ. Ví dụ, nếu dữ liệu là 10111011 nhị phân, có tất cả 6 bit 1 trong dữ liệu này, nếu parity chẵn được dùng, bit parity sẽ mang giá trị 0 để đảm bảo tổng số các bit 1 là số chẵn (6 bit 1).  Stop bit Stop bits là một hoặc các bit báo cho thiết bị nhận biết rằng một gói dữ liệu đã được gởi xong.

Sau khi nhận được stop bits, thiết bị nhận sẽ tiến hành kiểm tra khung truyền để đảm bảo tính chính xác của dữ liệu. Stop bits là các bits bắt buộc xuất hiện trong khung truyền và luôn luôn là mức cao.Các khái niệm cơ bản 2 2 I C trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển, Bus I C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại Vi điều khiển 8051, PIC, AVR, ARM. chip nhớ như: RAM tĩnh (Static Ram), EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tự(DAC), IC điểu khiển LCD, LED.Cấu tạo và nguyên lý hoạt động 2 I C sử dụng hai đường truyền tín hiệu:  Một đường xung nhịp đồng hồ (SCL) chỉ do Master phát đi (thông thường ở 100kHz và 400kHz. Mức cao nhất là 1Mhz và 3.

 Một đường dữ liệu (SDA) theo 2 hướng. 5 2 Có rất nhiều thiết bị có thể cùng được kết nối vào một bus I C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởỉ một địa chỉ duy nhất với một quan hệ chủ/tớ tồn tại trong suốt thời gian kết nối. Mỗi thiết bị có thể hoạt động như là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận. Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hãy tớ (slave).

2 Một thiết bị hay một IC khi kết nối với bus I C, ngoài một địa chỉ (duy nhất) để 2 phân biệt, nó còn được cấu hình là thiết bị chủ hay tớ. Trên một bus I C thì quyền điều khiển thuộc về thiết bị chủ. Thiết bị chủ nắm vai trò tạo xung đồng hồ cho toàn hệ thống, khi giữa hai thiết bị chủ-tớ giao tiếp thì thiết bị chủ có nhiệm vụ tạo xung đồng hồ và quản lý địa chỉ của thiết bị tớ trong suốt quá trình giao tiếp. Thiết bị chủ giữ vai trò chủ động, còn thiết bị tớ giữ vai trò bị động trong việc giao tiếp.

7 Về lý thuyết lẫn thực tế I C sử dụng 7 bit để định địa chỉ, do đó trên một bus có thể có tới 2 2 địa chỉ tương ứng với 128 thiết bị có thể kết nối, nhưng chỉ có 112 địa chỉ, trong đó 16 địa chỉ còn lại được sử dụng vào mục đích riêng. Bit còn lại quy định việc đọc hay ghi dữ liệu (1 là write, 0 là read). 2 Điểm mạnh của I C chính là hiệu suất và sự đơn giản của nó: một khối điều khiển trung tâm có thể điều khiển cả một mạng thiết bị mà chỉ cần hai lối ra điều khiển. 2 Ngoài ra I C còn có chế độ 10 bit địa chỉ tương đương với 1024 địa chỉ, có 1008 thiết bị có thể kết nối, còn lại 16 địa chỉ sẽ dùng để sử dụng mục đích riêng.1: Chuẩn giao tiếp I C.

Web Sever và Cơ sở dữ liệu 2. Các ngôn ngữ lập trình cho website Bản chất của phát triển website là phát triển các giao tiếp. Cụ thể hơn đó là giao tiếp giữa hai chủ thể khác nhau thông qua giao thức HTTP:  Server: giữ vai trò phục vụ cho trang cần được hiển thị  Client: gửi yêu cầu trang đến server, và hiển thị chúng trên trình duyệt cho người dùng. Trong hầu hết các trường hợp, client thường là trình duyệt web.

Việc lập trình bằng ngôn ngữ nào phụ thuộc vào việc sẽ chạy nó trên máy nào, server hay là client. Chính vì vậy nên có thể chia ngôn ngữ lập trình cho website thành 2 phía: phía server (server-side) và phía client (client-side). Nếu như nhiệm vụ của các ngôn ngữ lập trình chạy trên client là giúp hiển thị nội dung của trang web trên trình duyệt, tạo ra các trang tương tác, gửi yêu cầu cho server và nhận phản hồi từ nó, thì các ngôn ngữ lập trình phía server lại hoạt động phức tạp hơn nhiều. Các ngôn ngữ này được web server thông dịch và trả về các phản hồi, quản lí yêu cầu người dùng, xử lí sự kiện, lưu trữ - trích xuất dữ liệu từ cơ sở dữ liệu.

Có hai ngôn ngữ server-side chính hiện nay là ASP.NET và PHP. Ngôn ngữ ASP.NET dành cho máy chủ Windows, còn ngôn ngữ PHP linh động hơn có thể chạy trên cả máy chủ Windows lẫn máy chủ Linux. a) Khái quát về ngôn ngữ PHP PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản (script language). PHP là một ngôn ngữ lai, vay mượn một số cú pháp từ C, Pert, Shell và Java, lấy các tính năng tốt nhất từ ngôn ngữ khác và tạo ra một ngôn ngữ lập trình mạnh mẽ, dễ sử dụng.

PHP rất thích hợp với môi trường web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, cú pháp giống C và Java, dễ học, linh động và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất, là một ông vua không thể bàn cãi về ngôn ngữ kịch bản máy chủ (server-side) – nó chạy trên 75% tất cả các máy chủ web trên thế giới hiện nay. Đoạn code sau minh họa cách PHP được lồng vào các trang HTML dễ dàng như thế nào: 7 Hình 2.2: PHP được nhúng vào trang HTML. Thẻ <?php> và thẻ <?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần code PHP qua đó giúp máy chủ biết để thực thi cho đúng.

Đây là một điểm khá tiện lợi của PHP giúp cho việc viết code PHP trở nên khá trực quan và dễ dàng trong việc xây dựng trang web. Và đi kèm với PHP là MySQL ngôn ngữ lập trình và cơ sở dữ liệu được sử dụng nhiều nhất cho các ứng dụng web hiện nay.  Phương thức GET trong PHP Phương thức GET là phương thức gửi dữ liệu thông qua đường dẫn URL nằm trên thanh địa chỉ của trình duyệt. Server sẽ nhận đường dẫn đó và phân tích trả về kết quả cho client.

Server sẽ phân tích tất cả những thông tin đằng sau dấu chấm hỏi (?). Đó chính là phần dữ liệu mà client gửi lên Phương thức GET có các đặc điểm sau: o Giới hạn gửi tối đa chỉ 1024 ký tự. o Kém bảo mật. o GET không thể gửi dữ liệu nhị phân, ví dụ như hình ảnh hoặc tài liệu word lên Server.

o Dữ liệu gửi bởi phương thức GET có thể được truy cập bằng cách sử dụng biến môi trường QUERY_STRING. PHP cung cấp mảng liên hợp $_GET để truy cập tất cả các thông tin đã được gửi bởi phương thức GET Ví dụ: $nd=$_GET['nhietdo']; //nhan du lieu tu Arduino $anhsang=$_GET['anhsang']; // nhan du lieu tu Arduino $doamdat=$_GET['doamdat']; //nhan du lieu tu Arduino $doamkhongkhi=$_GET['doamkhongkhi']; 8  Phương thức POST trong PHP Phương thức POST truyền thông tin thông qua HTTP header. Thông tin này được mã hóa và đặt vào một header được gọi là QUERY_STRING.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ