TỔNG QUAN
ĐẶT VẤN ĐỀ
Trong bối cảnh xã hội phát triển nhanh chóng, việc áp dụng khoa học kỹ thuật vào các lĩnh vực đời sống trở nên thiết yếu Cuộc cách mạng công nghiệp 4.0 đang dần được triển khai trong nhiều ngành sản xuất, đặc biệt là trong nông nghiệp Việc sử dụng các mô hình thông minh để giám sát và chăm sóc trong chăn nuôi và trồng trọt ngày càng phổ biến.
Ngành nông nghiệp Việt Nam chiếm tỷ trọng lớn nhưng công nghệ sản xuất lạc hậu, dẫn đến quy mô, chất lượng và sản lượng thấp hơn so với các nước nông nghiệp tiên tiến Mặc dù có lợi thế về thời gian nắng trung bình cao, nguồn năng lượng sạch từ mặt trời vẫn chưa được khai thác triệt để Nguồn năng lượng này có tiềm năng đóng góp cho nhiều lĩnh vực, đặc biệt là ngành trồng trọt Hiện tại, mô hình trồng hoa lan mang lại hiệu quả kinh tế cao, nhưng các sản phẩm trên thị trường chủ yếu nhập khẩu và có giá thành cao.
Dựa trên nhu cầu thực tiễn trong việc áp dụng các mô hình thông minh vào nông nghiệp và sử dụng năng lượng mặt trời với chi phí hợp lý, nhóm nghiên cứu đã quyết định thực hiện đề tài “Thiết kế và thi công mô hình giám sát trồng hoa lan sử dụng pin năng lượng mặt trời”.
MỤC TIÊU
Thiết kế và thi công được hệ thống vườn lan sử dụng pin năng lượng mặt trời, giám sát và điều khiển thông qua hệ thống IOTs
Nghiên cứu và tìm hiểu về Arduino cùng các cảm biến như cảm biến độ ẩm đất, cảm biến nhiệt độ và độ ẩm không khí, cảm biến ánh sáng, cảm biến mưa, và module thu phát WiFi Tìm hiểu cách kết nối các thiết bị điện này để hoàn thiện một mô hình tự động hóa hiệu quả.
Nghiên cứu và thiết kế hệ thống đo nhiệt độ và độ ẩm của đất cũng như không khí trong vườn lan, hiển thị thông tin trên màn hình LCD và truyền tải dữ liệu lên internet.
NỘI DUNG NGHIÊN CỨU
Khám phá cấu tạo phần cứng và nguyên lý hoạt động của các module Arduino, NODEMCU ESP8266, module L298, cùng với các thiết bị như động cơ bước, cảm biến DHT11, cảm biến ánh sáng, cảm biến mưa và cảm biến độ ẩm đất Ngoài ra, tìm hiểu về nguồn pin năng lượng mặt trời để ứng dụng hiệu quả trong các dự án điện tử.
Nội dung 2: Giao tiếp Module ESP 8266 với Arduino Mega 2560
Nội dung 3: Điều khiển các thiết bị theo cảm biến và thời gian thực
Nội dung 4: Hiển thị thông tin trên ứng dụng điện thoại
Nội dung 5: Thiết kế, lập trình và điều khiển thiết bị qua ứng dụng điện thoại
Nội dung 6: Thiết kế mô hình sản phẩm
Nội dung 7: Đánh giá kết quả thực hiện.
GIỚI HẠN
Thiết kế mô hình có kích cỡ là: 60 (cm) x 40 (cm) x 50 (cm)
Sử dụng nguồn pin năng lượng mặt trời nạp vào bình ắc quy 12V 5A
Cảm biến nhiệt độ, độ ẩm có sai số 2A cho mỗi motor) Điện áp của tín hiệu điều khiển +5 V ~ +7 V
Dòng của tín hiệu điều khiển 0 ~ 36mA Công suất hao phí 20W (khi nhiệt độ T = 75 độ C)
Nhiệt độ cho phép -25 đến +130 độ C
Bảng 2.7 Thông số kỹ thuật của Module L298
Sơ đồ chân và chức năng của các chân của Module L298
GND: chân âm hay nối đất
Output A, Output B: chân kết nối với động cơ
Chân A Enable cho phép động cơ hoạt động và có thể được sử dụng để điều khiển tốc độ động cơ thông qua điều chế độ rộng xung PWM, từ đó điều chỉnh ngõ ra Output một cách hiệu quả.
A, B Enable cho ngõ ra Output B
Logic Input: gồm các chân IN1, IN2, IN3, IN4 cặp IN1 và IN2 dùng để điều khiển Output A, tương tự cho cặp IN3, IN4 cho Output B
Hình 2.11 Sơ đồ chân Module L298
Bốn chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10,
12 của IC L298 Đây là các chân nhận tín hiệu điều khiển
Bốn chân OUTUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT) được nối với các chân 2, 3, 13, 14 của IC L298
Hai chân ENA và ENB trong IC L298 được sử dụng để điều khiển mạch cầu H Khi ở mức logic “1” (kết nối với nguồn 5V), mạch cầu H sẽ hoạt động, còn khi ở mức logic “0”, mạch cầu H sẽ không hoạt động.
Khi ENA = 0: Động cơ không quay với mọi đầu vào Khi ENA = 1:
+ INT1 = 1; INT2 = 0: Động cơ quay thuận
+ INT1 = 0; INT2 = 1: Động cơ quay nghịch
+ INT1 = INT2: Động cơ dừng ngay tức thì.
Tổng quan về module giảm áp LM2596
Mạch giảm áp DC LM2596 có khả năng hoạt động với điện áp đầu vào từ 4.5 đến 50VDC và dòng tối đa 3A Người dùng chỉ cần kết nối nguồn vào ở 2 chân input+ và input-, sau đó nhận nguồn ra từ 2 chân output+ và output- Đặc biệt, điện áp đầu ra có thể được điều chỉnh dễ dàng thông qua biến trở tinh chỉnh.
Hình 2.12 Sơ đồ nguyên lý module LM2596
Thông số Giá trị - Cấu hình Điện áp đầu vào 4.5 → 50V Điện áp đầu ra 3 → 30V
Dòng điện ngõ ra max 3A
Bảng 2.8 Thông số kỹ thuật Module LM2596
Khi cấp điện vào chân DC Input, dòng điện đi qua các tụ lọc nhiễu trước khi vào IC LM2596 IC này điều chỉnh điện áp đầu ra thông qua biến trở tại chân Feedback, tạo ra điện áp tương ứng tùy thuộc vào giá trị của biến trở và cung cấp điện áp ra chân Output.
Tổng quan về LCD 20x4
Màn hình LCD 20x4 là loại màn hình tinh thể lỏng nhỏ gọn, chuyên dùng để hiển thị chữ và số trong bảng mã ASCII Với khả năng hiển thị 4 dòng, mỗi dòng có thể chứa nhiều thông tin, màn hình này thường được sử dụng trong các ứng dụng điện tử và thiết bị hiển thị thông tin.
20 ký tự, màn hình có độ bền cao, rất phổ biến, dễ sử dụng thích hợp cho những người mới học và làm dự án
Bảng 2.9 Thông số hoạt động của LCD 20x4
Thông số Giá trị - Cấu hình Điện áp hoạt động 5V
Màu nền và màu chữ Chữ trắng, nền xanh dương
Khoảng cách giửa hai chân 0.1 inch
Nhiệt độ hoạt động -20 đến +70°C
Hiển thị 20 ký tự x 4 dòng
Hình 2.13 Sơ đồ nguyên lý LCD 20x4
Chức năng của một số chân:
- Chân VDD: cấp nguồn cho LCD
- Chân RS: Chọn thanh ghi
- Chân DB0 – DB7: các chân truyền dữ liệu.
TÍNH TOÁN VÀ THIẾT KẾ
Giới thiệu tổng quan về đề tài
Đề tài này tập trung vào việc thiết kế hệ thống giám sát nhiệt độ, độ ẩm, cường độ sáng và gió Hệ thống sẽ gửi tin nhắn đến vi xử lý để thực hiện các lệnh, đồng thời truyền dữ liệu qua tin nhắn SMS đến điện thoại và hiển thị trên màn hình LCD Chương này sẽ tính toán thiết kế các khối cho hệ thống, lựa chọn linh kiện và thiết bị phù hợp dựa trên yêu cầu của đề tài.
Thiết kế sơ đồ khối
3.2.2 Chức năng của từng khối
Chức năng của các khối:
- Khối nguồn: Sử dụng năng lượng mặt trời, chức năng cấp nguồn cho toàn bộ hệ thống để hoạt động
Cảm biến DHT11 được sử dụng để đo nhiệt độ và độ ẩm của môi trường xung quanh cây trồng, trong khi cảm biến độ ẩm giúp theo dõi độ ẩm trong đất trồng Bên cạnh đó, cảm biến ánh sáng sẽ đo cường độ ánh sáng mặt trời, giúp tối ưu hóa điều kiện phát triển cho cây trồng.
- Khối thời gian thực: Cung cấp thời gian thực tế cho hệ thống
Khối nút nhấn bao gồm năm nút, trong đó có một nút MODE để chọn giữa chế độ điều khiển bằng tay hoặc tự động Khi ở chế độ điều khiển bằng tay, bốn nút còn lại sẽ hoạt động, bao gồm nút bật máy bơm nước, nút bật bơm phun sương, nút điều khiển mái che, và nút bật đèn.
Khối xử lý trung tâm đóng vai trò quan trọng trong hệ thống, nhận tín hiệu từ các cảm biến, nút nhấn và khối thời gian thực Nó xử lý thông tin để điều khiển các thiết bị như máy bơm tưới nước, hệ thống phun sương, kéo mái che, bật đèn và hiển thị thông tin lên màn hình LCD Đồng thời, khối này còn truyền dữ liệu nhận được lên web thông qua module NodeMCU ESP8266, giúp người dùng dễ dàng theo dõi và quản lý hệ thống từ xa.
- Khối ESP8266: Dùng để kết nối với wifi và đưa dữ liệu đọc được từ khối xử lý trung tâm lên web
- Khối hiển thị: Hiển thị các thông số thời gian hiện tại, nhiệt độ, độ ẩm không khí, độ ẩm đất, chế độ hoạt động, cường độ ánh sáng
Khối thực thi sử dụng module L298 để điều khiển các thành phần trong hệ thống, bao gồm động cơ bước cho mái che, hai bơm nước 12VDC và đèn 5V DC.
Tính toán và thiết kế mạch
3.3.1 Khối xử lý trung tâm
Sau khi nghiên cứu về các thiết bị điều khiển cho hệ thống xử lý trung tâm và nhận được sự tư vấn từ giáo viên hướng dẫn, nhóm thực hiện đã quyết định chọn module Arduino Mega 2560 làm bộ xử lý trung tâm cho đề tài Module này có khả năng tích hợp nhiều ngoại vi nhờ vào các chân I/O cần thiết cho dự án.
Sử dụng các cảm biến để đo và gửi giá trị về vi điều khiển để thực hiện việc giám sát và điều khiển hệ thống
Hình 3.2 Sơ đồ nguyên lý khối cảm biến
Cảm biến đất và cảm biến ánh sáng được kết nối với chân A0 và A1 của bộ vi xử lý trung tâm, trong khi module cảm biến mưa nối với chân 17 và cảm biến nhiệt độ - độ ẩm nối với chân 18 Các chân VCC và GND còn lại được kết nối theo sơ đồ đã cung cấp.
Khi hệ thống hoạt động, các giá trị như nhiệt độ, độ ẩm, lượng mưa và cường độ sáng sẽ được khối cảm biến đo đạc Sau đó, các thông số này sẽ được tính toán và truyền về bộ xử lý trung tâm để thực hiện các công việc tiếp theo.
Hệ thống được điều khiển thông qua 5 nút nhấn chính, bao gồm nút MODE, nút điều khiển mái che, nút điều khiển bơm nước, nút điều khiển bơm phun sương và nút điều khiển đèn.
Hình 3.3 Sơ đồ nguyên lý khối nút nhấn
Các nút nhấn trong hệ thống được kết nối với vi điều khiển như sau: Nút chọn chế độ điều khiển (bằng tay hoặc tự động) nối với chân số 41, nút điều khiển mái che nối với chân số 43, nút điều khiển máy bơm nước nối với chân số 45, và hai nút còn lại dùng để điều khiển bơm phun sương và đèn nối với chân số 47 và chân số 49.
49 Tất cả các nút nhấn được nối với vi điều khiển thông qua một trở thanh có giá trị 10 kΩ
Nút nhấn MODE cho phép chọn chế độ hoạt động giữa điều khiển tay và tự động Nút điều khiển mái ra giúp kéo mái che ra khi nhấn, trong khi nút điều khiển mái vào thực hiện việc kéo mái che vào Nút điều khiển bơm nước kích hoạt bơm đến khi độ ẩm đất đạt yêu cầu, và nhấn lần nữa để dừng Nút điều khiển bơm phun sương bật bơm phun sương khi nhấn, còn nút điều khiển đèn thực hiện việc bật tắt đèn.
3.3.4 Khối ESP8266 Để thực hiện việc giám sát và điều khiển hệ thống trực tuyến 24/24 ta sử dụng Module NodeMCU ESP8266 để nhận và gửi dữ liệu từ khối xử lý trung tâm lên nơi lưu trữ dữ liệu từ đó thực hiện việc giám sát hoặc điều khiển thông qua web hoặc app trên điện thoại
Hình 3.4 Sơ đồ nguyên lý khối ESP 8266
Hai chân Tx và Rx của NodeMCU ESP8266 được kết nối với hai chân 14 và 15 (Tx3 và Rx3) để truyền nhận dữ liệu
Khi hệ thống hoạt động, các thông số từ cảm biến sẽ được truyền đến vi điều khiển trung tâm (Arduino Mega 2560) Để kiểm soát hệ thống trực tuyến, chúng ta sử dụng module NodeMCU ESP8266 để gửi dữ liệu lên web nhằm giám sát Đồng thời, chúng ta xây dựng một hệ thống điều khiển trực tuyến để gửi lệnh thực thi về vi điều khiển trung tâm.
Khối thực thi bao gồm 2 module L298 điều khiển hoạt động của các thiết bị dựa theo các thông số đo được từ cảm biến
Hình 3.5 Sơ đồ nguyên lý khối thực thi
Để điều khiển các thiết bị, ta sử dụng hai module L298N Module L298N đầu tiên kết nối bốn chân IN2 và IN3 với chân 5 và 6 để điều khiển bơm nước và bơm phun sương Trong khi đó, module L298N thứ hai kết nối hai chân IN2 và IN3 với chân 8 và 9 nhằm điều khiển đèn và động cơ kéo mái che.
Khi các thông số đo đạt ngưỡng cài đặt hoặc nhấn nút điều khiển, chân OUTx của module L298N sẽ chuyển trạng thái lên mức HIGH để bật thiết bị.
3.3.6 Khối thời gian thực Cập nhật thời gian chính xác cho hệ thống để cài đặt một số chức năng điều khiển theo thời gian
Hình 3.6 Sơ đồ nguyên lý khối thời gian thực DS1307
Hai chân SCL và SDA được kết nối với chân 20 và 21 của vi điều khiển
Thời gian sẽ được cập nhật tự động và hiển thị lên màn hình LCD
3.3.7 Khối hiển thị Để quan sát trực tiếp được các giá trị từ các cảm biến của hệ thống, ta sử dụng màn hình LCD 20x4 để hiển thị như hình 3.7
Để hiển thị thông số và giá trị, chúng ta sử dụng LCD 20x4 và kết nối bốn chân D4, D5, D6, D7 của LCD với chân 4, 5, 6, 7 của vi điều khiển theo chế độ 4 bit Ngoài ra, cần có một biến trở 10K để điều chỉnh độ tương phản của màn hình.
Trong quá trình hoạt động, các giá trị thông số đo được của môi trường cùng với trạng thái hoạt động của các thiết bị sẽ được hiển thị rõ ràng trên màn hình.
Hình 3.7 Sơ đồ nguyên lý khối hiển thị
Chúng tôi chọn sử dụng pin năng lượng mặt trời để đảm bảo hệ thống hoạt động độc lập và không phụ thuộc vào nguồn điện lưới Hệ thống cần có tính di động và linh hoạt trong nhu cầu sử dụng, vì vậy nguồn điện cung cấp phải đầy đủ và liên tục Pin năng lượng mặt trời đáp ứng những yêu cầu này, do đó chúng tôi quyết định lựa chọn nó làm nguồn năng lượng chính cho hệ thống.
Lí do chọn nguồn ắc quy
Nhóm chọn sử dụng bình ắc quy loại 12V - 5Ah vì loại ắc quy có thể sạc và sử dụng được lâu hơn so với các loại pin thông thường
Nguyên lý hoạt động khối nguồn
Hình 3.8 Sơ đồ kết nối hệ thống pin năng lượng mặt trời
Pin năng lượng mặt trời sản xuất điện áp từ 17V đến 21V, tùy thuộc vào điều kiện ánh sáng trong ngày Nguồn điện này được chuyển qua mạch sạc để sạc trực tiếp vào bình ắc quy Ắc quy sẽ bắt đầu được sạc khi điện áp pin giảm xuống dưới 9.6V và sẽ được sạc đầy khi điện áp đạt đủ 12V.
Tính toán thời gian sử dụng pin
Thống kê dòng tiêu thụ các module:
Module nhiệt độ, độ ẩm DHT11: 2.5 mA
Động cơ giảm tốc 6V: 380mA Tính tổng dòng tiêu thụ: 1015 mA = 1.015 A
Tính lượng điện năng tiêu thụ: P = U.I (3.1)
Dung lượng sử dụng của ắc quy: 12 x 5 = 60 Wh Thời gian sử dụng ắc quy: 60 / 19.095 = 3.14 giờ
Tính toán thời gian sạc pin
THI CÔNG HỆ THỐNG
Giới thiệu
Sau quá trình tính toán và lựa chọn linh kiện, nhóm tiến hành thi công, lắp ráp và vận hành thử mạch.
Thi công hệ thống
Bảng 4.1 Danh sách các linh kiện 4.2.1.2 Sơ đồ thi công mạch in PCB
Hình 4.1 Sơ đồ mạch in PCB
4.2.2 Lắp ráp và kiểm tra
Quy trình lắp ráp – kiểm tra mạch :
Bước 1: Chuẩn bị board đồng có kích thước 150mm x 150mm màu trắng đã được in mạch in PCB lên trên
Bước 2: Dựa theo vị trí các linh kiện đã được in trên mạch, tiến hành khoan lỗ để gắn các linh kiện
Bước 3: Lần lượt gắn board Arduino, module Node MCU ESP8266 và các chân nối từ board để nối các cảm biến và các linh kiện khác của mạch
Bước 4: Hàn cố định các chân linh kiện
Bước 5: Kết nối dây dẫn đầu ghim từ board mạch đến các module cảm biến, đảm bảo áp suất ở ngõ vào và ngõ ra được gắn chặt với các module và cảm biến.
Bước 7: Cấp nguồn 3.3V cho module wifi ESP 8266
Bước 8: Cuối cùng nạp chương trình và test chương trình có đạt như yêu cầu ban đầu không 4.3 Đóng gói và thi công mô hình
Mô hình bằng mica và khung sắt kết nối bằng các linh kiện cơ khí
Mô hình có kích cơ 60 x 40 x 60 cm
Ống tưới sử dụng ống loại có đường kính trong 8mm để dẫn nước tưới
Dùng một tủ điện để chứa mạch điều khiển và các linh kiện khác
Một số hình ảnh thực tế của mô hình như sau:
Hình 4.2 Mặt trước của mô hình
Tủ điều khiển được lắp đặt ở phía trước của mô hình để thuận tiện cho việc điều khiển, trong khi tấm pin mặt trời được đặt trên cùng để sạc nguồn Mô hình được chia thành hai phần: một bên chứa nguồn cho các động cơ và tủ điều khiển, và bên còn lại dành cho các chậu lan.
Hình 4.3 Mặt trên của mô hình
Tấm pin mặt trời được gắn ở một phía của mô hình, phía còn lại được gắn mái che lên phía trên
Hình 4.4 Mặt bên hông phần đựng bộ sạc, nguồn, bình chứa nước và tủ điều khiển của mô hình
Mạch sạc được lắp đặt trên thanh sắt dưới tấm pin mặt trời, có nhiệm vụ sạc điện cho ắc quy bên dưới Trên cùng, hai động cơ phun sương và bơm nước được gắn, với ống dẫn nước từ bình chứa ở phía dưới.
Hình 4.5 Mặt bên hông chứa chậu lan để theo dõi và giám sát quá trình trồng
Khu vực này được thiết kế để đặt các chậu lan, phục vụ cho việc giám sát và chăm sóc cây Một bên có ống dẫn nước với đầu phun sương giúp phun sương cho cây, trong khi ống còn lại được sử dụng để tưới nước Để đảm bảo ánh sáng cho cây, một bóng đèn được lắp đặt ở phía đối diện với vị trí phun sương.
Hệ thống có các chức năng như sau:
Hệ thống giám sát trồng lan tự động điều chỉnh nhiệt độ không khí, độ ẩm không khí và độ ẩm đất theo chỉ số sinh trưởng của cây lan Các giá trị cảm biến sẽ được gửi đến ứng dụng trên điện thoại để theo dõi quá trình trồng lan Ngoài ra, chế độ tay cho phép người chăm sóc trực tiếp điều khiển tưới lan, phun sương, và điều chỉnh đèn hoặc mái che khi cần thiết.
Hệ thống mở rộng bao gồm:
Hệ thống điều khiển thiết bị từ xa thông qua ứng dụng Blynk trên điện thoại
Hệ thống đo nhiệt độ và độ ẩm sử dụng cảm biến, hiển thị dữ liệu trực tiếp trên màn hình LCD và ứng dụng điều khiển Điều này cho phép người dùng giám sát hệ thống từ xa qua Internet, mang lại sự tiện lợi và linh hoạt trong việc quản lý môi trường.
Khi cấp điện cho hệ thống, Arduino, module wifi NodeMCU ESP8266, cảm biến nhiệt độ độ ẩm DHT11 và LCD sẽ được khởi động Sau khi khởi động, giá trị cảm biến sẽ được hiển thị trên LCD và hệ thống sẽ tự động chạy ở chế độ Auto Để chuyển sang chế độ Manual, người dùng chỉ cần nhấn phím Manual, sau đó có thể điều khiển trực tiếp các chức năng như Bơm, Hơi sương, mái vào, mái ra và đèn bằng cách nhấn các phím tương ứng.
Hình 4.6 Lưu đồ giải thuật của chương trình điều khiển chính
Chương trình bắt đầu bằng việc khởi tạo phần cứng và các biến Nếu chưa có kết nối, chương trình sẽ tạm dừng cho đến khi kết nối được thiết lập Sau đó, vòng lặp chương trình sẽ được thực hiện, trong đó chương trình kiểm tra nút nhấn chuyển trạng thái với mặc định ban đầu là chế độ chỉnh tay Tiếp theo, chương trình nhận dữ liệu từ ứng dụng và đọc giá trị cảm biến với biến chạy từ 0 đến 100, nhằm đảm bảo mạch xử lý và truyền dữ liệu lên ứng dụng một cách ổn định Cuối cùng, chương trình kiểm tra các nút nhấn còn lại, cũng như các trạng thái của đèn, máy bơm, máy phun sương và cảm biến mưa để thực hiện việc điều khiển hợp lý.
Chương trình bắt đầu bằng việc khởi tạo phần cứng và các biến cần thiết Nếu không có kết nối, chương trình sẽ tạm dừng cho đến khi có kết nối Sau đó, vòng lặp chương trình sẽ được thực hiện, chạy ứng dụng Blynk Khi có dữ liệu, chương trình sẽ tiến hành đọc dữ liệu đó Nếu dữ liệu nhận được bằng ".", chương trình sẽ kiểm tra các thông số khác như nhiệt độ, độ ẩm không khí, độ ẩm đất, ánh sáng, cũng như trạng thái của nút nhấn và cảm biến mưa.
Chương trình sẽ tính toán các thông số chính xác từ các cảm biến (trừ cảm biến mưa) để theo dõi dữ liệu trên ứng dụng Sau khi hoàn thành, chương trình sẽ xóa dữ liệu ban đầu và tiếp tục nhận dữ liệu mới.
Lưu đồ giải thuật gửi dữ liệu lên ứng dụng giám sát và điều khiển bắt đầu bằng việc kiểm tra nút nhấn Khi nút được nhấn, chương trình sẽ chờ 20ms và kiểm tra lại, sau đó tăng biến tt lên 1 Nếu tt lớn hơn 1, biến này sẽ được đặt về 0 Chương trình sẽ gửi các ký tự "n","1","." qua cổng serial3 khi tt bằng 1, và gửi "n","5","." khi tt bằng 0 Đối với lưu đồ chương trình nhận dữ liệu, khi có dữ liệu nhận được, chương trình sẽ đọc và gán dữ liệu từ serial3 cho biến data, sau đó ghi dữ liệu vào serial và thực thi thay đổi trạng thái của biến theo các giá trị data đã được định sẵn.
Hình 4.9 Lưu đồ giải thuật chương trình nhận dữ liệu e) Lưu đồ giải thuật chương trình kiểm tra tự động
Hình 4.10 mô tả lưu đồ giải thuật cho chương trình kiểm tra tự động, trong đó chương trình thực hiện so sánh biến trạng thái mưa Động cơ sẽ ngừng quay theo hướng thuận hoặc ngược khi gặp công tắc hành trình trái hoặc phải Hình 4.11 trình bày lưu đồ giải thuật cho chương trình chỉnh tay, cho thấy chương trình hoạt động khi người dùng tác động vào nút nhấn thực tế hoặc từ ứng dụng.
Hình 4.11 Lưu đồ giải thuật chương trình kiểm tra chỉnh tay g) Lưu đồ giải thuật chương trình kiểm tra nút nhấn như hình 4.12
Lưu đồ giải thích cách chương trình hoạt động khi người dùng nhấn nút Khi nút được nhấn, các biến trạng thái sẽ thay đổi, từ đó điều khiển hoạt động của các thiết bị như đèn, máy bơm và máy phun sương.
Hình 4.12 Lưu đồ giải thuật chương trình kiểm tra nút nhấn h) Lưu đồ giải thuật chương trình kiểm tra đèn
Đèn sẽ tự động bật lúc 20 giờ và duy trì cho đến 9 giờ tối Từ 9 giờ tối đến 6 giờ sáng hôm sau, đèn sẽ không tự động bật Chương trình sẽ gửi các ký tự "n", "2", "." hoặc "n", "3", "." để điều khiển việc bật và tắt đèn.
Hình 4.13 Lưu đồ giải thuật chương trình kiểm tra đèn i) Lưu đồ giải thuật chương trình kiểm tra máy bơm
Hình 4.14 Lưu đồ giải thuật chương trình kiểm tra máy bơm
Giải thích lưu đồ: Chương trình kiểm tra giá trị đất đã được cái đặt ở mức giới hạn là
Khi máy bơm được bật ở thời điểm 50, chương trình sẽ gửi các ký tự lần lượt là "n", "4", ".", "n", "6", "." qua serial3 để điều khiển việc bật và tắt máy bơm Lưu đồ giải thuật của chương trình sẽ kiểm tra quá trình phun sương.
Hình 4.15 Lưu đồ giải thuật chương trình kiểm tra phun sương
Lập trình hệ thống
Hệ thống có các chức năng như sau:
Hệ thống giám sát trồng lan tự động được thiết kế để theo dõi nhiệt độ không khí, độ ẩm không khí và độ ẩm đất, nhằm đảm bảo các chỉ số sinh trưởng của cây lan được tối ưu Các giá trị cảm biến sẽ được gửi đến ứng dụng trên điện thoại, giúp người dùng dễ dàng giám sát quá trình trồng lan Ngoài ra, chế độ tay cho phép người chăm sóc vườn lan trực tiếp điều khiển tưới nước, phun sương, cũng như điều chỉnh đèn hoặc mái che khi cần thiết.
Hệ thống mở rộng bao gồm:
Hệ thống điều khiển thiết bị từ xa thông qua ứng dụng Blynk trên điện thoại
Hệ thống đo đạc nhiệt độ và độ ẩm sử dụng cảm biến, hiển thị dữ liệu trực tiếp trên màn hình LCD và qua ứng dụng điều khiển Điều này cho phép người dùng giám sát hệ thống từ xa thông qua Internet một cách thuận tiện.
Khi hệ thống được cấp điện, Arduino, module wifi NodeMCU ESP8266, cảm biến nhiệt độ độ ẩm DHT11 và LCD sẽ khởi động Sau khi khởi động, giá trị cảm biến sẽ hiển thị trên LCD và hệ thống sẽ hoạt động ở chế độ tự động (Auto) Để chuyển sang chế độ điều khiển tay (Manual), người dùng chỉ cần nhấn phím Manual, sau đó có thể điều khiển trực tiếp các chức năng như Bơm, Hơi sương, mái vào, mái ra và đèn Lưu đồ giải thuật của chương trình điều khiển chính của Arduino Mega sẽ hỗ trợ quá trình này.
Hình 4.6 Lưu đồ giải thuật của chương trình điều khiển chính
Chương trình bắt đầu bằng việc khởi tạo phần cứng và các biến Nếu không có kết nối, chương trình sẽ tạm dừng cho đến khi có kết nối Sau đó, vòng lặp chương trình được thực hiện, trong đó chương trình kiểm tra nút nhấn chuyển trạng thái, với trạng thái mặc định là chỉnh tay Tiếp theo, chương trình nhận dữ liệu từ ứng dụng và đọc giá trị cảm biến, với biến chạy từ 0 đến 100, nhằm đảm bảo mạch xử lý và truyền dữ liệu lên ứng dụng một cách ổn định Cuối cùng, chương trình kiểm tra các nút nhấn còn lại và các trạng thái của đèn, máy bơm, máy phun sương, cùng cảm biến mưa để thực hiện việc điều khiển hợp lý Lưu đồ giải thuật gửi dữ liệu lên ứng dụng để giám sát và điều khiển được thể hiện trong hình 4.7.
Chương trình bắt đầu bằng việc khởi tạo phần cứng và các biến Nếu chưa có kết nối, chương trình sẽ tạm dừng cho đến khi có kết nối Sau đó, vòng lặp chương trình sẽ được thực hiện, chạy ứng dụng Blynk Khi có dữ liệu, chương trình sẽ đọc dữ liệu đó Nếu dữ liệu bằng ".", chương trình sẽ kiểm tra các thông số khác như nhiệt độ, độ ẩm không khí, độ ẩm đất, ánh sáng, cũng như trạng thái của nút nhấn và cảm biến mưa.
Chương trình sẽ tính toán các thông số chính xác từ các cảm biến, ngoại trừ cảm biến mưa, để theo dõi dữ liệu trên ứng dụng Cuối cùng, chương trình sẽ khôi phục lại trạng thái ban đầu và tiếp tục nhận dữ liệu mới.
Lưu đồ giải thuật gửi dữ liệu lên ứng dụng giám sát và điều khiển bắt đầu bằng việc kiểm tra nút nhấn; nếu nút được nhấn, chương trình sẽ chờ 20ms và kiểm tra lại Biến tt sẽ tăng lên 1, và nếu tt lớn hơn 1, nó sẽ được đặt về 0 Dựa vào giá trị của tt, chương trình sẽ gửi các ký tự tương ứng vào cổng serial3: "n","1","." khi tt bằng 1 và "n","5","." khi tt bằng 0 Đối với lưu đồ giải thuật nhận dữ liệu, khi có dữ liệu được nhận, chương trình sẽ đọc và gán dữ liệu từ serial3 cho biến data, sau đó ghi dữ liệu vào serial và thực hiện thay đổi trạng thái của biến theo các giá trị data đã được định sẵn.
Hình 4.9 Lưu đồ giải thuật chương trình nhận dữ liệu e) Lưu đồ giải thuật chương trình kiểm tra tự động
Chương trình kiểm tra tự động sử dụng lưu đồ để so sánh biến trạng thái mưa, trong đó động cơ sẽ dừng quay thuận hoặc quay ngược khi gặp công tắc hành trình trái hoặc phải Đồng thời, lưu đồ giải thuật chương trình chỉnh tay được thực thi khi người dùng tác động vào nút nhấn thực tế hoặc từ ứng dụng.
Hình 4.11 Lưu đồ giải thuật chương trình kiểm tra chỉnh tay g) Lưu đồ giải thuật chương trình kiểm tra nút nhấn như hình 4.12
Lưu đồ giải thích cách chương trình thực thi khi nhấn nút, dẫn đến việc thay đổi các biến trạng thái Sự thay đổi này cho phép các thiết bị như đèn, máy bơm và máy phun sương hoạt động hiệu quả.
Hình 4.12 Lưu đồ giải thuật chương trình kiểm tra nút nhấn h) Lưu đồ giải thuật chương trình kiểm tra đèn
Vào lúc 20 giờ, đèn sẽ được bật cho đến 21 giờ tối Từ 21 giờ tối đến 6 giờ sáng hôm sau, đèn sẽ không tự động bật Chương trình sẽ gửi các ký tự "n", "2", "." hoặc "n", "3", "." để điều khiển việc bật và tắt đèn.
Hình 4.13 Lưu đồ giải thuật chương trình kiểm tra đèn i) Lưu đồ giải thuật chương trình kiểm tra máy bơm
Hình 4.14 Lưu đồ giải thuật chương trình kiểm tra máy bơm
Giải thích lưu đồ: Chương trình kiểm tra giá trị đất đã được cái đặt ở mức giới hạn là
Khi đạt đến giá trị 50, máy bơm sẽ tự động được kích hoạt Chương trình sẽ gửi các ký tự lần lượt là "n", "4", ".", "n", "6", "." qua giao thức serial3 để điều khiển quá trình bật và tắt máy bơm Đồng thời, lưu đồ giải thuật của chương trình cũng sẽ kiểm tra quá trình phun sương.
Hình 4.15 Lưu đồ giải thuật chương trình kiểm tra phun sương
Chương trình kiểm tra giá trị đất được thiết lập với giới hạn nhiệt độ trên 34 độ C và độ ẩm dưới 51% Khi nhiệt độ vượt quá 35 độ C hoặc độ ẩm trên 50%, máy phun sương sẽ tự động bật hoặc tắt Chương trình sẽ gửi các ký tự "n", "a", "." hoặc "n", "b", "." qua serial3 để điều khiển trạng thái máy phun sương Lưu đồ giải thuật cũng bao gồm chương trình kiểm tra cảm biến mưa.
Hình 4.16 Lưu đồ giải thuật chương trình kiểm tra cảm biến mưa
Chương trình điều khiển mái che sẽ tự động thực thi khi có mưa, với các biến trạng thái thay đổi để điều chỉnh mái che quay ra hoặc vào Sau đó, chương trình gửi các ký tự "n", "c", "." hoặc "n", "d", "." qua serial3 để thực hiện việc kéo mái che ra hoặc vào.
4.4.2 Phần mềm lập trình cho vi điều khiển và ứng dụng điều khiển trên điện thoại
4.4.2.1 Giới thiệu phần mềm lập trình Arduino IDE
Phần mềm Arduino IDE là phần mềm dùng để lập trình cho Arduino Môi trường lập trình
Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, MAC OSX và Linux
Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm
Ngôn ngữ lập trình C++ có khả năng mở rộng thông qua các thư viện, cho phép người dùng tích hợp mã nguồn AVR vào chương trình, nhờ vào việc C++ được xây dựng dựa trên nền tảng ngôn ngữ C của AVR.
Người dùng chỉ cần định nghĩa hai hàm để chương trình hoạt động theo chu trình: hàm setup() được thực hiện một lần duy nhất khi bắt đầu chương trình để khởi tạo các thiết lập, trong khi hàm loop() được gọi lặp đi lặp lại cho đến khi bo mạch bị tắt.
Chu trình đó có thể mô tả trong hình 4 dưới đây:
Hình 4.8 Quy trình làm việc của Arduino