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 nguồn là ổn định.
Bước 3: Mạch ở trạng thái khởi động.
Bước 4: Mạch hiển thị thơng số là lúc q trình khởi tạo hồn thành, mạch chạy
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 81 Hình 4.25. Mạch hoạt động
Lưu ý: nếu mạch bị lỗi, nhấn nút Reset để khởi động lại mạch b) Cách kết nối giữa relay và cảm biến ACS712
Hình 4.26. Kết nối cảm biến ACS712 và động cơ
Theo đó, muốn dùng cảm biến dịng ACS712 theo dõi động cơ nào chỉ cần nối nối tiếp như hình là theo dõi động cơ đó. Nếu khơng sử dụng chức năng theo dõi thì khơng nối qua cảm biến ACS712.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 82 Hình 4.27. Các nút nhấn của hộp điều khiển trung tâm
Trong đó:
1: Nút reset lại board trung tâm khi cần thiết. 2: Nút chọn thời gian quạt oxy quay trong tháng 1 3: Nút chọn thời gian quạt oxy quay trong tháng 2 4: Nút chọn thời gian quạt oxy quay trong tháng 3 5: Nút chọn thời gian quạt oxy quay trong tháng 4
Chức năng này giúp chọn thời gian quạt quay theo từng thời kỳ nuôi tôm, khi tôm càng lớn, thời gian quạt quay sẽ càng nhiều. Vì thế người dùng cần phải thay đổi để sao cho chi phí là hợp lý nhất.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 83 Chương 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
.
5.1 KẾT QUẢ 5.1.1 Cảm biến 5.1.1 Cảm biến
Về cảm biến, hệ thống đọc thơng số khá chính xác đối với từng loại cảm biến như cảm biến pH, cảm biến nhiệt độ DS18B20, cảm biến dòng điện ACS712.
a) Cảm biến pH: đọc được cảm biến pH khá chính xác với yêu cầu thiết kế. Để so sánh, nhóm sử dụng thuốc thử độ pH với giá trị mà đầu pH probe đọc vào.
Hình 5.1. Giá trịnh pH=6 với thuốc thử
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 84
Theo giá trị đo đạc bằng hóa chất mà mắt thường có thể nhận biết là vào khoảng giá trị 6, trong nhiều trường hợp thì giá trị nằm ở ngưỡng giữa nên rất khó phân biệt, sử dụng cảm biến pH mang lại giá trị chính xác.
Giá trị đọc được từ đầu pH probe:
Hình 5.3. Giá trị pH=8 với thuốc thử
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 85
Giá trị đọc vào chính xác, giúp ích rất nhiều cho người ni tơm trong q trình đo đạc.
b) Cảm biến nhiệt độ DS18B20: nhóm tiến hành đọc giá trị nước được lưu trong bình thủy và đã qua độ sơi với kết quả:
Hình 5.5. Giá trị nước do cảm biến DS18B20 đọc
Trong hình giá trị pH khơng đo đạc mà chỉ tập trung đo đạc cảm biến nhiệt độ DS18B20.
5.1.2 Bộ vi điều khiển
Về bộ xử lý, mạch hoạt động khá ổn định và upload dữ liệu được liên tục và nhanh, đáp ứng theo yêu cầu đặt ra của thiết kế.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 86
Các giá trị upload được lưu trữ online và được hiển thị theo dạng biểu đồ thời gian thực, giúp trực quan cho người dùng, người dùng có thể xem giá trị liên tục cập nhật trên thingspeak để có thể biết tình trạng hồ ni tơm nhanh chóng và tiện lợi.
Hình 5.7. Giá trị pH và nhiệt độ được lưu trữ dưới dạng file Excel
Các giá trị được upload ta có thể tải về dưới dạng file Excel để xem tất cả các thông số trong trường hợp người dùng muốn xem tất cả các thông số dưới dạng bảng.
Nhóm học lập trình trên kit Arduino, biết sử dụng thư viện mã nguồn mở của chương trình Arduino IDE để lập trình cho bo xử lý trung tâm, tuy nhiên do số lượng các dịng code khá lớn nên q trình khởi tạo của bo xử lý trung tâm bị chậm lúc khởi động.
5.1.3 Mơ đun Sim800L
Nhóm sử dụng mơ đun sim800L để cảnh báo, báo động khi có sự cố cho người quản lý biết, kết quả đạt được là khả quan khi sự cảnh báo được thực hiện kịp thời, qua đó sẽ giảm rủi ro cho người nuôi tôm khi mà các trục trặc, vấn đề được phát hiện kịp thời.
5.1.4 Hiển thị màn hình VGA
Chức năng hiển thị màn hình VGA giúp quản lý tập trung ở những hồ nuôi tôm lớn, nơi đòi hỏi sử dụng màn hình hiển thị dễ dàng các thông số, màn hình hiển thị sinh động và to hơn các thơng số cần thiết.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 87 Hình 5.8. Hiển thị màn hình VGA
Ở đồ án đạt kết quả hiển thị màn hình thơng qua cổng VGA sử dụng vi điều khiển 8 bit. Vì dùng vi điều khiển 8 bit nên khả năng hiển thị hạn chế.
5.1.5 Mơ hình hồ ni tơm
Đồ án thiết kế và xây dựng được mơ hình hồ ni tơm gần giống với thực tế, bởi vì trong thực tế hồ ni tơm được phân ra từng hồ nhỏ, vì vậy nếu áp dụng chỉ cần một thiết bị giám sát trên một hồ nuôi.
Về động cơ trong mơ hình, trong mơ hình chỉ sử dụng một động cơ quạt nước, trong thực tế tùy vào diện tích hồ ni mà số lượng động cơ nhiều hơn, tuy nhiên các