4. Đề nghị cho bảo vệ hay không?
3.3. Tính toán và thiết kế mạch
3.3.1. Khối xử lý trung tâm
Sau quá trình tìm hiểu về các thiết bị điều khiển cho hệ thống xử lý trung tâm cùng với sự tư vấn và hỗ trợ của giáo viên hướng dẫn nê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 này. Với đặc điểm có thể tích hợp nhiều ngoại vi với các chân I/O cần thiết cho đề tài.
3.3.2. Khối cảm biế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ách kết nối:
Hai chân truyền dữ liệu của cảm biến đất và cảm biến ánh sáng được nối với chân A0, A1 của bộ vi xử lý trung tâm, chân truyền dữ liệu của module cảm biến mưa được nối với chân 17 và chân truyền dữ liệu của cảm biến nhiệt độ - độ ẩm được nối chân 18. Các chân VCC và GND còn lại được nối như sơ đồ.
Hoạt động:
Khi hệ thống hoạt động các giá trị của một trường như nhiệt độ, độ ẩm, lượng mưa, cường độ sáng, … sẽ được khối cảm biến đo đạc và tính toán giá trị sau đó truyền các thông số này về bộ xử lý trung tâm để thực hiện các công việc tiếp theo
3.3.3. Khối nút nhấn
Ta sử dụng 5 nút nhấn để thực hiện việc điều khiển hệ thống bao gồm: nút nhấn MODE, nút nhấn điều khiển mái che, nút nhấn điều khiển bơm nước, nút nhấn điều khiển bơm phun sương, nút nhấn điều khiển đèn.
Hình 3.3 Sơ đồ nguyên lý khối nút nhấn
Cách kết nối:
Các nút nhấn được kết nối như sau: Nút nhấn chọn chế độ điều khiển (bằng tay hoặc tự động) được nối với chân số 41 của vi điều khiển, nút nhấn điều khiển mái che được nối với chân số 43, nút nhấn điều khiển máy bơm nước nối với chân số 45, hai nút nhấn còn lại dung để điều khiển bơm phun sương và điều khiển đèn lần lượt được nối với các chân 47 và chân số 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Ω.
Hoạt động:
Nút nhấn MODE chọn chế độ hoạt động là điều khiển tay hoặc điều khiển tự động, nút nhấn điều khiển mái ra khi nhấn sẽ thực hiện việc kéo mái che ra , nút nhấn điều khiển mái vào khi nhấn sẽ thực hiện việc kéo mái che vào, nút nhấn điều khiển bơm nước khi nhấn sẽ kích mở bơm nước đến khi độ ẩm đất đạt giá trị yêu cầu thì ta nhấn lần nữa để dừng, nút nhấn điều khiển bơm phun sương khi nhấn sẽ bật mở bơm phun sương, nút nhấn điều khiển đèn khi nhấn thì thực hiệ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
Cách kết nối:
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.
Hoạt động:
Khi hệ thống đang hoạt động các thông số nhận được từ cảm biến sẽ truyền tới vi điều khiển trung tâm (Arduino Mega 2560), để có thể kiểm soát hệ thống trực tuyến ta sử dụng module NodeMCU ESP8266 để gửi dữ liệu lên web để giám sát đồng thời 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.
3.3.5. Khối thực thi
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
Cách kết nối:
Sử dụng hai module L298N để điều khiển các thiết bị. Module L298N thứ nhất ta sử dụng bốn chân IN2, IN3 được nối với hai chân 5, 6 để điều khiển hoạt động của bơm nước và bơm phun sương. Module L298N thứ hai ta sử dụng hai chân IN2, IN3 được nối với chân 8 và 9 để điều khiển hoạt động của đèn và động cơ kéo mái che.
Hoạt động:
Khi các thông số đo được đạt tới ngưỡng đã cài đặt hoặc nút nhấn điều khiển thiết bị đó được nhấn thì chân OUTx của module L298N điều khiển thiết bị đó sẽ thay đổi 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
Cách kết nối:
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.
Hoạt động:
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
Cách kết nối:
Để hiển thị các thông số và giá trị ta sử dụng một LCD 20x4, kết nối giữa LCD và vi điều khiển như sau: Ta kết nối bốn chân D4, D5, D6, D7 với bốn chân lần lượt là 4, 5, 6, 7 của vi điều khiển để truyền nhận dữ liệu (chế độ 4 bit), có một biến trở 10K để điều chỉnh độ tương phản.
Hoạt động:
Khi hoạt động các giá trị thông số đo được của môi trường cũng như trạng thái hoạt động của các thiết bị sẽ được hiển thị rõ rang trên màn hình.
Hình 3.7 Sơ đồ nguyên lý khối hiển thị 3.3.8. Khối nguồn
Lí do chọn sử dụng pin năng lượng mặt trời
Để đáp ứng yêu cầu hệ thống hoạt động độc lập và không phụ thuộc vào nguồn điện lưới, đồng thời hệ thống phải có tính di động, linh hoạt trong nhu cầu sử dụng đòi hỏi hệ thống phải có nguồn điện cung cấp đầy đủ và liên tục. Chính những yêu cầu đó, pin năng lượng mặt trời đã thỏa mãn những điều kiện, do đó nhóm em chọn pin năng lượng mặt trời làm nguồn duy trì cho hệ thống hoạt độ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 tạo ra điện áp từ 17V – 21V tùy thuộc vào điều kiện ánh nắng trong ngày. Nguồn điện này sẽ qua mạch sạc và sạc trực tiếp vào bình ắc quy. Ắc quy sẽ được sạc khi điện áp pin giảm còn dưới 9.6V và sạc đầy pin khi điện áp đủ 12V.
Tính toán thời gian sử dụng pin
Thống kê dòng tiêu thụ các module:
Module NodeMCU ESP8266: 80 mA
Module nhiệt độ, độ ẩm DHT11: 2.5 mA.
Module LCD: 0.5 mA.
Arduino Mega 2560: 580 mA.
Bơm nước 12V : 0.5A
Bơm nước 5V: 1.5A
Độ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)
= 5 x 0.663 + 12 x 0.5 + 5 x1.5 + 0.38 x6 = 19.095 W. Điện áp ắc quy: 12 V.
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
Ppin = 22W Pacquy = 60W
tsạc = Ppin / Pacquy = 60/22 = 2.7 (giờ)
Tuy nhiên do mắc tấm pin với bộ điều khiển sạc sử dụng công nghê PWM nên công suất sạc chỉ đạt tối đa từ 60 – 80% nên thời gian sạc sẽ kéo dài hơn.
Thời gian sạc thực tế sẽ kéo dài trong khoảng 3.3 đến 4.5 giờ.
3.3.9 Sơ đồ nguyên lý toàn mạch
Sơ đồ nguyên lý của toàn mạch bao gồm tất cả 8 khối: Khối xử lý trung tâm, khối ESP8266, khối cảm biến, khối nút nhấn, khối thực thi, khối hiển thị, khối thời gian thực, khối nguồn. Chức năng và nhiệm vụ của mỗi khối khối đã được trình bày ở phần trước. Sơ đồ nguyên lý của toàn mạch như sau
CHƯƠNG 4: THI CÔNG HỆ THỐNG
4.1 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.
4.2 Thi công hệ thống 4.2.1 Thi công bo mạch 4.2.1 Thi công bo mạch
4.2.1.1 Danh sách linh kiện
STT Tên Số lượng
1 Arduino Mega 1
2 Module NodeMCU ESP8266 1 3 Module cảm biến mưa 1
4 Cảm biến đất 1 5 Cảm biến DHT11 1 6 Quang trở 1 7 Module L298N 3 8 Module LM2596 1 9 Bơm 12VDC 1 10 Bơm 5VDC 1 11 LCD 20x4 1 12 Module DS1307 1 13 Nút nhấn 6
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.
áp ở ngõ vào và ngõ ra gắn với các module và các 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 gắn lên trên ở phía trước của mô hình để dễ điều khiển, tấm pin mặt trời được đặt lên phía trên mô hình để thực hiện việc sạc cho nguồn, mô hình được chia làm hai phần bao gồm: một bên để đựng nguồn các động cơ và tủ điều khiển, phần còn lại để đựng các chậu lan.
Hình 4.3 Mặt trên của mô hình
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 gắn vào thanh sắt phía dưới tấm pin mặt trời để sạc điện cho ắc quy phía dưới, hai động cơ phun sương và bơm nước được gắn lên phía trên và có ống để hút nước từ bình chứa nước được đặt ở 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
Tại đây là không gian đặt các chậu lan để giám sát và chăm sóc. Một bên được gắn ống dẫn nước có gắn đầu phun sương để phun sương, ống còn lại dẫn nước để tưới cho cây. Có một bóng đèn được gắn phía đối diện vị trí phun sương để chiếu sáng cho cây.
4.4. Lập trình hệ thống
4.4.1. Lưu đồ giải thuật
Hệ thống có các chức năng như sau:
Hệ thống chính là hệ thống giám sát trồng lan tự động thông qua các giá trị cài đặt nhiệt độ không khí, độ ẩm không khí và độ ẩm đất sao cho phù hợp với chỉ số sinh trưởng của cây lan . Sau đó, các giá trị cảm biến sẽ được gửi lên ứng dụng trên điện thoại để giám sát quá trình trồng lan. Thêm nữa là chế độ tay cho phép người chăm sóc vườn lan trực tiếp điều khiển tưới lan, phun sương và điều khiển đèn hoặc mái che khi cần thiết. Nguồn cấp 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 độ, đổ ẩm thông qua cảm biến, được hiển thị trực tiếp trên màn hình LCD, đồng thời cũng được hiển thị trên ứng dụng điều khiển tạo điều kiện thuận lợi cho người dùng có thể giám sát hệ thống từ xa thông qua Internet.
Khi cấp điện vào hệ thống, khởi động Arduino, module wifi NodeMCU ESP8266, cảm biến nhiệt độ độ ẩm DHT11, LCD, ... Sau khi khởi động xong mặc định sẽ hiển thị giá trị cảm biến trên LCD và hệ thống chạy chế độ Auto. Muốn đổi chế độ thì ta nhấn phím Manual, tương ứng với chức năng chế độ tay, sau đó chỉ nhấn phím Bơm, Hơi sương, mái vào, mái ra, đèn thì có thể điều khiển trực tiếp.
a) Lưu đồ giải thuật của chương trình điều khiển chính của Arduino Mega.
Giải thích lưu đồ: Chương trình bắt đầu vào khởi tạo phần cứng và các biến. Nếu chưa kết nối thì chương trình sẽ dừng đợi đến khi nào có kết nối. Vòng lặp chương trình được thực hiện. Chương trình sẽ kiểm tra nút nhấn chuyển trạng thái và mặc định ban đầu là chỉnh tay. Sau đó chương trình sẽ nhận dữ liệu từ App và đọc giá trị của cảm biến với biến chạy từ 0 đến 100, như thế để cho mạch xử lý và truyền lên App ổn định. Cuối cùng chương trình sẽ kiểm tra các nút nhấn còn lại, kiểm tra 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 để điều khiển hợp lý.
b) Lưu đồ giải thuật của gửi dữ liệu lên app để giám sát và điều khiển như hình 4.7
Giải thích lưu đồ: Chương trình bắt đầu vào khởi tạo phần cứng và các biến. Nếu chưa kết nối thì chương trình sẽ dừng đợi đến khi nào có kết nối. Vòng lặp chương trình được thực hiện. Chương trình sẽ chạy App Blynk. Khi có dữ liệu, chương trình sẽ tiến hành đọc dữ liệu đó. Khi data bằng "." thì chương trình sẽ kiểm tra các data khác như nhiệt độ, độ ẩm không khí, độ ẩm đất, ánh sáng cũng như của các trạng thái nút nhấn và cảm biến mưa. Với các cảm biến trừ cảm biến mưa thì chương trình sẽ tính toán thông số chính xác để có thể theo dõi lên App. Cuối cùng chương trình sẽ xóa về ban đầu và tiếp tục nhận data.
Hình 4.7 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) Lưu đồ chương trình kiểm tra nút nhấn chuyển
Giải thích lưu đồ: Chương trình bắt đầu vào bằng kiểm tra nút nhấn xem đã nhấn hay chưa, khi nhấn rồi sẽ chờ 20ms và kiểm tra một lần nữa. Sau đó biến tt sẽ tăng 1, nếu biến tt lớn hơn 1, biến tt sẽ được đặt về 0. Chương trình sẽ lần lượt gửi các ký tự "n","1","." vào cổng serial3 khi tt bằng 1 và ngược lại sẽ lần lượt gửi các ký tự "n","5","." khi tt bằng 0.
d) Lưu đồ giải thuật chương trình nhận dữ liệu
Giải thích lưu đồ: Khi có dữ liệu nhân được. Chương trình sẽ đọc và gán dữ liệu nhận từ serial3 cho data. Sau đó ghi dữ liệu vào serial. Chương trình sẽ thực thi thay đổi trạng thái của biến ứng với các giá trị data được đặt sẵn.
e) Lưu đồ giải thuật chương trình kiểm tra tự động
Hình 4.10 Lưu đồ giải thuật chương trình kiểm tra tự động
Giải thích lưu đồ: Chương trình sẽ thực thi so sánh biến trạng thái mưa. Động cơ sẽ dừng quay thuận hoặc quay nghịch khi và chỉ khi gặp công tắc hành trình trái hoặc phải.
f) Lưu đồ giải thuật chương trình chỉnh tay như hình 4.11
Giải thích lưu đồ: Chương trình thực thi khi chúng ta tác động vào nút nhấn thực tế và từ