TỔNG QUAN
TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC
Trong xã hội hiện đại, nhu cầu sử dụng các ứng dụng điện tử ngày càng cao, đòi hỏi tính tự động hóa để phục vụ người dùng hiệu quả hơn Thuật ngữ IoT (Internet of Things) đã ra đời, thể hiện sự kết hợp giữa công nghệ điện tử và internet nhằm đáp ứng nhu cầu tự động hóa trong các ứng dụng hiện nay.
Các hãng sản xuất thiết bị điện tử đang phát triển các sản phẩm và linh kiện có khả năng giao tiếp với chip vi xử lý và kết nối Internet Nhiều thiết bị như module RF, Wifi, Bluetooth và máy tính nhúng đã được ra mắt nhằm tạo thuận lợi cho người sử dụng Để hiểu rõ hơn về ứng dụng của IoT, nhóm sinh viên đã chọn đề tài đồ án tốt nghiệp là "Hệ thống thủy canh ứng dụng công nghệ".
Hệ thống thủy canh ứng dụng công nghệ IoTs là một chủ đề quan trọng được trình bày bởi thầy Nguyễn Ngô Lâm, giảng viên Trường ĐH Sư Bài viết sẽ khám phá các khía cạnh của hệ thống này, từ nguyên lý hoạt động đến lợi ích mà nó mang lại trong nông nghiệp hiện đại Công nghệ IoTs giúp cải thiện hiệu quả sản xuất và quản lý tài nguyên, đồng thời tối ưu hóa quy trình trồng trọt.
Phaṃ KỹThuâṭTPHCM hướng dẫn.
1.1.2 Tính cấp thiết của vấn đề: Đề tài “Hệ thống thủy canh ứng dụng công nghệ IoTs” nhóm đã chọn cho đồ án tốt nghiệp vì qua đã quan sát trong trong thực tế hiện nay, việc trồng và giám sát các loại rau sống như rau muống, xà lách, cải xanh, … gặp nhiều khó khăn và không đảm bảo được năng suất vì các yếu tố thời tiết hoặc không đảm bảo được an toàn vì sử dụng một lượng lớn thuốc trừ sâu để diệt sâu hại Ngoài ra, kỹ thuật canh tác lạc hậu cũng làm giảm năng suất, mất nhiều thời gian, chi phí và sức lao động Việc trồng các loại rau này cũng khó khăn đối với người dân ở thành thị không có diện tích đất đủ lớn để trồng trọt khi muốn tự đảm bảo về an toàn thực phẩm. Để giải quyết vấn đề đó, thay vì nuôi trồng trong môi trường tự nhiên thì có thể xây dựng giàn trồng thủy canh để có thể dễ dàng giám sát, điều khiển cấp nước, ánh sáng một cách tự động và có thể tránh được sâu bệnh hay tác động của thời tiết xấu.Ngoài ra, hệ thống trồng thủy canh cũng có thể xây dựng nhiều tầng với nhiều giàn trồng, có thể tiết kiệm được diện tích trồng trọt vì có thể trồng trên các giàn trồng thủy canh mà không phải trồng trên đất Để xây dựng hệ thống, cần có các cảm biến để thu thập các số liệu từ môi trường dung dịch trồng thủy canh như nồng độ dinh dưỡng (TDS), pH, … và có một bộ phận điều khiển để điều chỉnh cho phù hợp cho mỗi loại rau Ngoài ra phải có một hệ thống cảnh báo khi có các tín hiệu bất thường xảy ra trong hệ thống giàn thủy canh để có thể báo động và xử lý các vấn đề xảy ra trong hệ thống. Đề tài được chọn làm đồ án tốt nghiệp của nhóm tuy chưa phải là một công trình nghiên cứu lớn, hiện tại nhóm chỉ thiết kế cho hệ thống dựa trên một mô hình nhỏ nhưng sẽ đảm bảo được các các vấn đề xảy ra đối với hệ thống, các yêu cầu của hệ thống trong thực tế như độ bền về thời gian sử dụng, tính an toàn và chi phí…
1.1.3 Mục tiêu của đề tài:
Mục tiêu của sinh viên trong đồ án tốt nghiệp là nắm vững các phần mềm và ngôn ngữ lập trình web hiện đại như PHP, HTML, và JavaScript Sinh viên cũng cần làm quen với các công cụ quản lý cơ sở dữ liệu như phpMyAdmin, sử dụng Arduino IDE, và hiểu các giao thức truyền nhận dữ liệu Bên cạnh đó, khả năng đọc hiểu datasheet của linh kiện và thiết bị điện tử mới, cùng với việc thiết kế mô hình hệ thống, cũng là những kỹ năng quan trọng cần đạt được.
Nhóm có thể khám phá và áp dụng các ngôn ngữ lập trình web để thiết kế một trang web cho hệ thống, cho phép truy xuất dữ liệu từ cảm biến lên cơ sở dữ liệu nhằm giám sát Từ đó, dữ liệu này có thể được sử dụng để điều khiển các động cơ và đèn trong hệ thống.
Qua đồ án tốt nghiệp, sinh viên sẽ tích lũy kinh nghiệm thực tiễn và tiếp cận hệ thống ứng dụng IoTs Điều này tạo nền tảng kiến thức vững chắc, phục vụ cho công việc liên quan đến IoTs sau khi tốt nghiệp.
Trong đề tài này, nhóm tập trung vào việc thiết kế một mô hình giàn trồng thủy canh nhỏ, thay vì phát triển một hệ thống lớn về điện tử và cơ khí cho toàn bộ hệ thống trồng thủy canh thực tế Mô hình này vẫn đảm bảo đáp ứng đầy đủ các yêu cầu cần thiết của một hệ thống thủy canh thực tế.
Hệ thống bao gồm khối thu thập dữ liệu với các node và cảm biến để thu thập dữ liệu môi trường, sau đó gửi lên server để hiển thị trên web và lưu trữ Khối điều khiển tích hợp động cơ bơm và van, lấy dữ liệu từ server để thực hiện các yêu cầu của người sử dụng như cài đặt giờ bơm, thời gian bơm, cũng như bật tắt bơm và van khi có tín hiệu bất thường.
Hệ thống này bao gồm ba khối chính: khối thu thập dữ liệu từ cảm biến, khối server với chức năng quản lý cơ sở dữ liệu và web, và khối điều khiển động cơ bơm cùng van điện từ.
Nhóm chỉ phát triển một node thu thập dữ liệu với các module cảm biến công nghiệp có giá thành cao để đảm bảo độ chính xác Tuy nhiên, khi áp dụng vào thực tế, có thể mở rộng ra nhiều node thu thập và sử dụng cảm biến chất lượng cao hơn, mặc dù sẽ tốn kém hơn.
Bài cáo cáo đồ án bao gồm những phần chính như sau:
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.
CƠ SỞ LÝ THUYẾT
CÁC CƠ SỞ LÝ THUYẾT
2.1.1 Chuẩn truyền dữ liệu nối tiếp UART
UART, which stands for Universal Asynchronous Receiver-Transmitter, refers to a method of asynchronous serial data transmission It features a single data transmission line (Tx) for sending information.
Giao tiếp bất đồng bộ sử dụng một đường nhận dữ liệu (Rx) mà không cần tín hiệu xung clock, yêu cầu cả bên phát và bên nhận tự tạo xung clock với tần số giống nhau, thường được gọi là tốc độ baud (ví dụ: 2400 baud, 4800 baud, 9600 baud) Ưu điểm của phương pháp này bao gồm sự đơn giản, chi phí truyền thấp, hiệu quả tương đối cao và tiết kiệm năng lượng, làm cho nó trở thành lựa chọn phổ biến trong các hệ thống IoT.
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
2.1.1.1 Thông số chuẩn truyền UART
Tốc độ truyền ( baud rate )
Để việc truyền và nhận dữ liệu bất đồng bộ diễn ra thành công, các thiết bị cần thống nhất về thời gian truyền cho mỗi bit, hay còn gọi là tốc độ baud Tốc độ baud được định nghĩa là số bit truyền trong một giây; ví dụ, nếu tốc độ baud là 19200, thì thời gian truyền cho mỗi bit sẽ khoảng 52.083 micro giây.
Do tính chất của truyền thông nối tiếp, đặc biệt là nối tiếp bất đồng bộ, việc mất mát hoặc sai lệch dữ liệu là điều dễ xảy ra, vì vậy quá trình truyền cần tuân thủ các quy định nhất định Ngoài tốc độ baud, khung truyền đóng vai trò quan trọng trong việc đảm bảo thành công của quá trình truyền và nhận dữ liệu Khung truyền quy định số bit trong mỗi lần truyền, bao gồm các bit “báo” như bit Start và bit Stop, cùng với các bit kiểm tra như Parity, và số lượng bit trong một dữ liệu cũng được quy định bởi khung truyền.
Start bit là bit đầu tiên trong một frame truyền, có vai trò quan trọng trong việc thông báo cho thiết bị nhận biết rằng một gói dữ liệu sắp được gửi đến.
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).
Dữ liệu cần truyền là thông tin quan trọng mà chúng ta gửi và nhận Trong truyền nối tiếp UART, dữ liệu không nhất thiết phải là gói 8 bit; bit có ảnh hưởng nhỏ nhất (Least Significant Bit) sẽ được truyền trước, trong khi bit có ảnh hưởng lớn nhất (Most Significant Bit) sẽ được truyền sau cùng.
Parity là một phương pháp kiểm tra tính chính xác của dữ liệu truyền, bao gồm hai loại: parity chẵn và parity lẻ Parity chẵn yêu cầu tổng số bit 1, bao gồm cả bit parity, phải là số chẵn, trong khi parity lẻ yêu cầu tổng số bit 1 phải là số lẻ Chẳng hạn, với dữ liệu nhị phân 10111011 có 6 bit 1, nếu sử dụng parity chẵn, bit parity sẽ có giá trị 0 để đảm bảo tổng số bit 1 vẫn là số chẵn.
Stop bits là các bit quan trọng cho phép thiết bị nhận biết khi một gói dữ liệu đã được gửi hoàn tất Sau khi nhận stop bits, thiết bị sẽ kiểm tra khung truyền để đảm bảo dữ liệu chính xác Các stop bits là bắt buộc trong khung truyền và luôn ở mức cao.
2.1.2.1.Các khái niệm cơ bản
I2C đã trở thành một chuẩn công nghiệp quan trọng cho các giao tiếp điều khiển Bus I2C được sử dụng rộng rãi làm bus giao tiếp ngoại vi cho nhiều loại IC khác nhau.
Vi điều khiển 8051, PIC, AVR, ARM và các chip nhớ như RAM tĩnh, EEPROM, cùng với bộ chuyển đổi tương tự số (ADC) và số tương tự (DAC) là những thành phần quan trọng trong thiết kế mạch điện tử Ngoài ra, IC điều khiển LCD và LED cũng đóng vai trò không thể thiếu trong việc hiển thị thông tin và điều khiển thiết bị.
2.1.2.2.Cấu tạo và nguyên lý hoạt động
I2C 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.4MHz).
Một đường dữ liệu (SDA) theo 2 hướng.
Bus I2C cho phép kết nối nhiều thiết bị mà không xảy ra nhầm lẫn, nhờ vào địa chỉ duy nhất cho mỗi thiết bị Mối quan hệ chủ/tớ được duy trì trong suốt quá trình kết nối, giúp các thiết bị hoạt động hiệu quả Mỗi thiết bị có thể đảm nhận vai trò là thiết bị nhận, truyền dữ liệu, hoặc cả hai, tùy thuộc vào việc nó là thiết bị chủ (master) hay tớ (slave).
Khi kết nối với bus I2C, mỗi thiết bị hoặc IC cần có một địa chỉ duy nhất và được cấu hình là thiết bị chủ hoặc thiết bị tớ Trong hệ thống bus I2C, thiết bị chủ có quyền điều khiển và tạo xung đồng hồ cho toàn bộ hệ thống Khi giao tiếp giữa thiết bị chủ và thiết bị tớ, thiết bị chủ đảm nhận 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 này Như vậy, thiết bị chủ giữ vai trò chủ động, trong khi thiết bị tớ có vai trò bị động trong giao tiếp.
Giao thức I2C sử dụng 7 bit để định địa chỉ, cho phép kết nối tối đa 128 thiết bị, tuy nhiên chỉ có 112 địa chỉ khả dụng vì 16 địa chỉ còn lại được dành cho mục đích riêng Bit cuối cùng xác định chế độ hoạt động của dữ liệu, với 1 là ghi và 0 là đọc Điểm mạnh của I2C nằm ở hiệu suất cao và sự đơn giản, cho phép một khối điều khiển trung tâm quản lý toàn bộ mạng thiết bị chỉ với hai tín hiệu điều khiển.
Ngoài ra I2C 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.
2.1.3 Web Sever và Cơ sở dữ liệu
2.1.3.1 Các ngôn ngữ lập trình cho website
Phát triển website chủ yếu là xây dựng các hình thức giao tiếp, đặc biệt 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ựa chọn ngôn ngữ lập trình cho website phụ thuộc vào môi trường chạy, có thể là trên máy chủ (server) hoặc máy khách (client) Do đó, ngôn ngữ lập trình cho website có thể được phân loại thành hai nhóm chính.
2 phía: phía server (server-side) và phía client (client-side).
GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG TRONG HỆ THỐNG
Mạch Arduino Uno là một trong những dòng mạch Arduino phổ biến nhất, đặc biệt dành cho những người mới bắt đầu tìm hiểu và lập trình với Arduino Hiện nay, dòng mạch này đã được phát triển đến thế hệ thứ 3, được biết đến với tên gọi Arduino Uno R3.
Arduino Uno R3 là một trong những dòng board mạch phổ biến và linh hoạt, lý tưởng cho người mới bắt đầu Mặc dù có nhiều loại Arduino khác như Mega, Nano và Micro, nhưng Arduino Uno vẫn là lựa chọn tối ưu cho các ứng dụng cơ bản.
Thông số kỹ thuật Board mạch Arduino Uno R3
Vi điều khiển: ATmega328P họ 8 bit.
Điện áp hoạt động: 5VDC (cấp qua cổng USB).
Điện áp đầu vào (Khuyên dùng): 7-12V, Điện áp đầu vào (Giới hạn): 6- 20V.
Chân Digital I/O: 14 (Với 6 chân PWM output).
Dòng sử dụng I/O Pin: 20mA.
Dòng ra tối đa(5V): 50mA.
Bộ nhớ Flash: 32 KB (ATmega328P) với 0.5KB dùng bởi bootloader.
Vi điều khiển Atmega328 tiêu chuẩn sử dụng trên Arduino uno r3 có:
Bộ nhớ Flash 32KB trên vi điều khiển cho phép lưu trữ các đoạn lệnh lập trình Thông thường, một phần nhỏ trong dung lượng này, khoảng vài KB, sẽ được sử dụng cho bootloader.
SRAM (Static Random Access Memory) có dung lượng 2KB, nơi lưu trữ giá trị của các biến được khai báo trong lập trình Số lượng biến khai báo càng nhiều thì càng cần nhiều bộ nhớ RAM Tuy nhiên, khi mất điện, dữ liệu trên SRAM sẽ bị mất.
1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): có thể đọc và ghi dữ liệu của mình vào đây.
2.2.1.3 Các cổng vào/ra Board Arduino Uno R3
Hình 2.9: In/Out Pin Arduino Uno R3.
Mạch Arduino UNO sở hữu 14 chân digital cho phép đọc và xuất tín hiệu với hai mức điện áp là 0V và 5V Mỗi chân có dòng vào/ra tối đa lên đến 40mA, đồng thời được trang bị các điện trở pull-up từ tích hợp trong vi điều khiển ATmega328, mặc dù các điện trở này không được kết nối mặc định.
Một số chân digital có các chức năng đặc biệt như sau:
Arduino Uno sử dụng hai chân Serial 0 (RX) và 1 (TX) để gửi và nhận dữ liệu TTL Serial, cho phép giao tiếp với các thiết bị khác một cách hiệu quả.
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 2 8 -1 tương ứng với 0V → 5V) bằng hàm analogWrite().
Chân giao tiếp SPI bao gồm 10 (SS), 11 (MOSI), 12 (MISO) và 13 (SCK), không chỉ đảm nhận các chức năng cơ bản mà còn hỗ trợ truyền dữ liệu qua giao thức SPI với các thiết bị khác.
Trên board Arduino UNO, có một đèn LED màu cam được ký hiệu bằng chữ L, kết nối với chân số 13 Khi bạn nhấn nút Reset, đèn LED này sẽ nhấp nháy để báo hiệu trạng thái hoạt động.
2.2.2 Module Wifi ESP8266 Node MCU a) Giới thiệu
NodeMCU V1.0 được xây dựng trên nền tảng Chip WiFi ESP8266EX, sử dụng Module ESP-12E, cho phép kết nối WiFi nhanh chóng và dễ dàng Board còn tích hợp IC CP2102, giúp kết nối với máy tính qua cổng Micro USB một cách thuận tiện Ngoài ra, NodeMCU V1.0 còn trang bị nút nhấn và đèn LED, hỗ trợ hiệu quả trong quá trình học tập và nghiên cứu.
Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị ngoại vi để tạo thành project, sản phẩm mẫu một cách nhanh chóng.
Hình 2.10: Module Wifi ESP8266 Node MCU. b) Thông số kỹ thuật
WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n
Điện áp vào: 5V thông qua cổng USB
Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One- wire, trừ chân D0)
Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)
Giao tiếp: Cable Micro USB
Hỗ trợ bảo mật: WPA/WPA2
Tích hợp giao thức TCP/IP
Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU - Lua
Hình 2.11: Pinout của Module ESP8266 Node MCU.
2.2.3 Module Cảm biến độ dẫn điện trong dung dịch a) Giới thiệu
Trong trồng cây thủy canh, việc điều chỉnh dinh dưỡng dựa vào giá trị độ dẫn điện (Ec) là rất quan trọng Mỗi loại cây cần một mức dinh dưỡng khác nhau, dẫn đến giá trị Ec cũng khác nhau Thông thường, ngưỡng độ dẫn điện Ec cho các loại cây dao động trong khoảng 0.6 - 5.0 ms/cm.
Nhóm tác giả đã chọn module cảm biến đo độ dẫn điện của công ty DF Robot Cảm biến này có khả năng đo độ dẫn điện Ec và có thể ngâm trong dung dịch liên tục trong 1 tháng Sau thời gian 1 tháng, các thông số đo được vẫn đảm bảo độ chính xác và ổn định.
22 cần phải vệ sinh Vì vậy nó phù hợp với thời gian thu hoạch của các loại cây rau thường dùng.
Chip U3B bao gồm mạch đảo ngược Giá trị điện áp đọc được
Công thức Vo = R10/R*Vi (mV) cho thấy mối quan hệ giữa điện trở R và độ dẫn của dung dịch nước Tỷ lệ R10/R được gọi là hệ số khuếch đại, và khi thay đổi giá trị của R, hệ số khuếch đại cũng sẽ biến đổi theo.
Vo thay đổi khi ở bên phải của mạch đảo ngược, có một mạch trị giá trị tuyệt đối với chức năng chuyển giao Vo = | Vi | Arduino lấy mẫu từ mạch trị giá trị tuyệt đối để tính toán độ dẫn.
Trong công thức tính điện trở R, ρ đại diện cho điện trở suất, L là chiều dài của phần tử điện trở, và A là mặt cắt ngang của điện trở Đối với điện cực dẫn điện, L được xác định là khoảng cách giữa hai tấm dẫn (mm), trong khi A là diện tích của tấm dẫn (mm²) Giá trị độ dẫn điện được xác định từ giá trị điện áp Vout (mV) đọc được.
Hằng số mạch Q được xác định bởi 1/R, trong đó R là điện trở của điện cực khi được nhúng vào dung dịch nước Chức năng truyền của mạch đo phụ thuộc vào giá trị điện trở này, ảnh hưởng đến độ chính xác và hiệu suất của quá trình đo lường.
THIẾT KẾ VÀ XÂY DỰNG HÊ THỐNG
YÊU CẦU VÀ SƠ ĐỒ KHỐI HỆ THỐNG
3.1.1 Yêu cầu của hệ thống
Hệ thống thủy canh bao gồm ba phần chính: thu thập dữ liệu, điều khiển và giao tiếp truyền nhận lên cơ sở dữ liệu Phần thu thập dữ liệu có bộ xử lý trung tâm kết nối với các cảm biến để giám sát độ dẫn điện, nồng độ pH và dinh dưỡng trong dung dịch thủy canh Dữ liệu từ cảm biến được gửi lên cơ sở dữ liệu để lưu trữ và xử lý Hệ thống điều khiển cũng có bộ xử lý trung tâm, giao tiếp qua mạng để nhận tín hiệu từ cơ sở dữ liệu và điều khiển các thiết bị như động cơ bơm, động cơ trộn và van điện từ Việc điều khiển được thực hiện theo thiết lập trên cơ sở dữ liệu, điều chỉnh phù hợp với từng loại rau và giai đoạn phát triển của chúng.
Công việc thiết lập cài đặt và giám sát thông số môi trường sẽ được thực hiện trên một Web server thông qua cơ sở dữ liệu Web server sẽ hiển thị các giá trị dinh dưỡng, pH gần nhất, giá trị trung bình và đưa ra cảnh báo khi có hiện tượng bất thường xảy ra, như giá trị vượt quá giới hạn cài đặt Việc điều khiển các thiết bị ngõ ra sẽ được thiết lập qua các chế độ trên Web server.
Chế độ Manual cho phép người giám sát tự tay điều khiển các thiết bị như máy bơm pH up, pH down, máy bơm dinh dưỡng, van nước và máy trộn Việc bật hoặc tắt các thiết bị này được thực hiện một cách thủ công thông qua lựa chọn ON/OFF trên Webserver.
Chế độ Auto cho phép người giám sát chọn từ danh sách các loại rau trồng, với mỗi loại rau được thiết lập các giá trị tối ưu cho từng giai đoạn sinh trưởng, bao gồm độ dẫn điện (Ec), độ dinh dưỡng (ppm) và nồng độ pH Các thiết bị đầu ra sẽ tự động điều chỉnh để duy trì môi trường dung dịch thủy canh trong các giới hạn đã được cài đặt, đảm bảo điều kiện phát triển tốt nhất cho rau trồng.
Các tín hiệu bất thường xảy ra trong hệ thống khi đang hoạt động ở cả 2 chế độ sẽ được cập nhật và cảnh báo trên hệ thống Web server.
3.1.2 Sơ đồ khối và chức năng mỗi khối
Sơ đồ khối tổng quát của hệ thống:
Hình 3.1: Sơ đồ khối tổng quát của toàn hệ thống
Sơ đồ khối của hệ thống bao gồm các khối chính:
Module thu thập dữ liệu
3.1.3 Chức năng các khối trong hệ thống
- Module thu thập dữ liệu:
Thu thập tín hiệu từ các cảm biến (độ dinh dẫn điện trong dung dịch, độ pH) rồi gửi đến WebServer.
Nhận tín hiệu tự khối thu thập dữ liệu và đưa vào cơ sở dữ liệu.
Hiển thị thông số kỹ thuật lên Web, lựa chọn đặt giới hạn để gửi lệnh điều khiển cho khối điều khiển.
Nhận nguồn DC để hoạt động.
Nhận tín hiệu từ WebServer đưa lệnh điều khiển đến khối điều khiển.
3.1.4 Sơ đồ chi tiết của khối điều khiển và khối thu thập dữ liệu
Sơ đồ của khối thu thập dữ liệu:
MODULE THU THẬP DỮ LIỆU
KHỐI GIAO TIẾP QUA MẠNG
KHỐI NGUỒN KHỐI XỬ LÝ TRUNG
Hình 3.2: Sơ đồ khối của module thu thập dữ liệu.
Trong module thu thập dữ liệu, các khối chức năng hoạt động như sau: Khối cảm biến thu thập và xử lý tín hiệu từ cảm biến, sau đó gửi tín hiệu đến khối xử lý trung tâm Khối xử lý trung tâm tiếp nhận và xử lý các tín hiệu từ cảm biến, rồi truyền tải thông tin lên web thông qua khối giao tiếp qua mạng Khối giao tiếp qua mạng đảm nhận việc nhận dữ liệu từ khối xử lý trung tâm và gửi lên web server Cuối cùng, khối nguồn cung cấp năng lượng cho khối xử lý trung tâm, khối cảm biến và khối giao tiếp qua mạng để đảm bảo hoạt động liên tục của toàn bộ hệ thống.
Sơ đồ của module điều khiển:
KHỐI XỬ LÝ TRUNG TÂM VÀ GIAO TIẾP QUA MẠNG
Hình 3.3: Sơ đồ khối của module điều khiển.
Chức năng các khối trong module điều khiển điều khiển:
+ Khối giao tiếp qua mạng: nhận dữ liệu từ server gửi về và gửi dữ liệu cho khối xử lý trung tâm.
+ Khối xử lý trung tâm: nhận dữ liệu và gửi các dữ liệu đó để điều khiển khối động lực và để hiển thị các thông số cảm biến.
Khối hiển thị nhận dữ liệu từ khối giao tiếp qua mạng, dữ liệu này được lấy từ web server Nó có nhiệm vụ hiển thị các giá trị đọc được từ cảm biến cũng như trạng thái bật tắt của thiết bị.
+ Khối nguồn: cấp nguồn 5VDC để duy trì hoạt động của các khối khác, đồng thời cấp nguồn 220VAC và 12VDC để điều khiển thiết bị.
+ Khối động lực: Nhận tín hiệu từ khối xử lý trung tâm để điều khiển các thiết bị ở ngõ ra gồm các động cơ bơm DC và AC.
3.1.5 Hoạt động của hệ thống
Hệ thống gồm 3 phần chính: Webserver, 1 hệ thống thu thập dữ liệu từ cảm biến và 1 hệ thống điều khiển.
Hệ thống thu thập dữ liệu tích hợp nhiều cảm biến đo lường như độ dẫn điện và pH, nhằm giám sát môi trường dung dịch Sau khi thu thập, các thông số sẽ được gửi đến bộ xử lý trung tâm để xử lý và trích xuất dữ liệu, giúp các thiết bị giao tiếp hiệu quả Hệ thống có thể sử dụng nhiều bộ thu thập dữ liệu tại các vị trí khác nhau, như Node sensor, và thông tin từ cảm biến sẽ được gửi đến WebServer để theo dõi và xử lý theo thời gian.
Sau khi nhận dữ liệu cảm biến về độ dẫn điện và pH từ hệ thống thu thập dữ liệu và lưu vào cơ sở dữ liệu MySQL, các số liệu này sẽ được thu thập và gửi lên theo khoảng thời gian nhất định Những thông tin này được truy xuất để hiển thị trên trang web giám sát, cho phép người dùng theo dõi các thông số như độ dẫn điện, độ dinh dưỡng và pH trong dung dịch trồng cùng với thời gian đọc dữ liệu Các số liệu sẽ được sắp xếp và trình bày dưới dạng bảng biểu hoặc biểu đồ, giúp tăng cường độ chính xác trong việc giám sát hệ thống Đồng thời, dữ liệu từ cảm biến sẽ được sử dụng để điều chỉnh giới hạn cài đặt cho từng loại cảm biến, từ đó so sánh với các giới hạn đã định trên Web server để phát hiện tín hiệu bất thường và cảnh báo người giám sát về tình trạng hệ thống Ứng dụng từ web server cũng cho phép cài đặt máy bơm theo giới hạn dinh dưỡng hoặc pH bằng cách gửi giá trị từ cơ sở dữ liệu xuống phần điều khiển, có thể cài đặt tự động hoặc điều chỉnh thủ công theo yêu cầu của người giám sát.
Web Server sẽ được sử dụng để hiển thị thông tin về các loại rau trong hệ thống thủy canh, giúp người giám sát dễ dàng lựa chọn và cài đặt giá trị giới hạn trồng trọt phù hợp cho từng loại rau.
Hệ thống điều khiển trung tâm nhận và xử lý tín hiệu từ web server để quản lý thiết bị như động cơ bơm và van Các thông số được hiển thị trên màn hình OLED, giúp người giám sát có thể điều khiển và theo dõi trực tiếp Hệ thống cho phép điều khiển bơm nước, pH và dinh dưỡng cho bể chứa dung dịch trồng thủy canh, với khả năng điều chỉnh chế độ hoạt động tự động hoặc bằng tay, phù hợp với từng loại rau.
Hệ thống trồng rau thủy canh sử dụng cảm biến để theo dõi độ dẫn điện, độ dinh dưỡng, nhiệt độ và pH của dung dịch Bằng cách so sánh các giá trị này với các giới hạn cài đặt cho từng loại rau, hệ thống tự động điều chỉnh bơm và van nhằm duy trì pH và độ dinh dưỡng trong phạm vi phù hợp trong từng giai đoạn phát triển của cây.
TÍNH TOÁN THIẾT KẾ HỆ THỐNG
Từ yêu cầu của hệ thống, tiến hành thiết kế, tính toán để xây dựng cho hệ thống thông qua thiết kế cho từng khối có trong hệ thống.
3.2.1 Khối thu thập dữ liệu:
Khối giao tiếp qua mạng:
Để hệ thống có thể kết nối hiệu quả, có thể sử dụng các chuẩn truyền không dây như Wifi, Bluetooth hoặc sóng RF Hiện nay, có nhiều module hỗ trợ giao tiếp giữa các thiết bị.
Các chip vi xử lý như ESP 8266, ESP32, cùng với các module Bluetooth HC-05, HC-06, RF, Lora, và Zigbee, hỗ trợ giao tiếp không dây giữa các thiết bị Ngoài ra, có thể sử dụng máy tính nhúng như Raspberry Pi3 hoặc Beagle Bone làm bộ xử lý trung tâm và server riêng, tuy nhiên giá thị trường của những thiết bị này thường khá cao.
Để đáp ứng yêu cầu của hệ thống, việc sử dụng chuẩn truyền Wifi cho giao tiếp và truyền nhận dữ liệu qua Server là rất quan trọng Các module Wifi 8266 được ưu tiên nhờ vào tốc độ truyền cao, chi phí hợp lý và tính thuận tiện trong thiết kế mạch PCB.
Sơ đồ nguyên lý khối giao tiếp qua mạng:
Hình 3.4: Sơ đồ nguyên lý khối giao tiếp qua mạng.
Kết nối khối giao tiếp qua mạng như sơ đồ gồm:
- Chân D2 (TX) của Arduino kết nối với chân D4 (RX) của ESP 8266 Node MCU.
- Các chân nguồn được kết nối với nguồn 3,3VDC và chung GND với chân GND của Arduino.
Tính toán và giải thích:
- Khối giao tiếp qua mạng chỉ dùng một module Wifi Node MCU ESP8266 dùng nguồn cung cấp 5VDC khi sử dụng cổng USB hoặc 3.3VDC qua chân Vin.
- Dòng tiêu thụ qua ESP: 70mA (Max 200 mA)
- Công suất cực đại qua ESP khi dùng nguồn cung cấp 3.3VDC dòng tiêu thụ cực đại 200 mA là: 0.66W
Hệ thống trồng thủy canh yêu cầu các yếu tố môi trường quan trọng như độ dẫn điện trong nước để xác định nồng độ dinh dưỡng và nồng độ pH Tất cả các yếu tố này cần được đánh giá dựa trên một nhiệt độ môi trường chuẩn để đảm bảo tính chính xác.
Sinh viên đã chọn cảm biến công nghiệp đo độ dẫn điện EC DFR0300 của DFRobot nhờ vào độ chính xác và độ bền cao Mặc dù giá thành tương đối cao, cảm biến này hỗ trợ tốt trong việc kiểm tra hoạt động và được tích hợp với cảm biến nhiệt độ DS 18B20 dạng một dây không thấm nước, giúp nâng cao độ chính xác khi đọc dữ liệu.
- Kết nối giữa Arduino với cảm biến độ dẫn điện EC qua chân Analog A0 của Arduino.
Hình 3.5: Sơ đồ nguyên lý khối xử lý trung tâm giao tiếp với cảm biến EC
Sau khi nghiên cứu và tìm hiểu về cảm biến độ dinh dưỡng EC, nhóm sinh viên đã khám phá sơ đồ nguyên lý hoạt động của cảm biến này Chi tiết về sơ đồ nguyên lý sẽ được trình bày trong phần phụ lục 2.
Kết nối Arduino với cảm biến nhiệt độ DS18B20 qua chân Digital A1, sử dụng điện trở 4,7K giữa chân nguồn và chân Data của cảm biến.
Hình 3.6: Sơ đồ nguyên lý khối xử lý trung tâm giao tiếp với cảm biến nhiệt độ
Để đo giá trị pH trong môi trường thủy canh, sinh viên lựa chọn module cảm biến pH của DFRobot, mặc dù giá thành cao nhưng đảm bảo độ chính xác và tính dễ sử dụng.
- Kết nối giữa Arduino với cảm biến nồng độ pH qua chân Analog A2 củaArduino.
Hình 3.7: Sơ đồ nguyên lý khối xử lý trung tâm giao tiếp với cảm biến độ pH
Nhóm sinh viên đã nghiên cứu về cảm biến nồng độ pH và tìm hiểu sơ đồ nguyên lý hoạt động bên trong của thiết bị này Chi tiết về sơ đồ nguyên lý được trình bày trong phần phụ lục 2.
Giám sát mực nước trong các bình dung dịch và bồn chứa dung dịch trồng thủy canh là rất quan trọng để điều khiển bơm bật tắt khi cần thiết Việc này giúp đảm bảo hệ thống thủy canh hoạt động hiệu quả và duy trì môi trường tối ưu cho cây trồng.
- Kết nối giữa Arduino với các cảm biến đo mực nước qua các chân
Hệ thống có thể sử dụng nhiều loại cảm biến để đo mực nước, bao gồm cảm biến áp suất và cảm biến mực nước có phao nổi tích hợp bộ chuyển đổi, tuy nhiên, giá thành của các cảm biến này thường khá cao Một lựa chọn khác là cảm biến siêu âm, được ứng dụng rộng rãi trong thực tế.
Nhóm đã chọn cảm biến đo mực nước Analog với điện áp tiêu thụ thấp và độ chính xác cao Cảm biến này có thể được mở rộng để đo mức nước trong các bể chứa lớn, cho phép theo dõi mức nước cao hơn một cách hiệu quả.
Hình 3.8: Sơ đồ nguyên lý khối xử lý trung tâm giao tiếp với cảm biến mực nước
Khối xử lý trung tâm bộ thu thập dữ liệu:
Để điều khiển và xử lý yêu cầu của hệ thống, nhiều dòng vi điều khiển như PIC, Arduino, ARM được sử dụng Đối với hệ thống thu thập dữ liệu từ nhiều cảm biến và các kênh đo ADC có độ phân giải cao, nhóm đã chọn Kit phát triển Arduino Uno R3 vì giá thành rẻ, độ bền cao và có nhiều thư viện hỗ trợ lập trình Arduino Uno R3 sẽ được sử dụng làm chip xử lý cho khối trung tâm của phần quan trắc, hỗ trợ nhiều chuẩn giao tiếp và kết nối với các thiết bị ngoại vi như module Wifi trong hệ thống.
Sơ đồ nguyên lý khối xử lý trung tâm bộ thu thập dữ liệu:
Hình 3.9: Sơ đồ nguyên lý khối xử lý trung tâm hệ thống thu thập dữ liệu
Kết nối khối xử lý trung tâm như sơ đồ gồm:
- Các chân Analog A0, A1, A3 được kết nối đến các cảm biến Analog: độ dẫn điện EC, cảm biến độ pH và các cảm biến mực nước.
- Chân Digital A2 của Arduino được kết nối với cảm biến nhiệt độ DS18B20.
- Các chân nguồn được kết nối với một nguồn 5VDC và GND từ bộ nguồn.
Tính toán và giải thích:
Khối xử lý trung tâm của bộ thu thập dữ liệu sử dụng Kit Arduino Uno R3 tiêu thụ khoảng 2.5 W khi hoạt động với nguồn DC 5V và dòng tiêu thụ 500 mA.
Sơ đồ nguyên lý của toàn bộ module thu thập dữ liệu:
Khối động lực của hệ thống sử dụng relay để điều khiển động cơ, với sự bảo vệ từ opto cách li cho khối xử lý trung tâm Hệ thống bao gồm 4 thiết bị ngõ ra.
DC và 3 thiết bị ngõ ra AC.
Sơ đồ nguyên lý khối động lực:
Hình 3.10: (a), (b) Sơ đồ nguyên lý khối động lực Kết nối khối động lực như sơ đồ gồm:
- Các chân ngõ vào IN_1, IN_2, IN_3, IN_4, IN_5, IN_6, IN_7 được kết nối với các chân ngõ ra digital D3, D4, D5, D6, D7, D8, D9 của ESP8266 Node MCU.
Tính toán và giải thích:
Giải thích hoạt động của mạch:
PHẦN MỀM SỬ DỤNG
3.3.1 Tóm tắt các công đoạn thực hiện
Cài đặt Driver và thư viện ESP8266
Cơ sở dữ liệu Database phpMyAdmin
Lưu đồ giải thuật điều khiển, giám sát trên Web
PHP Designer là một môi trường phát triển tích hợp mạnh mẽ cho PHP, hỗ trợ cả người mới bắt đầu và các lập trình viên chuyên nghiệp Công cụ này giúp nâng cao hiệu quả trong việc chỉnh sửa, phân tích và xuất bản ứng dụng cùng website được phát triển bằng PHP và các ngôn ngữ web khác.
Hình 3.14: Giao diện phần mềm PHP Designer 8.
Các tính năng của PHP Designer:
Nhanh chóng, mạnh mẽ và trực quan để sử dụng.
Dễ dàng quản lý các project.
HTML5, CSS3 và JavaScript biên tập viên.
Gỡ lỗi và hồ sơ PHP với Xdebug.
Xem trước trang web trên tình duyệt.
Hỗ trợ tất cả cac framework của PHP và JavaScrip.
Báo lỗi cú pháp khi lập trình với PHP.
Có giao diện thân thiện.
3.3.3 Cơ sở dữ liệu Database phpMyAdmin phpMyAdmin là phần mềm mã nguồn mở được viết bằng ngôn ngữ PHP nhằm giúp người dùng (thường là các nhà quản trị cơ sở dữ liệu hay database administrator) có thể quản lý cơ sở dữ liệu MySQL thông qua giao diện web thay vì sử dụng giao diện cửa sổ dòng lệnh (command line interface) Sử dụng phpMyadmin người dùng có thể thực hiện được nhiều tác vụ khác nhau như khi sử dụng cửa sổ dòng lệnh Các tác vụ này bao gồm việc tạo, cập nhật và xoá các cơ sở dữ liệu, các bảng, các trường, dữ liệu trên bảng, phân quyền và quản lý người dùng Được cung cấp trên tài khoản Webhost, sinh viên lựa chọn phần mềm phpMyAdmin để quản lý cơ sở dữ liệu sử dụng cho hệ thống.
Hình 3.15: Giao diện cơ sở dữ liệu phpMyadmin.
3.3.4 Các giai đoạn chăm sóc rau Xà lách
Dựa trên khảo sát từ lý thuyết đến thực tế, nhóm thực hiện trồng cây Xà lách đã xác định rằng độ dinh dưỡng cung cấp cho cây không vượt quá 1000 ppm, điều này phù hợp với cảm biến Ec trong các giai đoạn phát triển của cây.
Giai đoạn 1: gieo hạt – nảy mầm (1 tuần)
Hạt giống Xà lách được gieo vào mút xốp đã được cắt giữa để tạo không gian ươm hạt Lưu ý, hạt cần được ươm sâu khoảng 1mm so với bề mặt để đảm bảo sự phát triển tốt.
Để ươm hạt Xà lách, trước tiên hãy tưới nước lên bề mặt mút xốp cho đến khi nước thấm vào bên trong và ướt đều hạt Sau đó, đặt mút xốp vào khay giữ nước, che bằng khăn hoặc để ở nơi không có ánh nắng trực tiếp trong khoảng 2-3 giờ Tiếp tục tưới nước đều lên bề mặt mút xốp để giữ ẩm Sau hai ngày, các hạt sẽ nảy mầm Khi cây con đã mọc, hãy đưa ra nơi có ánh sáng nhưng tránh ánh nắng gắt Trong giai đoạn này, cần tưới nước nhẹ nhàng và đủ ẩm vì cây Xà lách rất yếu Sau một tuần, cây sẽ phát triển khoảng 2-3 cm và chuyển sang giai đoạn chăm sóc Lưu ý rằng nước ươm cây phải là nước sạch và trong giai đoạn này không cần bổ sung dinh dưỡng.
Hình 3.16: ( a), (b) Cây xà lách giai đoạn gieo hạt – nảy mầm.
Giai đoạn 2: chăm sóc cây con (2 -3 tuần)
Trong tuần đầu tiên, cây con cần được pha dinh dưỡng với tỷ lệ 2ml dinh dưỡng A và 2ml dinh dưỡng B hòa cùng một lít nước sạch Cây con nên được đặt trong vỉ mút xốp trên khay chứa dinh dưỡng và được đưa ra nơi có ánh nắng vừa phải, tránh ánh nắng gắt hoặc thời điểm buổi trưa để không làm héo cây.
56 dinh dưỡng trong khay tưới lên mút xốp để giữ ẩm cho cây con, tạo điều kiện cây con phát triển bộ rễ tốt nhất.
Trong tuần thứ hai, cây con đã phát triển rễ mạnh mẽ, cần bổ sung dinh dưỡng để cây phát triển tốt hơn Hãy pha 3ml dinh dưỡng A và 3ml dinh dưỡng B với một lít nước và cho vào khay chứa dinh dưỡng Tiếp tục chăm sóc cây cho đến khi cao khoảng 5-7cm, sau đó chuyển ra giàn trồng xà lách chuyên dụng.
Để chăm sóc cây xà lách hiệu quả, bạn nên tham khảo các yếu tố dinh dưỡng và pH theo hướng dẫn của hỗn hợp dinh dưỡng cho cây ăn lá Hydro LEAFY Giai đoạn 2 yêu cầu nồng độ dinh dưỡng từ 600–700 ppm và độ pH lý tưởng cho sự phát triển là từ 6 đến 7.
Hình 3.17: (a) Cây xà lách giai đoạn chăm sóc cây con và (b) hỗn hợp dinh dưỡng A, B Hydro Leafy
Giai đoạn 3: chăm sóc giàn trồng Xà lách (3-4 tuần)
Lưu ý: nên mang cây con ra giàn trồng vào buổi chiều mát để cây không bị mất sức.
Pha dinh dưỡng cho giàn trồng Xà lách
Để đảm bảo cây phát triển khỏe mạnh từ lúc này đến khi thu hoạch, cần cung cấp đầy đủ chất dinh dưỡng cho cây xà lách Pha dinh dưỡng A 3.5 ml và B 3.5 ml với một lít nước Giai đoạn này, cây cần đủ ánh sáng, vì vậy cần chọn vị trí giàn trồng có ánh sáng đầy đủ Vào buổi trưa, nên sử dụng lưới che để giảm bớt ánh sáng, tránh tình trạng cây bị quá nóng và mất nước Đồng thời, cần che đậy bồn dinh dưỡng cẩn thận để bảo vệ khỏi nắng nóng.
Từ giờ, bạn chỉ cần quan sát và kiểm tra cây Xà lách để bắt sâu nếu có Hãy chú ý đến việc máy bơm có hoạt động tốt hay không Khi cây hết dinh dưỡng, hãy bổ sung theo tỷ lệ đã hướng dẫn Sau khoảng 3-4 tuần trồng ngoài giàn, bạn có thể tiến hành thu hoạch.
Tùy thuộc vào điều kiện của người dùng, có thể chuẩn bị gieo hạt trước và khi thu hoạch, thay thế bằng cây con khác Điều này giúp đảm bảo mỗi tuần đều có sản phẩm để sử dụng.
Đối với cây xà lách, có thể tham khảo các yếu tố dinh dưỡng và độ pH từ hướng dẫn hỗn hợp dinh dưỡng cho cây ăn lá Hydro LEAFY Giai đoạn 3 yêu cầu nồng độ dinh dưỡng từ 800–1000 ppm và độ pH lý tưởng cho sự sinh trưởng là từ 6 đến 7.
Hình 3.18: (a), (b) Cây xà lách giai đoạn chăm sóc cây trưởng thành và đưa lên giàn trồng.
KẾT NỐI PHẦN CỨNG VÀ XÂY DỰNG CHƯƠNG TRÌNH
Thông qua việc thiết kế hệ thống, kết nối phần cứng được thể hiện dưới bảng 3.1 và 3.2 sau đây.
Bảng 3.1: Chân sử dụng và chức năng chân khối thu thập dữ liệu
Bảng 3.2: Chân sử dụng và chức năng chân khối điều khiển
Lưu đồ thuật toán của hệ thống:
Chương trình chính gửi dữ liệu lên ESP
KHAI BÁO NGÕ VÀO, NGÕ RA, KHAI BÁO BIẾN, CHÂN SỬ DỤNG ĐỌC, XỬ LÝ GIÁ TRỊ TỪ CẢM BIẾN
GỬI DỮ LIỆU QUA NODE
Hình 3.19: Chương trình chính gửi dữ liệu sang Node ESP
Chương trình con đọc giá trị cảm biến ĐỌC GIÁ TRỊ TỪ CẢM
KHAI BÁO BIẾN, KÊNH ANALOG SỬ DỤNG
THỜI GIAN CHỜ LẤY MẪU > 1S Đ ĐỌC VÀ XỬ LÝ GIÁ TRỊ TỪ CÁC CẢM BIẾN
Hình 3.20: Chương trình con gửi dữ liệu cảm biến
Khai báo ngõ vào vi điều khiển, biến sử dụng.
Chương trinh con đọc giá trị cảm biến.
Chương trình con gửi dữ liệu qua Node.
- Giải thích 1: Khai báo ngõ biến sử dụng.
Kiểm tra đủ thời gian lấy mẫu từ cảm biến đủ 1s, nếu đủ1s thì xử giá trị đọc từ cảm biến.
Chương trình con gửi dữ liệu qua Node MCU từ Arduino và cơ sở dữ liệu
KHAI BÁO NGÕ VÀO, NGÕ RA, KHAI BÁO BIẾN, CHÂN SỬ DỤNG
GỬI DỮ LIỆU QUA ESP
KHAI BÁO NGÕ VÀO, NGÕ RA, KHAI BÁO BIẾN, CHÂN SỬ DỤNG
KIỂM TRA CÓ DỮ LIỆU GỬI SANG ? Đ
S KIỂM TRA KẾT NỐI WIFI ? Đ
GỬI DỮ LIỆU LÊN CƠ SỞ DỮ LIỆU
Hình 3.21: Chương trình con gửi dữ liệu qua Node MCU và lên cơ sở dữ liệu
Khai báo ngõ vào vi điều khiển, biến sử dụng.
- Giải thích 2: Sau khi xử lý các giá trị cảm biến, kiểm tra chờ 1s, nếu đủ 1s gửi dữ liệu sang ESP.
Khai báo ngõ vào vi điều khiển, biến sử dụng.
Kiểm tra ESP có nhận được dữ liệu gửi sang từ Arduino.
Kiểm tra ESP có kết nối với cơ sở dữ liệu, nếu đã kết nối, tiến hành gửi dữ liệu.
Chương trình chính và chương trình con nhận dữ liệu từ cơ sở dữ liệu
KHAI BÁO NGÕ VÀO, NGÕ RA, KHAI BÁO BIẾN, CHÂN SỬ DỤNG
KIỂM TRA KẾT NỐI WIFI ? Đ
KIỂM TRA ĐỦ DỮ S LIỆU NHẬN ĐƯỢC ? Đ
NHẬN DỮ LIỆU TỪ CƠ SỞ
NHẬN DỮ LIỆU TỪ CƠ SỞ DŨ
Hình 3.22: Chương trình chính và chương trình con nhận dữ liệu từ cơ sở dữ liệu
Khai báo ngõ vào vi điều khiển, biến sử dụng.
Kiểm tra ESP có kết nối với cơ sở dữ liệu, nếu có kết nối, kiểm tra có đủ dữ liệu gửi xuống để ESP nhận dữ liệu.
Kiểm tra các mode hoạt động nhận từ cơ sở dữ liệu gồm có MANUAL, AUTO được lựa chọn từ cơ sở dữ liệu.
Chương trình con chế độ AUTO
TỰ ĐỘNG BƠM DUNG DỊCH
TỰ ĐỘNG BƠM HỒI LƯU
TỰ ĐỘNG BƠM PHUN SƯƠNG
Hình 3.23: Chương trình con chế độ AUTO
Chế độ AUTO sẽ tự động thực hiện các chương trình như bơm nước, bơm pH, bơm dung dịch, bơm hồi lưu và bơm phun sương một cách tuần tự.
Chương trình con tự động bơm nước
Kiểm tra mức nước hiện tại; nếu thấp hơn mức cài đặt tối thiểu, hãy bật van nước và máy trộn Ngược lại, nếu mức nước vượt quá mức cài đặt tối đa, cần tắt van nước và máy trộn.
Chương trình con tự động bơm PH
PH_Medium = (PH_Set_Max + PH_Set_Min) / 2
Kiểm tra ngưỡng dưới PH (PH < PH_Set_Min) Đ
BẬT MÁY BƠM PH_UP BẬT MÁY TRỘN
TẮT MÁY BƠM PH_UP TẮT MÁY TRỘN Đ
BẬT MÁY BƠM PH_DW BẬT MÁY TRỘN
TẮT MÁY BƠM PH_DW TẮT MÁY TRỘN
TẮT MÁY BƠM PH_UP TẮT MÁY BƠM PH_DW TẮT MÁY TRỘN
Lấy giá trị trung bình của giá trị PH cài đặt Max và PH cài đặt Min từ cơ sở dữ liệu.
Kiểm tra nếu pH hiện tại thấp hơn mức pH tối thiểu đã cài đặt, hãy kích hoạt máy bơm PH_UP và máy trộn Tiếp tục theo dõi, nếu pH đạt hoặc vượt mức pH trung bình, hãy tắt máy bơm PH_UP và máy trộn.
Nếu giá trị pH hiện tại vượt quá mức pH cài đặt tối đa, hãy kích hoạt bơm PH_DW và máy trộn Tiếp tục theo dõi cho đến khi pH hiện tại giảm xuống bằng hoặc thấp hơn giá trị pH trung bình, sau đó tắt bơm PH_DW và máy trộn.
Trường hợp PH nằm giữa hai giá trị cài đặt Max và Min thì không bật máy bơm và máy trộn.
Chương trình con tự động bơm dung dịch
Ec_Medium = (Ec_Set_Max +
BẬT MÁY BƠM DUNG DỊCH
TẮT MÁY BƠM DUNG DỊCH
BẬT MÁY BƠM NƯỚC BẬT MÁY TRỘN
TẮT MÁY BƠM NƯỚC TẮT MÁY TRỘN
TẮT MÁY BƠM DUNG DỊCH
A&B TẮT MÁY BƠM NƯỚC TẮT MÁY TRỘN
Lấy giá trị dẫn điện Ec của giá trị Ec cài đặt Max và Ec cài đặt Min từ cơ sở dữ liệu.
Nếu giá trị Ec hiện tại nhỏ hơn Ec cài đặt Min, hãy bật máy bơm dung dịch dinh dưỡng và máy trộn Tiếp tục theo dõi; nếu Ec đạt hoặc vượt qua Ec trung bình, tắt máy bơm dung dịch dinh dưỡng và máy trộn.
Nếu giá trị Ec hiện tại vượt quá Ec cài đặt tối đa, hãy bật van nước và máy trộn Tiếp tục theo dõi cho đến khi Ec hiện tại giảm xuống bằng hoặc thấp hơn giá trị Ec trung bình, sau đó tắt van nước và máy trộn.
Trường hợp Ec nằm giữa hai giá trị cài đặt Max và Min thì không bật máy bơm, van nước và máy trộn.
Chương trình con tự động bơm hồi lưu
TỰ ĐỘNG BƠM HỒI LƯU
Kiểm tra trạng thái bơm (PumpReturnOn == 1 ?)
S Time hiện tại - Time kết thúc > Time ON Đ
Time kết thúc = Time hiện tại
Time hiện tại - Time bắt đầu > Time OFF
Time bắt đầu = Time hiện tại
Kiểm tra trạng thái bơm hồi lưu: nếu trạng thái là 1, cần xem xét thời gian còn lại để máy bơm OFF (Time hiện tại – Time dừng); nếu thời gian này lớn hơn thời gian OFF đã thiết lập, bật máy bơm Ngược lại, nếu trạng thái bơm là 0, kiểm tra Time hiện tại để máy bơm ON (Time hiện tại – Time bật); nếu lớn hơn thời gian máy bơm ON đã thiết lập, tắt máy bơm.
Chương trình con tự động bơm phun sương
TỰ ĐỘNG BƠM PHUN SƯƠNG
Trạng thái bơm hiện tại = 0
Kiểm tra trạng thái bơm = 1?
Bật bơm phun sương Tắt bơm phun sương
Hình 3.24 trình bày các chương trình con tự động trong hệ thống tưới tiêu, bao gồm: (a) chương trình bơm nước tự động, (b) chương trình bơm pH tự động, (c) chương trình bơm dinh dưỡng tự động, (d) chương trình bơm hồi lưu tự động, và (e) chương trình bơm phun sương tự động.
Chương trình con chế độ MANUAL
TẮT BƠM TRỘN,TẮT BƠM PHUN SƯƠNG
TẮT BƠM DINH DƯỠNG, BƠM PH UP, BƠM PH DW
Chế độ MANUAL cho phép khai báo các biến cần thiết cho chương trình con Manual, đồng thời kiểm tra trạng thái của các thiết bị khi nhận giá trị trạng thái từ cơ sở dữ liệu.
S L ần lư ợt ki ể m tr a tr ạn g th ái cá c th iết bị,nế u ạng thái bằng 1 (ON) thì bật thiết bị,
BẬT BƠM PH UP bằ ng
0 (O FF ) thì tắt thi ết bị.
Trạng thái bơm dinh dưỡng S
S Trạng thái bơm trộn == ON Đ
BẬT BƠM TRỘN TẮT BƠM TRỘN
Trạng thái bơm hồi lưu
BẬT BƠM HỒI LƯU TẮT BƠM HỒI LƯU
Trạng thái bơm phun sương
BẬT BƠM PHUN SƯƠNG TẮT BƠM PHUN SƯƠNG