ời nói đầu Lời đầu tiên, cả nhóm xin gửi lời cảm ơn đến thầy Phạm Thi Vương và cô trợ giảng Huỳnh Hồ Thị Mộng Trinh. Thầy và cô đã nhiệt tình giảng dạy trên lớp, hỗ trợ những thông tin cần thiết và giải đáp những thắc mắc cho nhóm và các bạn trong suốt quá trình thực hiện đề tài. Thông qua những bài giảng trên lớp về môn học của Thầy, các thành viên trong nhóm đã tiếp thu được nhiều kiến thức hữu ích liên quan . Qua đó, giúp chúng em có thể hiểu và nắm bắt được quy trình phát triển phần mềm hướng đối tượng để ứng dụng vào một hệ thống hay chương trình phần mềm hoàn chỉnh. Đề tài “Quản Lý Quán Café” hoàn thành là kết quả của quá trình nghiên cứu nghiêm túc của các thành viên của cả nhóm trong quá trình học tập và tiếp thu kiến thức dưới sự hướng dẫn tận tình của giảng viên hướng dẫn và các tài liệu được giảng viên hướng dẫn chia sẻ qua các kênh giao tiếp trong suốt quá thời gian giảng dạy của học kỳ. Nhóm sinh viên thực hiện. . Môi trường phát triển và môi trường triển khai 8.1.1. Môi trường phát triển ứng dụng: Hệ điều hành: Windows 8.1 và Windows 10 Hệ quản trị cơ sở dữ liệu Microsoft SQL 2017 Công cụ dùng để phân tích, thiết kế: Microsoft Visio 2016 Công cụ đã dùng để xây dựng ứng dụng: Visual Studio 2015 Các thư viện đã sử dụng: Không có 8.1.2. Môi trường triển khai ứng dụng: Hệ điều hành: Microsoft Windows Cần cài đặt .Net Framework 4.5 8.2. Kết quả đạt được Đã phân tích, thiết kế tất cả các chức năng, và các chức năng cũng đã cài đặt hoàn chỉnh. Điểm nhấn của phần mềm: ‒ Giao diện đẹp ‒ Ứng dụng được xây dựng
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN ֎֎֎ KHOA VẬT LÝ-VẬT LÝ KỸ THUẬT CHUYÊN NGÀNH VẬT LÝ ĐIỆN TỬ BÁO CÁO ĐỒ ÁN MÔN HỌC Đề tài: XÂY DỰNG HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT MÁY ẤP TRỨNG MINI TỰ ĐỘNG KẾT NỐI QUA WIFI Giáo viên hướng dẫn: Thầy Nguyễn Chí Nhân Nhóm 5: * Nguyễn Ngọc Thảo Nhi * Nguyễn Thị Quỳnh * Vũ Nhật Trường TP HỒ CHÍ MINH, NĂM 2019 Máy ấp trứng mini tự động Nhóm LỜI CẢM ƠN Để hồn thành tiểu luận này, chúng em xin gửi lời cảm ơn chân thành sâu sắc đến thầy Nguyễn Chí Nhân Thầy tận tình dạy cho chúng em suốt q trình học tập mơn “Thiết kế hệ thống nhúng” với truyền đạt kiến thức kinh nghiệm quý báu tạo điều kiện thuận lợi cho chúng em thực tốt thực nghiệm Chúng em sinh viên năm ba, kiến thức tảng thí nghiệm chúng em chưa tiếp xúc nhiều anh chị khố Do đó, để hiểu công việc thực nghiệm cách cặn kẽ sâu sắc chúng em thật cịn nhiều thiếu sót vấn đề Nhưng thứ giúp chúng em dễ dàng chúng em nhận bảo tận tình thầy cô Cảm ơn tất thầy cô giúp chúng em hiểu thêm học nhiều điều thú vị môn Vật Lý Điện Tử, cụ thể cách sử dụng vi điều khiển ESP8266, module NodeMCU biết cách sử dụng chúng để làm máy ấp trứng mini Một lần chúng em xin gửi lời cảm ơn đến tất người giúp đỡ chúng em suốt thời gian vừa qua Tp Hồ Chí Minh, năm 2019 Sinh viên – Nhóm Máy ấp trứng mini tự động Nhóm LỜI MỞ ĐẦU Đất nước ta giai đoạn cơng nghiệp hóa, đại hóa nên Khoa Học – Kỹ Thuật mối quan tâm hàng đầu Cùng với phát triển nhanh chóng Khoa Học – Kỹ Thuật, ngành điện tử tự động có bước phát triển nhảy vọt với linh kiện bán dẫn, hệ thống nhúng,… kèm theo nhiều ứng dụng xuất nhằm phục vụ cho nhu cầu sinh hoạt sản xuất người Bộ môn Vật lý Điện tử chuyên nghiên cứu linh kiện vi mạch điện tử, đào tạo chuyên sâu Thiết kế Vi mạch Hệ thống nhúng, mơ hình điện tử- MEMS, hệ thống tự động Robot Ngoài ra, chúng em trau dồi thêm kiến thức tảng qua môn học Trong đó, mơn “Thiết kế hệ thống nhúng” giúp ích chúng em nhiều việc lập trình vi điều khiển, hiểu thêm ứng dụng thiết bị dụng cụ điện tử Sau học số loại vi điều khiển cảm biến thông dụng cảm biến nhiệt độ, độ ẩm, cảm biến độ ẩm đất, tiểu luận trình bày điện thoại thơng minh có sử dụng “App Blynk ”để giám sát, điều khiển thông số thiết bị cho máy ấp trứng tự động Máy ấp trứng mini tự động Nhóm MỤC LỤC LỜI CẢM ƠN LỜI MỞ ĐẦU MỤC LỤC DANH MỤC HÌNH ẢNH CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1.1 KĨ THUẬT ẤP TRỨNG 1.1.1 Một số yêu cầu ấp trứng 1.1.2 Bảo quản trứng ấp 1.1.2.1 Xếp trứng 1.1.2.2 Nhiệt độ 1.1.2.3 Độ ẩm 1.1.3 Xử lý trứng ấp 10 1.1.3.1 Phương pháp xông trứng 10 1.1.3.2 Xếp trứng vào khay 10 1.1.4 Các thao tác kỹ thuật ấp trứng 10 1.1.4.1 Đảo trứng 10 1.1.4.1a Mục đích việc đảo trứng 10 1.1.4.1b Phương pháp đảo trứng 10 1.1.4.2 Độ ẩm 11 1.2 CÁC LOẠI LINH KIỆN SỬ DỤNG TRONG MÁY ẤP TRỨNG MINI 11 1.2.1 Sơ lược NodeMCU 11 1.2.1.1 Vi điều khiển ESP8266EX 11 1.2.1.1a Sự đời ESP8266 11 1.2.1.1b Thông số phần cứng 12 1.2.1.2 Vi điều khiển NodeMCU 13 1.2.1.2a Sự phát triển NodeMCU 13 1.2.1.2b Thông số kỹ thuật NodeMCU 14 Máy ấp trứng mini tự động Nhóm 1.2.2 Cảm biến nhiệt độ độ ẩm DHT22 15 1.2.2.1 Thông số kỹ thuật 15 1.2.2.2 Nguyên lý hoạt động DHT22 16 1.2.3 Relay 17 1.2.3.1 Sơ lược relay 17 1.2.3.2 Relay điện từ 19 1.2.3.2a Khái niệm 19 1.2.3.2b Cấu tạo relay điện từ 19 1.2.3.2c Thông số 20 1.2.4 Giới thiệu Module LM2596 20 1.2.4.1 Nguyên lý hoạt động 20 1.2.4.2 Thông số kỹ thuật 21 1.2.5 Động bước Servo SG3003 21 1.2.5.1 Nguyên lý hoạt động 21 1.2.5.2 Thông số kỹ thuật S3003 22 1.2.6 Màn hình hiển thị LCD chân giao tiếp I2C 22 1.2.6.1 Màn hình hiển thị LCD 22 1.2.6.2 Thông số kỹ thuật 23 1.2.6.3 Mạch chuyển đổi I2C cho LCD 24 1.2.7 Hệ thống đèn sưởi 25 1.2.8 Hệ thống quạt làm mát 25 CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 26 2.1 MỤC TIÊU THỰC NGHIỆM VÀ SƠ ĐỒ KHỐI HỆ THỐNG 26 2.1.1 Mục tiêu thực nghiệm 26 2.1.2 Sơ đồ khối hệ thống 26 2.2 BLYNK APP 27 2.2.1 Blynk gì? 27 2.2.2 Nguyên lí hoạt động 28 2.2.3 Các thành phần Blynk 28 Máy ấp trứng mini tự động Nhóm 2.2.4 Một số tính đặc điểm Blynk 29 2.2.5 Làm để cài đặt sử dụng Blynk? 30 2.3 THIẾT KẾ LƯU ĐỒ THUẬT TOÁN VÀ VIẾT PHẦN MỀM NHÚNG (FIRMWARE) ĐIỀU KHIỂN: 30 2.3.1 Lưu đồ thuật toán 30 2.3.2 Thiết kế sơ đồ mạch 31 2.3.3 Phân tích nguồn cho hệ thống 33 CHƯƠNG 3: KIỂM TRA HOẠT ĐỘNG CỦA HỆ THỐNG 34 3.1 Các chức hệ thống: 34 3.2 Các hoạt động hệ thống: 35 3.2.1 Các chế độ hoạt động: 35 3.2.2 Hệ thống đèn sưởi: 35 3.2.3 Hệ thống quạt làm mát: 37 3.2.4 Hệ thống đảo trứng: 39 3.2.5 Cảm biến nhiệt độ, độ ẩm hình hiển thị LCD 41 3.3 Mơ hình máy ấp trứng mini: 42 KẾT LUẬN VÀ KIẾN NGHỊ 44 PHỤ LỤC LẬP TRÌNH NHÚNG CHO HỆ THỐNG 45 TÀI LIỆU THAM KHẢO 60 Máy ấp trứng mini tự động Nhóm DANH MỤC HÌNH ẢNH Hình 1.1: Nhiệt độ độ ẩm phải ln đảm bảo trình ấp trứng Hình 1.2: Nên xếp trứng vào khay chuyên dụng cần ý nhiệt độ, độ ẩm bảo quản Hình 1.3: Độ ẩm, nhiệt độ yêu cầu trình ấp trứng 11 Hình 1.4: Vi điều khiển ESP8266EX 15 Hình 1.5: Module NodeMCU 16 Hình 1.6: Sơ đồ chân sơ đồ nguyên lý NodeMCU 16 Hình 1.7: So sánh thơng số kỹ thuật DHT11 DHT22 15 Hình 1.8: Cấu tạo cảm biến nhiệt độ độ ẩm 16 Hình 1.9: Sơ đồ cấu tạo thành phần cảm biến độ ẩm 16 Hình 1.10: Sự phụ thuộc điện trở theo nhiệt độ 17 Hình 1.11: Relay điện 18 Hình 1.12: Relay nhiệt 18 Hình 1.13: Relay số 18 Hình 1.14: Relay điện từ 18 Hình 1.15: Relay điện từ 19 Hình 1.16: Cách đấu nối thường đóng 19 Hình 1.17: 5V Relay module kênh 20 Hình 1.18: Module giảm áp LM2596 21 Hình 1.19: Động Servo S3003 22 Hình 1.20: Màn hình hiển thị LCD 16 x 23 Hình 1.21: Module chuyển đổi I2C dành cho LCD 24 Hình 1.22: Đèn dây tóc sử dụng điện áp xoay chiều 220V với cơng suất lên đến 5W 25 Hình 1.23: Quạt tản nhiệt sử dụng điện áp chiều 12V với công suất 1.05W 25 Hình 2.1: Sơ đồ khối hệ thống 26 Hình 2.2: Giao diện Blynk 27 Hình 2.3: Sơ đồ khối hệ thống kết nối Blynk 28 Hình 2.4: Một số tính Blynk 29 Máy ấp trứng mini tự động Nhóm Hình 2.5: Nguyên lý hoạt động máy ấp trứng mini 30 Hình 2.6: Sơ đồ schematic máy ấp trứng mini 31 Hình 2.7: Bản vẽ Layout (có phủ mass) hệ thống 32 Hình 2.8: Mạch thực tế 32 Hình 3.1: Giao diện Blynk hệ thống chức 35 Hình 3.2: Chương trình điều khiển cơng tắc đèn hai chế độ 36 Hình 3.3: Điều khiển đèn chế độ điều khiển 36 Hình 3.4: Tại nhiệt độ ngưỡng, đèn tự động Bật/Tắt theo giá trị thiết lập 37 Hình 3.5: Chương trình điều khiển hệ thống làm mát hai chế độ 38 Hình 3.6: Điều khiển quạt chế độ điều khiển 38 Hình 3.7: Điều khiển quạt chế độ tự động 39 Hình 3.8: Chương trình điều khiển động Servo hai chế độ 40 Hình 3.9: Hệ đảo trứng chế độ tự động chế độ điều khiển 40 Hình 3.10: Chương trình hiển thị nhiệt độ độ ẩm giao diện Blynk LCD 41 Hình 3.11: Nhiệt độ độ ẩm hiển thị đồng thời Blynk hình LCD 41 Hình 3.12: Hiển thị LCD lắp vào hộp điều khiển 42 Hình 3.13: Mơ hình 3D máy ấp trứng mini 42 Hình 3.14: Mơ hình thực tế 43 Máy ấp trứng mini tự động Nhóm CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1.1 KĨ THUẬT ẤP TRỨNG: Số ngày nở số loại gia cầm: gà khoảng tuần (21 ngày), vịt khoảng tuần (28 ngày), ngan tuần (khoảng 35 ngày) 1.1.1 Một số yêu cầu ấp trứng: • Nhiệt độ từ 370C đến 380C • Trong giai đoạn ấp (1-18 ngày) độ ẩm thích hợp khoảng 55-65% Giai đoạn nở (19-21 ngày) độ ẩm 80-85% • Ln tạo độ thống gió q trình ấp Hình 1.1: Nhiệt độ độ ẩm phải ln đảm bảo trình ấp trứng 1.1.2 Bảo quản trứng ấp: Trứng trước đưa vào bảo quản phải phân loại, chọn trứng đạt tiêu chuẩn ấp đưa vào bảo quản Phòng bảo quản phải tối, khơng có ánh sáng lọt vào Đồng thời bảo quản trứng phải đảm bảo yêu cầu sau: Máy ấp trứng mini tự động Nhóm 1.1.2.1 Xếp trứng: Trứng cho vào khay chuyên dụng, xếp khay nghiêng góc 30 độ, đầu to (đầu buồng khí) hướng lên Đảo trứng lần/ngày (đảo ngược lại 180 độ) Chọn trứng cỡ để khay Khay trứng đưa vào bảo quản phải ghi ngày thu trứng 1.1.2.2 Nhiệt độ: Nhiệt độ bảo quản trứng ấp tốt 15 - 20 độ C, bảo quản trứng - 14 ngày Trong trường hợp bảo quản trứng ngày bảo quản trứng điều kiện nhiệt độ phòng 1.1.2.3 Độ ẩm: Độ ẩm thích hợp để bảo quản trứng 75% RH Ghi chú: Trứng đưa khỏi phòng bảo quản phải làm ấm trở lại cách xếp lên giá phòng ấp - 10 trước đưa trứng vào máy ấp, nhằm tránh trứng bị sốc nhiệt nhiệt độ chênh lệch Hình 1.2: Nên xếp trứng vào khay chuyên dụng cần ý nhiệt độ, độ ẩm bảo quản trứng Máy ấp trứng mini tự động Nhóm SimpleTimer timer; WidgetRTC rtc; WidgetTerminal terminal(V3); String displaycurrenttimepluswifi; float t; float h; int wifisignal; int CTHT = 0; int CD = 0; bool isFirstConnect = true; int alldays; int pos; int val; char Date[16]; char Time[16]; // -Cac ham rieng - BLYNK_CONNECTED() { if (isFirstConnect) { reset_system(); resetManual(); 46 Máy ấp trứng mini tự động Nhóm Blynk.syncAll(); terminal.println("BLYNK STARTING!!!!"); isFirstConnect = false; } } void reset_system() { Blynk.virtualWrite(V1, 0); Blynk.virtualWrite(V6, 0); digitalWrite(CT01, LOW); Blynk.virtualWrite(V7, 0); digitalWrite(CT02, LOW); } void resetManual() { Blynk.virtualWrite(V6, 0); Blynk.virtualWrite(V7, 0); Blynk.virtualWrite(V12, 0); } void sendWifi() { wifisignal = map(WiFi.RSSI(), -105, -40, 0, 100); 47 Máy ấp trứng mini tự động Nhóm } void clockvalue() { int gmthour = hour(); if (gmthour == 24){ gmthour = 0; } String displayhour = String(gmthour, DEC); int hourdigits = displayhour.length(); if(hourdigits == 1){ displayhour = "0" + displayhour; } String displayminute = String(minute(), DEC); int minutedigits = displayminute.length(); if(minutedigits == 1) { displayminute = "0" + displayminute; } displaycurrenttimepluswifi = " Signal: " + wifisignal +" %"; Clock: " + displayhour + ":" + displayminute + " Blynk.setProperty(V3, "label", displaycurrenttimepluswifi); } 48 Máy ấp trứng mini tự động Nhóm void clockDisplay() { String currentTime = String(hour()) + ":" + minute() + ":" + second(); String currentDate = String(day()) + " / " + month() + " / " + year(); Blynk.virtualWrite(V5, currentTime); Blynk.virtualWrite(V4, currentDate); } // -END // -Cai dat he thong va cac che - BLYNK_WRITE(V0) { if (param.asInt() == 1) { CTHT = 1; reset_system(); terminal.clear(); terminal.println("THE SYSTEM IS WORKING"); terminal.println("PLEASE CHOOSE OPERATION MODE"); if (CD == 0) { terminal.println("AUTO MODE ON"); 49 Máy ấp trứng mini tự động Nhóm terminal.flush(); } else { terminal.println("CONTROL MODE ON"); terminal.flush(); } terminal.flush(); } else { CTHT = 0; reset_system(); terminal.clear(); terminal.println("THE SYSTEM IS NOT WORKING"); terminal.println("PRESS ON/OFF THE SYSTEM SWITCH"); terminal.println("WAIT FOR UPDATE (10 SECONDS AS MAXIMUM)"); terminal.flush(); } } BLYNK_WRITE(V1) { switch (param.asInt()) 50 Máy ấp trứng mini tự động Nhóm { case 1: { resetManual(); CD = 0; terminal.clear(); terminal.println(" AUTO MODE ON"); terminal.flush(); break; } case 2: { resetManual(); CD = 1; terminal.clear(); terminal.println("CONTROL MODE ON"); terminal.flush(); break; } } } // END 51 Máy ấp trứng mini tự động Nhóm // Cai dat cong tat den BLYNK_WRITE(V6) { if(CTHT == && CD == 1) { int virtualPin6=param.asInt(); digitalWrite(CT01,virtualPin6); } } BLYNK_WRITE(V10) { float tmax = param.asFloat(); if (CTHT==1 && CD==0) { if (t>=tmax+0.2) { digitalWrite(CT01,LOW); Blynk.virtualWrite(V6,LOW); } if (t=hmax+2) 53 Máy ấp trứng mini tự động Nhóm { digitalWrite(CT02,LOW); Blynk.virtualWrite(V7,LOW); } if (h