Đồ án Thiết kế và thi công hồ cá đa năng sử dụng board Arduino Mega 2560 (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Thiết kế và thi công hồ cá đa năng sử dụng board Arduino Mega 2560 (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
do_an_thiet_ke_va_thi_cong_ho_ca_da_nang_su_dung_board_ardui.pdf
Nội dung text: Đồ án Thiết kế và thi công hồ cá đa năng sử dụng board Arduino Mega 2560 (Phần 1)
- BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỆN TỬ TRUYỀN THÔNG THIẾT KẾ VÀ THI CÔNG HỒ CÁ ĐA NĂNG SỬ DỤNG BOARD ARDUINO MEGA 2560 GVHD: TS. NGUYỄN THANH HẢI SVTH: NGUYỄN THÀNH TÂM - 12141197 HỒ MINH THÁI - 12141202 S K L 0 0 4 5 1 6 Tp. Hồ Chí Minh, tháng 1 năm 2017
- TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH Chương KH ĐÀ TẠ CH T Ư NG C ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ VÀ THI CÔNG HỒ CÁ Đ NĂNG SỬ DỤNG BOARD ARDUINO MEGA 2560 SVTH: NGUYỄN THÀNH TÂM - 12141197 HỒ MINH THÁI - 12141202 Khóa: 12 Ngành: Ngành CNKT Điện Tử - Truyền Thông GVHD: TS. NGUYỄN TH NH HẢI Tp. Hồ Chí Minh, tháng 1 năm 2017
- TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KH ĐÀ TẠ CH T Ư NG C ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ VÀ THI CÔNG HỒ CÁ Đ NĂNG SỬ DỤNG BOARD ARDUINO MEGA 2560 SVTH: NGUYỄN THÀNH TÂM - 12141197 HỒ MINH THÁI - 12141202 Khóa: 12 Ngành: Ngành CNKT Điện Tử - Truyền Thông GVHD: TS. NGUYỄN TH NH HẢI Tp. Hồ Chí Minh, tháng 1 năm 2017
- ỜI CẢM ƠN Nhóm thực hiện đề tài “Thiết kế và thi công hồ cá đa năng sử dụng board Arduino Mega 2560” xin gửi lời cảm ơn chân thành đến các thầy, cô trường Đại Học Sư Phạm Kỹ Thuật TP.HCM đã tận tình giảng dạy, hướng dẫn trong suốt quá trình học tập, nghiên cứu và rèn luyện ở trường. Những kiến thức, kinh nghiệm mà các quý thầy cô chỉ dạy đã giúp nhóm thực hiện có nền tảng vững chắc để hoàn thành chương trình học và đồ án tốt nghiệp một cách tốt đẹp. Nhóm xin gửi lời cảm ơn đặc biệt đến thầy Nguyễn Thanh Hải đã tận tình hướng dẫn, góp ý và tạo điều kiện để nhóm thực hiện có thể hoàn thành đề tài này một cách tốt nhất. Đề tài tuy được thực hiện với sự cẩn thận và cố gắng của nhóm nhưng vẫn không thể tránh khỏi thiếu sót, kính mong nhận được sự góp ý của các quý thầy cô để nhóm thực hiện rút ra được nhiều bài học kinh nghiệm quý báu qua đồ án này. Nhóm thực hiện đề tài: Nguyễn Thành Tâm Hồ Minh Thái Trang i
- TÓM TẮT Công nghệ kỹ thuật điện tử nói chung hay công nghệ không dây nói riêng đang ngày càng đóng vai trò quan trọng giúp con người có thể tạo ra những sản phẩm mới, đa năng, hiện đại trong hầu hết các lĩnh vực như công nghiệp, nông nghiệp, dịch vụ, y tế, quốc phòng, Dựa trên những kiến thức đã học trong chương trình đào tạo và ngoài cuộc sống thực tiễn, nhóm thực hiện đề tài đã quyết định nghiên cứu, thiết kế và thi công một mô hình thu thập, giám sát thông số và điều khiển thiết bị thông qua hệ thống nút nhấn và sóng điện thoại di động dành cho hồ nuôi cá. Mô hình hệ thống được thiết kế có hai chương trình điều khiển tự động và chương trình điều khiển bằng tay tùy theo nhu cầu sử dụng của con người. Để giải quyết các yêu cầu và vấn đề của mô hình, nhóm thực hiện tiến hành xem xét các phương pháp lựa chọn, tính toán, thiết kế phần cứng mạch điện tử và phần mềm của hệ thống. Về phần cứng, nhóm lựa chọn Board vi xử lí Arduino Mega 2560 làm bộ trung tâm xử lý kết nối các mạch cảm biến nhiệt độ nước và độ pH, mạch thời gian thực DS1307, mạch giao tiếp từ xa Module Sim800L, mạch nút nhấn – hiển thị LCD và mạch kích relay điều khiển thiết bị. Bên cạnh đó, nhóm cũng thiết kế một mạch báo mất nguồn và chuyển nguồn pin để dự phòng cho trường hợp mất điện hệ thống. Về phần mềm, nhóm đã nghiên cứu và thiết kế một giao diện hiển thị trên màn hình LCD để người dùng có thể giám sát thông tin dữ liệu và điều khiển thiết bị. Dữ liệu được giám sát gồm có nhiệt độ nước, độ pH, giờ hẹn bật tắt và trạng thái hoạt động của các thiết bị. Người dùng còn có thể tương tác với giao diện qua hệ thống nút nhấn để cài đặt và chỉnh sửa giờ hẹn bật tắt tự động thủ công các thiết bị. Ngoài ra, hệ thống được lập trình có thể tự động gửi tin nhắn điện thoại cảnh báo về dữ liệu cảm biến sau đó phát tín hiệu điều khiển cho các thiết bị giúp kiểm soát khi giá trị vượt ngưỡng. Mô hình đề tài sau khi hoàn thành đã đáp ứng được phần lớn yêu cầu đề ra và tính đa năng của hệ thống tuy nhiên vẫn còn những mặt hạn chế về sự chắc chắn, ổn định, tính thẩm mỹ và hiệu quả áp dụng thực tiễn. Trang ii
- ABSTRACT Electronic Technology in general and Wireless Technology in particular have been importantly contributing to help people create new, modern, multifunctional products in industry, agriculture, service, healthcare and military, Based on knowledge achieved in study program and real life, our group decided to research, design and build a model that could collect, monitor data and control devices via buttons system and telephone system. The model is specially designed for aquarium and to have both manual program and auto program depend on user’s demand. To resolve the model’s requirements and problems, our group has considered some of the choices, computations, designs of our system’s electronic circuit and programs. About electronic circuit, our group chose the Arduino Mega 2560 as the “central processing unit” connecting to sensors, IC DS1307, Module Sim800L, buttons-LCD system and relay circuit. In addtion, our group also designed a circuit which could alert the power failure and pin power transition. About programs, our group investigated and designed a LCD interface program for user to monitor the data and control devices. The data monitored here include temperature, pH, setting time and devices operating status. The user can also interact with the LCD interface program via buttons system to set and edit time to turn on/off devices. Furthermore, the system was programmed to automatically send phone messages alerting about sensors data and then control devices itself to handle the situation when the value becomes too high. The completed model has fulfilled most of the requirements and the system’s multifunction but there are still disadvantages about reliability, stability, esthetics and reality. Trang iii
- MỤC ỤC ỜI CẢM ƠN i TÓM TẮT ii ABSTRACT iii D NH MỤC HÌNH ẢNH VÀ BẢNG BIỂU vi CHƯƠNG 1: TỔNG QU N 1 1.1. Giới thiệu tình hình nghiên cứu hiện nay, lí do chọn đề tài 1 1.2. Mục tiêu của đề tài 1 1.3. Tính cấp thiết của đề tài 2 1.4. Đối tượng và phạm vi nghiên cứu 2 1.5. Giới hạn của đề tài 2 1.6. Bố cục của Báo cáo Đồ án 2 CHƯƠNG 2: TÍNH T ÁN VÀ THIẾT KẾ PHẦN CỨNG HỆ THỐNG 4 2.1. Mô tả hệ thống 4 2.2. Sơ đồ khối của hệ thống 4 2.3. Nguyên lý hoạt động của hệ thống 5 2.4. Tính toán, thiết kế các khối 6 2.4.1. Khối xử lí trung tâm 6 2.4.2. Khối kích relay điều khiển thiết bị 8 2.4.3. Khối cảm biến 9 2.4.4. Khối thời gian thực 12 2.4.5. Khối giao tiếp từ xa 14 2.4.6. Khối nút nhấn và hiển thị LCD 16 2.4.7. Khối nguồn 17 2.4.7.1. Mạch chuyển nguồn Pin cho Khối nguồn 17 2.4.7.2. Mạch báo mất điện 19 CHƯƠNG 3: THIẾT KẾ PHẦN MỀM HỆ THỐNG 20 3.1. Giao diện LCD 20 Trang iv
- 3.2. Giải thuật cho chương trình nút nhấn 21 3.3. Giải thuật chương trình tự động điều khiển các thiết bị giờ hẹn 25 3.4. Giải thuật chương trình tự động gửi tin nhắn cảnh báo và điều khiển relay theo nhiệt độ nước 27 3.5. Giải thuật đo cảm biến nhiệt độ nước 28 3.6. Giải thuật đo cảm biến pH 28 3.7. Giải thuật chương trình cho Module Sim800L 30 3.7.1. Giải thuật chương trình cấu hình Module Sim800L 30 3.7.2 Giải thuật chương trình con Module Sim800L gửi tin nhắn 32 CHƯƠNG 4: KẾT QUẢ, HƯỚNG DẪN SỬ DỤNG, KIỂM TR , ĐÁNH GIÁ, NHẬN XÉT 33 4.1. Hình ảnh mạch điện tử của hệ thống 33 4.1.1. Mạch chính 33 4.1.2. Mạch relay nối thiết bị 34 4.1.3. Mạch chuyển nguồn và mạch báo mất điện 35 4.2. Mô hình hệ thống sau khi lắp ráp mạch 37 4.3. Hướng dẫn sử dụng nút nhấn và giao diện LCD 40 4.4. Kiểm tra, đánh giá và nhận xét kết quả 43 CHƯƠNG 5: KẾT UẬN VÀ HƯỚNG PHÁT TRIỂN 45 5.1. Kết luận 45 5.1.1. Ưu điểm 45 5.1.2. Nhược điểm 45 5.2. Hướng phát triển 45 TÀI IỆU TH M KHẢ 46 PHỤ ỤC 47 Trang v
- D NH MỤC HÌNH ẢNH VÀ BẢNG BIỂU Hình 2.1 Sơ đồ khối hệ thống 5 Hình 2.2. Arduino Mega 2560 7 Hình 2.3. Khối xử lý trung tâm Arduino Mega 2560 8 Hình 2.4. Sơ đồ kết nối Khối kích relay 8 Hình 2.5. Cảm biến DS18B20 9 Hình 2.6. Sơ đồ kết nối cảm biến DS18B20 10 Hình 2.7. Bộ cảm biến ph DFRobot 11 Hình 2.8. Sơ đồ kết nối cảm biến pH 12 Hình 2.9. Hai gói cấu tạo chip DS1307 12 Hình 2.10. Tổ chức bộ nhớ của IC DS1307 13 Hình 2.11. Sơ đồ kết nối mạch thời gian thực 14 Hình 2.12. Module Sim800L 14 Hình 2.13. Sơ đồ kết nối Module Sim 15 Hình 2.14. Mạch nút nhấn 16 Hình 2.15. Mạch kết nối LCD 16 Hình 2.16. Khối nguồn 17 Hình 2.17. Mạch chuyển nguồn cho Khối nguồn 18 Hình 2.18. Pin sạc 18650 Panasonic 3.7V- 2A 18 Hình 2.19. Mạch báo mất điện 19 Hình 3.1. Khái quát phần mềm hệ thống 20 Hình 3.2. Giao diện LCD phần mềm hệ thống 21 Hình 3.3. Lưu đồ giải thuật cho phím chuyển trang giao diện chính 22 Hình 3.4. Lưu đồ giải thuật cho phím Mode 23 Hình 3.5. Lưu đồ giải thuật chương trình phím Up 24 Hình 3.6. Lưu đồ giải thuật chương trình tự động bật máy cho ăn theo giờ hẹn 25 Hình 3.7. Lưu đồ giải thuật chương trình tự động điều khiển đèn theo giờ hẹn 26 Hình 3.8. Lưu đồ giải thuật chương trình tự động điều khiển relay theo nhiệt độ nước 27 Hình 3.9. Lưu đồ giải thuật đo cảm biến nhiệt độ nước 28 Hình 3.10. Lưu đồ giải thuật đo cảm biến pH 29 Hình 3.11. Lưu đồ giải thuật chương trình cấu hình Module Sim800L 31 Hình 3.12. Lưu đồ giải thuật chương trình con Module Sim800L gửi tin nhắn 32 Hình 4.1. Mạch in mạch chính 33 Hình 4.2. Mạch chính sau khi thi công 33 Trang vi
- Hình 4.3. Mạch chính sau khi thi công 34 Hình 4.4. Mạch chính sau khi thi công 34 Hình 4.5. Mạch in mạch relay nối thiết bị 35 Hình 4.6. Mạch relay sau khi thi công 35 Hình 4.7. Mạch in mạch chuyển nguồn 36 Hình 4.8. Mạch chuyển nguồn sau khi thi công 36 Hình 4.9. Mạch báo mất điện 37 Hình 4.10. Mô hình hệ thống nhìn từ trên xuống 37 Hình 4.11. Mô hình hệ thống nhìn từ mặt bên 38 Hình 4.12. Mô hình hệ thống nhìn từ trên xuống 39 Hình 4.13. Mặt trên mô hình hệ thống 39 Hình 4.14. Mặt trong mô hình hệ thống 40 Hình 4.15. Nút nhấn trên mạch 41 Hình 4.16. Trang khởi động giao diện LCD 41 Hình 4.17. Giao diện hiển thị thời gian hiện tại, nhiệt độ nước và độ pH 42 Hình 4.18. Giao diện cài đặt hẹn giờ bật máy cho ăn, bật/tắt đèn, máy lọc, máy sủi oxi 42 Hình 4.19. Trạng thái hoạt động các thiết bị 43 Hình 4.20. Giao diện cài đặt ngưỡng cảnh báo tin nhắn cho nhiệt độ nước và độ ph, điều khiển thiết bị qua nút nhấn 43 Bảng 2.1. Thông số kĩ thuật cảm biến pH DFRobot 11 Bảng 2.2. Thông số kĩ thuật của Module Sim800L 15 Trang vii
- CHƯƠNG 1: TỔNG QU N 1.1. Giới thiệu tình hình nghiên cứu hiện nay, lí do chọn đề tài Việc nghiên cứu và ứng dụng công nghệ kỹ thuật điện tử vào các hệ thống giám sát – điều khiển nông nghiệp nay đã không còn là điều mới mẻ đối với Việt Nam nhưng vẫn là một trong những vấn đề quan trọng cần được xúc tiến thực hiện để góp phần phát triển nền nông nghiệp còn mang nặng tính chất thủ công của nước ta, nhất là trong bối cảnh nông nghiệp vẫn còn đóng vai trò không nhỏ trong toàn bộ nền kinh tế của Việt Nam. Một trong những lĩnh vực nông nghiệp được quan tâm phát triển hàng đầu là nuôi trồng thủy sản. “Tổng sản lượng thủy sản ước đạt hơn 6,7 triệu tấn, trong đó, khai thác gần 3,1 triệu tấn, nuôi trồng trên 3,6 triệu tấn, diện tích nuôi trồng đạt 1,3 triệu ha, kim ngạch xuất khẩu khoảng 7 tỷ USD. Thủy sản vẫn là mũi nhọn của ngành nông nghiệp” (Ngành thủy sản tổng kết hoạt động năm 2016, www.thuysanvietnam.com.vn). Ngành này mỗi năm mang lại lợi nhuận tương đối ổn định cho các hộ nông dân nhưng có lúc vẫn xảy ra tình trạng lỗ nặng do các sinh vật thủy sản đột ngột chết hàng loạt không thể kiểm soát. Điển hình là các vụ như “Cá chết hàng loạt tại khu nuôi trồng thủy sản huyện Phú Quý” (2016, www.phuquy.binhthuan.gov.vn) hay “Cá nuôi lồng trên sông Mã chết hàng loạt” (2017, www.dantri.com.vn). Nắm bắt được những khó khăn này, các nhóm kĩ sư, các công ty công nghệ đã bắt đầu thực hiện nghiên cứu và ứng dụng các hệ thống mạch điện tử (vi điều khiển, công nghệ không dây, ) có chức năng giám sát thông số chất lượng nước, điều khiển các thiết bị hỗ trợ, cả ở gần và từ xa, giúp người nông dân theo dõi kịp thời chất lượng môi trường sống của các sinh vật thủy sản, từ đó đưa ra phương án xử lý thích hợp, giảm thiểu các biến cố bất ngờ. Với tình hình nghiên cứu như vậy, nhóm thực hiện hi vọng đề tài “Thiết kế và thi công hồ cá đa năng sử dụng board Arduino Mega 2560” có thể nghiên cứu, tìm hướng giải quyết hiệu quả các vấn đề thực tiễn của các hệ thống giám sát – điều khiển nuôi trồng thủy sản hiện nay, thông qua việc thi công và hoàn thiện một mô hình mini. 1.2. Mục tiêu của đề tài Đề tài thiết kế và thi công mô hình hồ cá đa năng tự động sử dụng board vi điều khiển Arduino Mega 2560 thực hiện các công việc như hẹn giờ cho cá ăn, lọc nước, bật tắt đèn. Ngoài ra, đề tài còn cho phép người dùng có thể giám sát mực 1
- nước, chất lượng môi trường nước như nhiệt độ nước, độ pH và điều khiển các thiết bị từ xa thông qua điện thoại di động. 1.3. Tính cấp thiết của đề tài Qua tìm hiểu các đề tài đồ án của các cựu sinh viên, nhóm nhận thấy phần lớn đề tài sử dụng các vi điều khiển 8 bit như các vi điều khiển họ PIC, AVR, Các vi điều khiển này rất hạn chế về số lượng cổng giao tiếp (cả về các chuẩn giao tiếp đặc biệt và các cổng tín hiệu số) do đó sẽ không đáp ứng được yêu cầu đa năng mà đề tài đặt ra. Nhóm nhận thấy Board vi điều khiển Arduino Mega 2560 vừa có số lượng cổng giao tiếp đáp ứng yêu cầu, vừa có quy mô vừa phải và giá thành phù hợp để được chọn làm Board xử lý trung tâm cho hệ thống. Hơn nữa, đây là một Board vi điều khiển đang rất phổ biến, cộng đồng nghiên cứu về Arduino đang được phát triển mạnh mẽ. Đề tài cũng nghiên cứu và đưa vào ứng dụng Module Sim mới nhất, đây là một trong những loại Module hiện đại, phù hợp cho chức năng giám sát từ xa qua điện thoại di động. Đề tài hướng đến sự đa năng cho hệ thống, giúp người dùng có thể điều khiển được hầu hết các thiết bị hỗ trợ quan trọng nhất cho hồ cá. 1.4. Đối tượng và phạm vi nghiên cứu Các yếu tố ảnh hưởng đến chất lượng sống của loài cá. Board vi điều khiển Arduino Mega 2560. Giao tiếp cảm biến đo nhiệt độ nước, độ pH, đo khoảng cách. Lập trình hẹn giờ điều khiển thiết bị với module thời gian thực. Giao tiếp Module Sim để giám sát các thông số. 1.5. Giới hạn của đề tài Đề tài thực hiện trên mô hình. Cảm biến pH được sử dụng có khoảng nhiệt độ nước đo từ 0 – 60 độ C, tốc độ phản ứng < 1 phút. Cảm biến đo nhiệt độ nước DS18B20 được sử dụng có ngưỡng nhiệt độ nước từ -10 đến 125 độ C. 1.6. Bố cục của Báo cáo Đồ án Chương 1: Tổng Quan Tổng quan, lí do lựa chọn đề tài, mục tiêu và giới hạn đề tài, đối tượng và phạm vi nghiên cứu. Chương 2: Tính toán và thiết kế phần cứng hệ thống 2
- Chương này mô tả chi tiết về phần cứng hệ thống, sơ đồ khối, sơ đồ mạch, giải thích mạch nguyên lý, các phương pháp tính toán và lựa chọn linh kiện cho phần cứng hệ thống. Chương 3: Thiết kế phần mềm Chương 3 trình bày và giải thích giải thuật của các chương trình chính, chương trình con phần mềm hệ thống. Chương 4: Kết quả, hướng dẫn sử dụng, kiểm tra, đánh giá, nhận xét Chương 4 trình bày hình ảnh kết quả mạch và mô hình của hệ thống. Kiểm tra, đánh giá và nhận xét hệ thống. Chương 5: Kết luận và hướng phát triển Chương 5 trình bày kết luận và hướng phát triển của đồ án. 3
- CHƯƠNG 2: TÍNH T ÁN VÀ THIẾT KẾ PHẦN CỨNG HỆ THỐNG Chương này trình bày về mô tả khái quát hệ thống, sơ đồ khối, nguyên lý hoạt động của hệ thống và tính toán, thiết kế phần cứng hệ thống. 2.1. Mô tả hệ thống Hệ thống được thiết kế có các tính năng sau: Cho phép người dùng tùy chỉnh hẹn giờ tự động bật tắt đèn hồ cá, lọc nước, cho cá ăn, bật máy sủi oxi. Đo độ pH, nhiệt độ nước bằng cảm biến và hiển thị lên LCD cho người dùng theo dõi. Tự động gửi tin nhắn cảnh báo cho người dùng nếu nhiệt độ nước và độ pH vượt cao quá hoặc xuống mức cho phép. Tự động bật tắt quạt làm mát và que sưởi để kiểm soát nhiệt độ nước ở mức thích hợp. Ngưỡng nhiệt độ nước và độ pH có thể được cài đặt qua nút nhấn và giao diện LCD. Cho phép người dùng điều khiển các thiết bị qua hệ thống nút nhấn gắn trên hồ cá. 2.2. Sơ đồ khối của hệ thống Hệ thống được thiết kế gồm có 7 phần chính được mô tả như hình 2.1. Khối xử lý trung tâm: board Arduino Mega 2560 xử lý tín hiệu nhận được từ khối cảm biến, giao tiếp với Module Sim800L và Khối thời gian thực, hiển thị dữ liệu xử lý lên LCD và gửi tín hiệu cho Khối kích relay điều khiển thiết bị. Khối cảm biến: gồm 2 cảm biến là cảm biến nhiệt độ nước DS18B20 và cảm biến pH của hãng DFRobot. Khối thời gian thực: là mạch IC thời gian thực DS1307 cung cấp thời gian thực cho board Arduino để so sánh với thời gian hẹn giờ được cài đặt bởi người dùng. 4
- Khối nút nhấn và hiển thị LCD Khối cảm biến Khối Khối thời Khối xử lí Nguồn gian thực trung tâm Khối giao tiếp từ xa Khối kích Relay điều khiển thiết bị Hình 2.1 Sơ đồ khối hệ thống Khối giao tiếp từ xa: gồm Module Sim800L và Điện thoại di động của người dùng, có chức năng: gửi tin nhắn cảnh báo về dữ liệu cảm biến tới điện thoại của người dùng, gửi tin nhắn cảnh báo mất điện. Khối kích relay điều khiển thiết bị: mạch nhận tín hiệu điều khiển từ board Arduino kích hoạt cho các thiết bị hoạt động. Khối nguồn: gồm mạch nguồn sử dụng IC LM2576 để cho ra điện áp +4.5V DC - dòng 3A, mạch chuyển nguồn Pin khi mất điện và mạch báo mất điện. 2.3. Nguyên lý hoạt động của hệ thống Khi được cấp nguồn, board xử lý Arduino Mega 2560 lập tức đọc dữ liệu gửi về từ cảm biến nhiệt độ nước DS18B20 và cảm biến pH, hiển thị lên LCD. Khi người dùng thực hiện cài đặt hẹn giờ bật tắt cho các thiết bị, bằng cách tương tác qua nút nhấn và giao diện LCD, board xử lý sẽ lưu lại giờ hẹn vào các biến, khi so sánh thấy thời gian hẹn giờ bằng với thời gian thực đọc được từ IC thời gian thực DS1307, board xử lý ra tín hiệu cho Khối kích relay điều khiển thiết bị như mong muốn, điều này cũng xảy ra khi người dùng bật tắt thủ công các thiết bị ngay lập tức bằng các nút nhấn trên mạch. Đồng thời, board xử lý cũng kiểm tra trạng thái hoạt động của các thiết bị và hiển thị lên LCD cho người dùng theo dõi. 5
- Bên cạnh đó, board xử lý thường xuyên kiểm tra nhiệt độ nước và độ pH hiện tại của nước. Nếu giá trị này vượt quá hoặc xuống quá ngưỡng cho phép thì sẽ phát tín hiệu cho Module Sim800L thực hiện gửi tin nhắn cảnh báo cho người dùng, đồng thời tự động bật/tắt quạt làm hoặc que sưởi để kiểm soát nhiệt độ nước ở mức thích hợp cho cá. 2.4. Tính toán, thiết kế các khối 2.4.1. Khối xử lí trung tâm Vi điều khiển là bộ não xử lý trung tâm của hệ thống nên việc lựa chọn vi điều khiển thích hợp là điều rất quan trọng. Nhóm đã chọn board Arduino Mega 2560 cho đề tài dù trước đó có nhiều phương án cho vị trí này như: PIC, board ARM, board Raspberry Pi. Vi điều khiển PIC là họ vi điều khiển giá thành thấp, dễ tiếp cận, tuy nhiên lại hạn chế về số lượng các cổng giao tiếp. Trong khi PIC16F887A chỉ có 1 cổng UART thì Arduino có tới 4 cổng UART, đề tài đã sử dụng 1 cổng UART cho Module Sim, do đó nếu muốn sử dụng thêm một số module hay cảm biến kết nối qua UART thì Arduino rõ ràng là một sự lựa chọn tốt hơn. Hơn nữa, đề tài của nhóm sử dụng khá nhiều thiết bị cũng như cảm biến (7 thiết bị, 3 cảm biến, LCD, v v ), do đó nếu sử dụng PIC thì đề tài sẽ không thể có đủ cổng giao tiếp ngoại vi để sử dụng. Board ARM hay Raspberry Pi cũng là các phương án lí tưởng cho đề tài. Tuy nhiên, 2 board này có giá thành rất cao (gấp nhiều lần Arduino) và do đó, nó được thiết kế có sẵn rất nhiều cổng giao tiếp ngoại vi mà đề tài không dùng đến, gây ra sự lãng phí không cần thiết, với Arduino thì chúng ta chỉ cần mua các shield mạch giao tiếp cần thiết và gắn trực tiếp lên trên board Arduino. Hơn nữa, board ARM lại khó tiếp cận và lập trình hơn so với Arduino vì các thư viện phần mềm cho board này là không nhiều, người dùng phải tự viết hoặc chỉnh sửa rất nhiều từ các thư viện khác. Các thư viện phần mềm mà nhà xản xuất hay cộng đồng Arduino tạo ra là vô cùng lớn và đa dạng, chúng ta có thể sử dụng các thư viện này để hỗ trợ lập trình giao tiếp cảm biến, điều khiển động cơ, mà không cần phải tìm hiểu từ đầu, giúp tiết kiệm thời gian lập trình cho các dự án đề tài lớn. 6
- Hình 2.2. Arduino Mega 2560 Arduino Mega 2560 (hình 2.2) là Board vi xử lý sử dụng chip Atmega2560, gồm có các chân giao tiếp như sau: 5 Chân GND, 3 chân +5V, 1 chân +3.3V 1 nút reset 16 chân analog 4 chân UART 54 chân digital (trong đó có 15 chân có thể được sử dụng như những chân PWM là từ chân số 2 → 13 và chân 44, 45, 46). 6 ngắt ngoài: chân 2 (interrupt 0), chân 3 (interrupt 1), chân 18 (interrupt 5), chân 19 (interrupt 4), chân 20 (interrupt 3), và chân 21 (interrupt 2). 16 chân vào analog (từ A0 đến A15). 6 Chân lập trình ISP và nhiều thành phần khác 7
- Hình 2.3. Khối xử lý trung tâm Arduino Mega 2560 2.4.2. Khối kích relay điều khiển thiết bị Hình 2.4. Sơ đồ kết nối Khối kích relay Khối kích relay sử dụng transistor C1815 để kích cho relay hoạt động (xem hình 2.21). Chức năng của các linh kiện trong mạch như sau: Điện trở 10K có tác dụng ổn định cực B của transistor C1815. 8
- Led D2 có tác dụng báo tín hiệu điều khiển từ Arduino, vừa có tác dụng cách ly dòng điện sự cố trả về gây hư hỏng mạch Arduino. Ở đây ta không cần mắc điện trở hạn dòng cho Led vì dòng tín hiệu ngõ ra Arduino có giá trị rất nhỏ. Diode 1N4007 được song song với cuộn dây relay để dập xung ngược, bảo vệ transistor đóng mở dòng cho relay. Khi cuộn dây relay bị ngắt dòng điện sẽ phát sinh dòng điện cảm ứng cùng chiều với dòng ban đầu, dòng điện này sẽ được diode dập do nó được phân cực thuận, do đó mối nối CE của transistor không bị phá hủy bởi dòng điện cảm ứng. 2.4.3. Khối cảm biến Hình 2.5. Cảm biến DS18B20 DS18B20 (hình 2.9) là cảm biến kĩ thuật số đo nhiệt độ nước giao tiếp theo chuẩn 1 dây (1-wire), có chức năng cảnh báo nhiệt độ nước khi vượt ngưỡng và có thế cấp nguồn từ chân data (chế độ parasite power), không bị suy hao tín hiệu đường dây dài. Cảm biến nhiệt độ nước DS18B20 có mã nhận diện lên đến 64-bit, vì vậy ta có thể đo nhiệt độ nước với nhiều con DS18B20 mà chỉ dùng 1 dây dẫn duy nhất để giao tiếp với các IC này. Ứng dụng: đo nhiệt độ nước bên trong các tòa nhà, thiết bị, máy móc, hệ thống giám sát; đo những nơi cách xa board điều khiển, hoặc trong môi trường ẩm ướt. Thông số kỹ thuật: + Điện áp cấp: 3~5v. 9
- + Dải đo: Có thể đo nhiệt độ nước trong khoảng -55 -> +125°C. Với khoảng nhiệt độ nước là -10°C to +85°C thì độ chính xác là ±0.5°C, ±0.25°C, ±0.125°C, ±0.0625°C theo số bit cấu hình. + Cung cấp nhiệt độ nước với độ phân giải 9, 10, 11, 12 bit, tùy theo sử dụng. Trong trường hợp không cài đặt thì nó tự động đo ở chế độ 12 bit. + Chuẩn giao tiếp 1 Wire. + Thời gian chuyển đổi nhiệt độ nước tối đa là 750ms cho mã hóa 12 bit. + Kích thước: 90cm - đường kính đầu cảm biến: 4mm. + Dòng tiêu thụ tại chế độ nghỉ rất nhỏ. Hình 2.6. Sơ đồ kết nối cảm biến DS18B20 Sơ đồ kết nối cảm biến nhiệt độ nước với Board Arduino được cho như hình 2.10. Trên thị trường có các loại cảm biến nhiệt độ nước như LM35, TMP36, nhưng để đo nhiệt độ nước nước và so sánh về độ ổn định thì DS18B20 là phương án tối ưu nhất cho hệ thống, sai số chỉ 0.5 độ C. Hơn nữa, 2 cảm biến LM35 và TMP36 giao tiếp qua analog, DS18B20 lại dùng cơ chế truyền tín hiệu 1-wire, cơ chế này cho phép chúng ta đọc nhiều con DS18B20 trên cùng 1 dây. Ta cần mắc 1 con điện trở kéo lên 4.7K giữa nguồn 5V và chân tín hiệu của DS18B20, mục đích là để ngõ vào vi điều khiển không bị nhiễu khi không có tín hiệu truyền, giá trị điện trở dựa theo các yếu tố sau: Giá trị này không được quá thấp để tránh lãng phí dòng điện cũng như không làm ảnh hưởng đến toàn mạch. Giá trị điện trở kéo lên này kết hợp với trở kháng của đầu vào vi điều khiển tạo ra mạch phân áp, điện áp tại đầu vào này sẽ phụ thuộc vào giá trị điện trở kéo lên. Nếu giá trị này quá cao sẽ dẫn đến sụt áp đầu vào nhiều, vi điều khiển không phân biệt được chính xác trạng thái đầu vào. 10
- Thông thường ta chọn giá trị điện trở kéo lên RPULL-UP khoảng bằng 1/10 trở kháng đầu vào của vi điều khiển (nằm trong khoảng 100kohm – 1Mohm): ( 2.1) Từ đó, ta nên chọn 4.7kohm là thỏa điều kiện. Hình 2.7. Bộ cảm biến ph DFRobot Bộ cảm biến pH được sản xuất bởi hãng DFRobot và được thiết kế đặc biệt cho các board Arduino. Đây là loại cảm biến pH sử dụng cho phòng thí nghiệm, gồm có LED báo tín hiệu, đầu nối BNC và một module chuyển đổi analog kèm theo, ta đưa ngõ ra module này vào một ngõ vào analog của board Arduino để xử lý dữ liệu, từ đó xuất ra được giá trị pH (như được mô tả ở sơ đồ kết nối hình 2.12). Bảng 2.1. Thông số kĩ thuật cảm biến pH DFRobot Thông số Giá trị Nguồn cấp +5VDC Tín hiệu trả về Analog Khoảng đo pH 0-14 pH Khoảng nhiệt độ 0-60 độ C nước đo 11
- S K L 0 0 2 1 5 4



