Trong đó:
1: Jack nguồn và đèn báo
2: Các tụ điện chỉnh lưu, giảm hệ số gợn sóng 3: Các IC nguồn LM2576 5V, LM2576 ADJ 4: Cuộn cảm
b. Tiến hành thực hiện lần lượt cho các module còn lại
Các module còn lại bao gồm các module Realtime, module Sim800L, module cảm biến pH, cảm biến nhiệt độ, module cảm biến dòng, Board Arduino Mega 2560, Driver hiển thị VGA.....
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 58 Hình 4.5.Vị trí các mơ dun trong bo điều khiển trung tâm
Trong đó: 1: Mơ đun cảm biến pH probe và nhiệt độ DS18B20. 2: Mơ đun cảm biến dịng ACS712.
3: Mạch Relay 5V. 4: Driver hiển thị VGA.
5: Hiển thị LCD 16x2, phía dưới là anten moduleSim800L. 6: Module Sim800L.
7: Module Realtime. 8: Hệ thống nút nhấn.
9: Board Arduino Mega 2560. 10: Buzzer cảnh báo.
11: Vị trí các IC nguồn trên board. 12: Jack nhận nguồn cho tồn mạch.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 59
4.3 ĐĨNG GĨI VÀ THI CƠNG MƠ HÌNH
4.3.1 Đóng gói bộ điều khiển
Bộ mơ hình được bảo vệ bằng vở nhựa làm bằng mica trắng, độ dày 2mm, được thiết kế bằng phần mềm solid work sau đó xuất sang file auto cad để tiết hành cắt mica. Tại ngõ ra đều có thiết kế các lỗ có kích thước đủ để cắm dây theo đúng yêu cầu, mặt trên hiển thị LCD 16x2 các thông số cần thiết.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 60 Hình 4.7. Mặt trên hộp điều khiển
Các thơng số chính: - Chiều dài: 199.4 mm - Chiều rộng: 169 mm - Chiều cao: 46 mm - Độ dày mica: 2mm - Màu: trắng phấn
Các ngõ bắt vít chủ yếu để người dùng bắt vít từ trên xuống mà khơng cần gỡ nắp hộp ra, giúp hạn chế các yếu tố chủ quan từ việc bắt vít của người dùng, giúp nâng cao bảo vệ board mạch trung tâm.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 61 Hình 4.8. Mặt bên phía trướchộp điều khiển
Nguồn cung cấp nếu bắt vít là nguồn AC, nguồn cịn lại là nguồn DC cung cấp vào mạch, các nút điều khiển được nhét giúp chọn trạng thái hay các chế độ làm việc như reset.... hay mở rộng chức năng thông qua các kết nối khác.
Hình 4.9. Mặt bên bên phải hộp điều khiển
Mơ hình thiết kế sẵn có 4 ngõ ra relay, trong đó chân giữa là chân chung, hai chân cịn lại là ngõ thường đóng hoặc thường hở, và 2 ngõ vào của cảm biến ACS712 giúp giám sát động cơ có làm việc thơng qua giá trị dịng điện.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 62 Hình 4.10. Mặt bên phía sau hộp điều khiển
Tiếp theo, mơ hình ở mặt này có những ngõ như sau:
-Có ngõ vào của cảm biến pH và nhiệt độ DS18B20 trong đó người dùng có thể gỡ chi của cảm biến pH cịn cảm biến DS18B20 thì phải mở vỏ hộp mới gỡ được.
-Cổng xuất tín hiệu VGA, cổng này giúp hiển thị giá trị nhiệt độ pH ra màn hình thơng qua cổng VGA (DB15).
- Cổng mạng RJ45 , đây là nơi cắm cáp mạng cho board mạch.
- Cổng lập trình, cổng này được thiết kế giành cho người lập trình phát triển chức năng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 63 Hình 4.11. Mặt bên bên trái hộp điều khiển
Các chân mở rộng của mạch, bao gồm các chân được mở rộng cho trường hợp có thêm các chức năng khác thì cắm vào đây, các chân còn lại là chân nguồn để sử dụng cho các mục đích mở rộng.
4.3.2 Thi cơng mơ hình
Đề tài thiết kế mơ hình hồ ni tơm bao gồm một động cơ DC điều khiển quạt nước theo thời gian thực và cắm các cảm biến để mô phỏng như thực tế, mơ hình sử dụng mica trắng.
BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP 64 Hình 4.12. Mơ hình cánh quạt hồ ni tơm
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 65 Thơng số mơ hình: - Chiều dài: 204 mm - Chiều rộng: 154 mm - Chiều cao: 70 mm - Độ dài cánh quạt: 35 mm - Độ rộng cánh quạt: 34 mm - Độ dày mica: 2mm - Màu: trắng phấn
- Mực nước tối đa: 44 cm - Động cơ sử dụng : DC 12V
Mơ hình sử dụng động cơ DC 12V giúp quạt quay giúp đẩy oxy xuống nước theo thời gian thực, trong thực tế, có nhiều hơn một quạt nhưng trong mơ hình chỉ sử dụng một quạt là do các quạt đều quay theo cùng một thời gian, cảm biến pH và DS18B20 cắm xuống nước ở bất kỳ vị trí nào, mục đích là đo đạc.
BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP 66
4.4 LẬP TRÌNH HỆ THỐNG
4.4.1 Lưu đồ giải thuật
Board xử lý trung tâm
Yêu cầu:
Giao tiếp với các cảm biến để đo các thông số nhiệt độ, độ pH, dòng điện chạy qua động cơ. Đồng thời hiển thị thông số nhiệt độ và độ pH lên màn hình LCD và màn hình VGA, sau đó gửi dữ liệu lên Websever.
Kiểm tra số liệu thu được từ các cảm biến, nếu có sự cố xảy ra nhanh chóng xử lý kịp thời. Đảm bảo toàn bộ hệ thống hoạt động ổn định.
Lưu đồ giải thuật
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 67
Bước 1: Board xử lý trung tâm tiến hành cài đặt.
Bước 2: Đọc dữ liệu từ các modul thời gian thực, modul cảm biến độ pH, cảm biến nhiệt độ.
Bước 3:Hiển thị ra màn hình LCD, upload dữ liệu lên Websever.
Bước 4:Điều khiển động cơ quạt nước, đọc cảm biến dòng điện tại động cơ. Bước 5:Kiểm tra sự cố, nếu có sự cố xảy ra thì xử lý sự cố.
Hàm đọc thời gian thực
u cầu: Tính tốn và trả về chính xác các giá trị thời gian cho vi điều khiển, phục vụ cho việc vận hành hệ thống và xử lý khi có sự cố xảy ra.
Lưu đồ giải thuật:
Hình4.15. Lưu đồ giải thuật đo thời gian thực
Kết thúc truyền dữ liệu
Đọc dữ liệu được gửi về từ DS1307
Chuyển đổi các giá trị thời gian thành giờ phút giây
Đọc thời gian thực
Gửi lênh bắt đầu truyền dữ liệu đến DS1307
Ghi dữ liệu lên thiết bị
Yêu cầu trả về dữ liệu từ DS1307
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 68
Bước 1:Gửi lệnh truyền dữ liệu đến modul realtime DS1307 sau đó ghi dữ liệu lên modul và gửi lệnh kết thúc truyền dữ liệu.
Bước 2:Gửi lệnh trả về dữ liệu từ DS1307.
Bước 3: Đọc dữ liệu được trả về từ DS1307 và chuyển đổi sang số thập phân. Lưu đồ giải thuật đo nhiệt độ DS18B20
Yêu cầu: giao tiếp và đo đạc giá trị từ cảm biến DS18B20, chuyển đổi sang nhiệt độ tương ứng cung cấp cho vi điều khiển.
Lưu đồ giải thuật:
Hình4.16. Lưu đồ giải thuật đọc nhiệt độ từ DS18B20
Lệnh reset one wire
Lệnh chuyển đổi nhiệt độ (44H)
Tạo trễ 1000ms chờ chuyển đổi
Lệnh đọc dữ liệu từ DS18B20 (BEH) Lệnh reset one wire
Lệnh đọc dữ liệu 2 byte nhiệt độ và chuyển sang
nhiệt độ tương ứng
Kết thúc Đọc nhiệt độ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 69
Đầu tiên, vi điều khiển gửi lệnh reset modul DS18B20. Sau đó, gửi lệnh chuyển đổi nhiệt độ. Đối với độ phân giải 12bit thì thời gian trễ là 750 ms. Do đó, ở đây ta lấy thời gian trễ chờ chuyển đổi là 1000ms. Vi điều khiển tiếp tục gửi lệnh reset, sau đó gửi lệnh đọc dữ liệu từ cảm biến. Tiếp theo là gửi lệnh đọc 2 Byte nhiệt độ và trả về kết quả nhiệt độ cho vi điều khiển.
Lưu đồ giải thuật đo pH
Yêu cầu: giao tiếp và đo đạc giá trị từ cảm biến pH E201-C, chuyển đổi sang độ pH tương ứng cung cấp cho vi điều khiển.
Hình 4.17. Lưu đồ giải thuật đọc giá trị pH
Bước 1: Đọc giá trị cảm biến 10 lần và cộng dồn. Bước 2: Tính trung bình các giá trị đọc được.
Bước 3: Chuyển đổi từ giá trị đo được sang giá trị pH tương ứng. Gửi lệnh đọc kết quả
cảm biến và cộng dồn
Tính trung bình các giá trị đọc được
Chuyển đổi từ giá trị đo sang giá trị pH
Kết thúc Đọc độ pH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 70
Hàm đọc cảm biến dòng ACS712
Yêu cầu: giao tiếp và đo đạc giá trị từ cảm biến dòng ACS712, chuyển đổi sang độ dòng điện tương ứng cung cấp cho vi điều khiển.
Lưu đồ giải thuật:
Hình 4.18. Lưu đồ giải thuật đọc cảm biến dòng ACS712
Bước 1: Đọc giá trị cảm biến 10 lần và cộng dồn. Bước 2: Tính trung bình các giá trị đọc được.
Bước 3: Chuyển đổi từ giá trị đo được sang giá trị dòng điện tương ứng. Lưu đồ giải thuật hàm kiểm tra sự cố
Yêu cầu: Kiểm tra giá trị đo được từ các cảm biến, nếu có giá trị nào cao hơn giới hạn trên hoặc thấp hơn giới hạn dưới thì cập nhật thời gian xảy ra sự cố, trạng thái sự cố tương ứng để trung tâm điều khiển xử lý sự cố kịp thời.
Gửi lệnh đọc kết quả cảm biến và cộng dồn
Tính trung bình các giá trị đọc được
Chuyển đổi từ giá trị đo sang giá trị mA
Kết thúc Đọc cảm biến dịng
ACS712
BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP 71
Lưu đồ giải thuật:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 72
Bước 1: Kiểm tra sự cố về nhiệt.
Nếu nhiệt độ cao hoặc thấp quá mức quy định, vi điều khiển tiến hành kiểm tra trạng thái cập nhật thời gian xảy ra sự cố nhiệt độ. Nếu đã cập nhật rồi thì khơng cập nhật lại nữa. Nếu chưa thì tiến hành cập nhật thời gian xảy ra sự cố nhiệt độ. Đồng thời đặt các biến trạng thái xảy ra sự cố và cập nhật thời gian xảy ra trạng thái lên mức 1.
Bước 2: Kiểm tra sự cố pH.
Nếu pH cao hoặc thấp quá mức quy định, vi điều khiển tiến hành kiểm tra trạng thái cập nhật thời gian xảy ra sự cố pH. Nếu đã cập nhật rồi thì khơng cập nhật lại nữa. Nếu chưa thì tiến hành cập nhật thời gian xảy ra sự cố pH. Đồng thời đặt các biến trạng thái xảy ra sự cố và cập nhật thời gian xảy ra trạng thái lên mức 1.
Bước 3: Kiểm tra sự cố quá tải động cơ.
Nếu dòng điện cao quá mức quy định, vi điều khiển tiến hành kiểm tra trạng thái cập nhật thời gian xảy ra sự cố quá tải. Nếu đã cập nhật rồi thì khơng cập nhật lại nữa. Nếu chưa thì tiến hành cập nhật thời gian xảy ra sự cố quá tải. Đồng thời đặt các biến trạng thái xảy ra sự cố và cập nhật thời gian xảy ra trạng thái lên mức 1.
Bước 4: Kiểm tra sự cố mất nguồn động cơ.
Nếu dòng điệnđo được bằng 0, tiến hành kiểm tra xem trong thời gian đó, relay có bật khơng, nếu relay bật mà dịng điện bằng 0 thì kiểm tra trạng thái cập nhật thời gian xảy ra sự cố mất nguồn. Nếu đã cập nhật rồi thì khơng cập nhật lại nữa. Nếu chưa thì tiến hành cập nhật thời gian xảy ra sự cố mất nguồn. Đồng thời đặt các biến trạng thái xảy ra sự cố và cập nhật thời gian xảy ra trạng thái lên mức 1.
Lưu đồ giải thuật hàm xử lý sự cố
Yêu cầu: Kiểm tra trạng thái các sự cố xảy ra. Tiến hành kiểm tra và xử lý sự cố chặt chẽ gồm nhiều cấp độ. Đảm bảo độ chính xác cao và hệ thống vận hành ổn định
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 73 Hình 4.20.Lưu đồ giải thuật hàm xử lý sự cố
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 74 Hình 4.21. Lưu đồ giải thuật hàm xử lý sự cố (tt)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 75 Hình 4.22. Lưu đồ giải thuật hàm xử lý sự cố (tt)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 76
Bước 1: Xử lý sự cố nhiệt độ.
Trường hợp sự cố nhiệt độ xảy ra, nếu sự cố nhiệt độ xảy ra quá 5 phút, tiến hành kiểm tra trạng thái gửi tin nhắn cảnh báo cho kĩ thuật viên. Nếu chưa gửi tin nhắn thì thực hiện gửi tin nhắn. Nếu sự cố nhiệt độ xảy ra qúa 10 phút, kiểm tra trạng thái gọi điện cho kĩ thuật viên, nếu chưa gọi thì thực hiện gọi điện báo động cho kĩ thuật viên. Nếu sự cố nhiệt độ tiếp tục xảy ra và xảy ra quá 20 phút thì kiểm tra trạng thái báo động cho chủ hồ nuôi tôm. Nếu chưa báo động cho chủ hồ ni tơm thì thực hiện gửi tin nhắn xảy ra sự cố nhiệt độ và gọi điện cho chủ hồ nuôi tôm
Bước 2: Xử lý sự cố độ pH.
(tương tự như xử lý sự cố nhiệt độ) Bước 3: Xử lý sự cố quá tải động cơ.
(tương tự như xử lý sự cố nhiệt độ) Bước 4: Xử lý sự cố mất nguồn động cơ.
(tương tự như xử lý sự cố nhiệt độ)
4.4.2 Phần mềm lập trình cho vi điều khiển a) Giới thiệu phần mềm lập trình a) Giới thiệu phần mềm lập trình
Đồ án sử dụng phần mềm Arduino IDE(Integrated Development Environment). Phần mềm Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh OSX và Linux. Do có tính chất nguồn mở nên mơi trường lập trình này hồn tồ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ó thể được mở rộng thông qua các thư viện C++. Và do ngơn ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hồn tồn có thể nhúng thêm code viết bằng AVR C vào chương trình nếu muốn.
Để mở phần mềm Arduino IDE, tiến hành click đúp chuột trái hoặc là click phải chuột rồi chọn OPEN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 77 Hình 4.23. Giao diện Arduino IDE
Trong đó: a: Toolbar bao gồm Arduino toolbar và Arduino Menu b: Vùng soạn thảo
c : Vùng Debug (gỡ lỗi)
Bảng 4.2. Các vùng của Arduino IDE và ý nghĩa
Vùng Tên Hình ảnh Giải thích
Arduino
Verify Kiểm tra code có lỗi hay khơng
Upload Nạp code từ vùng soạn thảo tới board Arduino
New Tạo một Project mới
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 78
Toolbar Save Lưu Project Serial
monitor
Màn hình hiển thị dữ liệu từ Arduino lên màn hình máy tính
Arduino Menu
File menu
File Chứa các file menu như Verify, Upload, Example, Save, .....
Edit Edit Chứa các thao tác soạn thảo như Copy, Paste, Find, Find Next......
Sketch Sketch Chứa các thao tác biến dịch , thêm file, thêm thư viện
Tools Tools Chứa các công cụ soạn thảo, chọn board Arduino, tần số làm việc, ......
Help Help Chứa các nội dung giúp đỡ người lập trình Vùng
soạn thảo
Là nơi chứa toàn bộ code, thư viện trong lập trình trên board Arduino
Vùng Debug
Chứa các lệnh giúp gỡ lỗi trong quá trình lập trình từ trình soạn thảo
Arduino IDE cũng cấp gần như đầy đủ các chức năng lập trình, giúp người lập trình dễ dàng hơn rất nhiều trong việc lập trình.
b) Viết chương trình hệ thống Hàm cài đặt: void setup() { lcd.begin(16, 2); lcd.setCursor(0, 0);
lcd.print("Khoi tao chuong trinh"); lcd.setCursor(0, 1);
lcd.print("Loading......."); Wire.begin();
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 79
gian cho module */ Ethernet.begin(mac); ThingSpeak.begin(client); SIM900.begin(9600); pinMode(3, INPUT_PULLUP); pinMode(2, INPUT_PULLUP); pinMode(18, INPUT_PULLUP); pinMode(19, INPUT_PULLUP); attachInterrupt(0, thang1, FALLING);
attachInterrupt(1, thang2, FALLING); attachInterrupt(5, thang3, FALLING); attachInterrupt(4, thang4, FALLING); pinMode(28, OUTPUT); lcd.clear(); lcd.setCursor(0, 0); lcd.print("N.do: do C"); lcd.setCursor(0, 1); lcd.print("do pH:"); } Chương trình chính: void loop() { nhietdo(); dopH(); cbdong(); hienthi_lcd(); readDS1307(); upload(); dk_dongco();
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 80 kiemtra_suco(); if ( TT_sc == 1) { xuli_suco1(); } else { set_TT(); } }
4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC
a) Cách sử dụng board mạch trung tâm:
Bước 1:Kết nối cáp mạng, dây điện nguồn cho board mạch
Hình 4.24. Kết nối cáp mạng và cáp VGA
Nếu có khơng sử dụng tính năng upload mạng hoặc hiển thị màn hình VGA thì có thể bỏ qua bước này.
Bước 2:Cấp điện cho mạch, mạch sử dụng nguồn điện AC hoặc DC bé hơn 40V
Sử dụng nguồn đi kèm với hộp điều khiển trung tâm nên chỉ cần cắm vào jack