Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 93 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
93
Dung lượng
5,99 MB
Nội dung
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN CNKT ĐIỆN TỬ – CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG QUẢN LÝ NHÀ YẾN SỬ DỤNG CÔNG NGHỆ IOT Giảng viên hướng dẫn Sinh viên thực : Ts Trần Vũ Hoàng : Trần Đức Trọng MSSV : Sinh viên thực : Phạm Văn Thuận MSSV : 16141313 15141293 TP HỒ CHÍ MINH – 20/07/2020 TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH o0o -Tp HCM, ngày 04 tháng 08 năm 2020 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Khóa: Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: Trần Đức Trọng 2016 Phạm Văn Thuận Kỹ thuật Điện - Điện tử Đại học quy 2015 MSSV: Lớp: MSSV: Mã ngành: Mã hệ: Lớp: 16141313 16141DT2A 15141293 01 15141DT2A I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG QUẢN LÝ NHÀ YẾN SỬ DỤNG CÔNG NGHỆ IOT II NHIỆM VỤ Các số liệu ban đầu: - Sử dụng Arduino Mega 2560, module ESP8266 linh kiện liên quan đến đề tài - Có thể sử dụng để điều khiển thiết bị qua điện thoại, qua website giám sát điều kiện đáp ứng cho chim yến sinh trưởng Nội dung thực hiện: - NỘI DUNG 1: Tìm hiểu đặc điểm sinh trưởng lồi chim yến khảo sát nhà chim yến thực tế - NỘI DUNG 2: Tìm hiểu hệ thống kĩ thuật nhà chim yến - NỘI DUNG 3: Viết đề cương tóm tắt nội dung đề tài - NỘI DUNG 4: Tiến hành vẽ sơ đồ khối, giải thích lựa chọn linh kiện cho khối - NỘI DUNG 5: Vẽ sơ đồ nguyên lý giải thích hoạt động mạch - NỘI DUNG 6: Viết chương trình điều khiển cho hệ thống - NỘI DUNG 7: Liên kết với ứng dụng điện thoại để điều khiển thiết bị ngoại vi - NỘI DUNG 8: Thiết kế website hiển thị thông tin điều khiển thiết bị ngoại vi i - NỘI DUNG 9: Thi cơng mạch - NỘI DUNG 10: Thi cơng mơ hình nhà nuôi chim yến thực kết nối website, điện thoại - NỘI DUNG 11: Chạy thử nghiệm mô hình - NỘI DUNG 12: Thực điều chỉnh mơ hình, điều chỉnh mạch - NỘI DUNG 13: Viết sách luận văn - NỘI DUNG 14: Tiến hành báo cáo đề tài III NGÀY GIAO NHIỆM VỤ: 09/03/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/08/2020 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS Trần Vũ Hoàng CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ii TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH o0o -Tp HCM, ngày 04 tháng 08 năm 2020 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: TRẦN ĐỨC TRỌNG Lớp: 16141DT2A MSSV:16141313 Họ tên sinh viên 2: Phạm Văn Thuận Lớp:15141DT2A MSSV:15141293 Tên đề tài: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG QUẢN LÝ NHÀ YẾN SỬ DỤNG CÔNG NGHỆ IOT Tuần/Ngày Nội dung Tuần (09/3 – 15/3) Gặp giáo viên HD nghe phổ biến tiến hành chọn đồ án Tuần (16/3 – 22/3) Viết đề cương tóm tắt nội dung đồ án Tuần (23/3 – 29/3) Tiến hành thiết kế sơ đồ khối lựa chọn linh kiện cho khối Tuần (30/3 – 05/4) Thiết kế sơ đồ ngun lí giải thích hoạt động mạch, tìm hiểu nhà yến để đưa ý tưởng làm mô hình Tuần (06/4 – 12/4) Thực code để đo điều kiện môi trường Tuần (13/4 – 19/4) Tìm hiểu sở liệu web code điều khiển thiết bị ngoại vi Tuần (20/4 – 26/4) Tìm hiểu cách liên kết truyền nhận liệu với web thực tiếp code điều khiển thiết bị ngoại vi Tuần (27/4 – 03/5) Thực liên kết truyền nhận liệu với điện thoại iii Xác nhận GVHD Tuần (04/5 – 10/5) Thực vẽ lưu đồ, vẽ mạch nguyên lý, mạch in Tuần 10 (11/5 – 17/5) Mua linh kiện, kiểm tra tiến hành thi công mạch, kiểm tra mạch thi công Tuần 11 (18/5 – 24/5) Liên kết điều khiển truyền nhận liệu với web thực làm mơ hình sản phẩm, kiểm tra sửa lỗi Tuần 12 (25/5 – 31/5) Thực viết báo cáo làm slide bảo vệ DATN Tuần 13 (01/6 – 07/6) Gởi báo cáo cho GVHD xem xét góp ý chỉnh sửa Tuần 14 (08/6 – 14/6) Hoàn thiện báo cáo lần cuối trước in tiến hành nộp báo cáo cho GVHD để xác nhận ký tên Tuần 15 (15/6 – 21/6) Thời gian chỉnh sửa toàn lỗi phát sinh hoàn tất DATN Tuần 15 (22/6 – 03/7) Nộp báo cáo Bộ môn Điện tử Công nghiệp-y sinh GV HƯỚNG DẪN (Ký ghi rõ họ tên) iv LỜI CAM ĐOAN Chúng cam đoan đề tài đồ án tốt nghiệp chúng tơi thực hướng dẫn TS Trần Vũ Hồng, có tham khảo số tài liệu liên quan không chép từ tài liệu hay cơng trình trước đó, nội dung kết đề tài đồ án tốt nghiệp hoàn toàn trung thực Nếu có gian lận nào, chúng tơi xin chịu trách nhiệm hồn tồn nội dung đề tài Người thực đề tài Trần Đức Trọng v Phạm Văn Thuận LỜI CẢM ƠN Lời đầu tiên, chúng em xin gửi lời cảm ơn chân thành tới Thầy/Cô trường Đại học Sư phạm Kỹ thuật TPHCM nói chung Thầy/Cơ khoa Điện – Điện tử nói riêng dạy dỗ, truyền đạt cho chúng em kiến thức vô giá môn đại cương lẫn kiến thức chuyên ngành Những năm tháng đại học qua thật nhanh chúng em, buổi thực hành hướng dẫn tận tình Thầy/Cơ giúp chúng em có kiến thức vững vàng để hoàn thành đề tài nghiệp sau Lời tiếp theo, chúng em xin phép gửi đến Thầy Trần Vũ Hồng lịng biết ơn lời cảm ơn chân thành sâu sắc Thầy giúp nhóm vạch hướng hướng dẫn cụ thể yêu cầu đề tài, tận tình giúp đỡ, hướng dẫn tạo điều kiện tốt suốt thời gian hoàn thành Đồ Án Tốt Nghiệp Cuối cùng, nhóm em xin cảm ơn đến gia đình bạn bè lời cảm ơn, biết ơn chân thành Trong suốt trình học trường, gia đình bạn bè người luôn quan tâm, giúp đỡ động viên để chúng em hồn thành tốt chương trình học nói chung Đồ Án Tốt Nghiệp nói riêng Mặc dù cố gắng hoàn thành mục tiêu đặt kiến thức hạn chế nên trình thực đồ án khơng thể tránh sai sót, mong đóng góp chỉnh sửa từ Thầy/Cơ để nhóm hồn thiện đồ án tốt Nhóm em xin chân thành cảm ơn! Người thực đề tài Trần Đức Trọng vi Phạm Văn Thuận MỤC LỤC LỜI CAM ĐOAN v LỜI CẢM ƠN vi MỤC LỤC vii LIỆT KÊ HÌNH VẼ xi LIỆT KÊ BẢNG xiii TÓM TẮT xiv Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC Chương CƠ SỞ LÝ THUYẾT 2.1 KỸ THUẬT NUÔI CHIM YẾN 2.1.1 Đặc điểm, tập tính sinh sống chim yến 2.1.2 Các điều kiện đáp ứng để nuôi yến 2.2 GIỚI THIỆU VỀ PHẦN CỨNG 2.2.1 Cảm biến cường độ sáng BH1750 2.2.1.1 Tổng quan 2.2.2 Cảm biến nhiệt độ, độ ẩm DHT11 2.2.3 Cảm biến thời gian thực DS1307 2.2.3.1 Tổng quan 2.2.4 Arduino Mega 2560 vii MỤC LỤC 2.2.5 Module ESP8266 11 2.2.5.1 Tổng quan 11 2.2.6 Màn hình LCD 20x4 12 2.2.7 Mạch chuyển đổi I2C cho LCD 14 2.2.8 Động servo MG995 .15 2.2.9 Các thiết bị ngoại vi 15 2.2.9.4 Máy sưởi 17 2.2.10 Relay SRD12VDC 17 2.3 GIỚI THIỆU ỨNG DỤNG TRÊN ĐIỆN THOẠI 18 3.1 ĐIỀU KHIỂN, GIÁM SÁT MƠ HÌNH NHÀ YẾN BẰNG ĐIỆN THOẠI 18 2.3.2 BẬT TẮT THIẾT BỊ NGOẠI VI THÔNG QUA TRỢ LÝ ẢO GOOGLE 2.3.2.1 Tổng quan Google Asisstant .19 2.4 GIỚI THIỆU VỀ WEBSITE 20 Chương TÍNH TỐN VÀ THIẾT KẾ 21 3.1 YÊU CẦU THIẾT KẾ .21 3.2 SƠ ĐỒ KHỐI VÀ CHỨC NĂNG 22 3.2.1 Sơ đồ khối 22 3.2.2 Nguyên lý hoạt động chức khối 23 3.3 TÍNH TỐN VÀ THIẾT KẾ MẠCH .23 3.3.1 Khối cảm biến 23 3.3.2 Khối thời gian thực .27 3.3.3 Khối xử lí trung tâm kết nối internet, kết nối điện thoại 29 3.3.4 Khối hiển thị 32 3.3.5 Khối điều khiển thiết bị ngoại vi 33 3.3.6 Khối nguồn 34 3.4 SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH 36 vii MỤC LỤC Chương 4: THI CÔNG HỆ THỐNG 38 4.1 THI CÔNG MẠCH 38 4.1.1 Mạch in PCB 38 4.1.2 Thi công bo mạch 39 4.1.3 Lắp ráp linh kiện kiểm tra 39 4.2 THI CƠNG MƠ HÌNH NHÀ YẾN 40 4.3 LƯU ĐỒ GIẢI THUẬT 41 4.4 PHẦN MỀM THỰC HIỆN 47 4.4.1 Phần mềm thiết kế mạch 47 4.4.2 Phần mềm lập trình Arduino 47 4.4.3 Phần mềm lập trình website 47 Chương 5: KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ 49 5.1 KẾT QUẢ THỰC HIỆN 49 5.2 KẾT QUẢ ĐỐI VỚI HỆ THỐNG CHẠY CHẾ ĐỘ TỰ ĐỘNG 49 5.3 KẾT QUẢ ĐỐI VỚI HỆ THỐNG CHẠY CHẾ ĐỘ BẰNG TAY 52 5.3.1 Hệ thống sưởi ấm 52 5.3.2 Hệ thống quạt thơng gió 52 5.3.3 Hệ thống phun sương 53 5.3.4 Hệ thống ánh sáng 54 5.3.5 Hệ thống loa 54 5.3.6 Hệ thống nút nhấn 55 5.4 MƠ HÌNH HỆ THỐNG 55 5.4.1 Giao diện mơ hình hệ thống ứng dụng điện thoại 55 5.4.2 Hiển thị hình LCD board mạch 57 5.4.3 Giao diện mơ hình hệ thống thông qua Website 57 5.4.4 Cơ sỡ liệu ix 58 Chương KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ 5.5 ƯU ĐIỂM, NHƯỢC ĐIỂM 5.5.1 Ưu điểm Từ kết đạt được, nhóm thực rút ưu điểm sau: - Phần cứng đáp ứng tốt chạy chế độ tay tự động Thời gian đáp ứng nhanh, hệ thống chạy ổn định thời gian dài - Khối hiển thị rõ ràng, cập nhật liên tục thông số thực tế nhiệt độ, độ ẩm ánh sáng xác - Các khối cảm biến, khối xử lí trung tâm, khối thời gian thực hoạt động ổn định đo thơng số xác - Kết nối phần cứng với điện thoại website đáp ứng nhanh, thời gian đáp ứng khoảng thời gian từ – giây - Có thể điều khiển thiết bị nhà nuôi chim yến Google Assistant Bên cạnh điều khiển nắm bắt thông số nhà yến lúc nơi kết nối internet - Trang web trình bày rõ ràng, dễ dàng điều khiển cho người sử dụng 5.5.2 Nhược điểm Bên cạnh ưu điểm cịn tồn nhược điểm, bao gồm: - Tên Wifi mật để kết nối cố định code Arduino thay đổi nạp lại chương trình vào Arduino Mega 2560 - Động sử dụng công suất lớn nên phát tiếng ồn - Mạch hoạt động ổn đôi lúc xảy lỗi kết nối liệu từ mơ hình lên web server Blynk yếu tố mạng liệu không ổn định - Vẫn sai số liệu nhiệt độ, độ ẩm so với thực tế từ đến độ C BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61 Chương KẾT LUẬN, HƯỚNG PHÁT TRIỂN Chương KẾT LUẬN, HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Sau thời gian thực đề tài “Thiết kế thi công hệ thống quản lý nhà yến sử dụng cơng nghệ IoT”, nhóm thực học hỏi nhiều kiến thức trau dồi nhiều kinh nghiệm Bên cạnh cịn thực hành, nghiên cứu thiết kế mạch điều khiển, thiết kế website để áp dụng vào thực tế giúp ích nhiều cho người ni chim yến Kết đạt nhóm với mục tiêu đề ban đầu Nhóm thiết kế thành công hệ thống quản lý nhà yến có chức đo nhiệt độ, độ ẩm, cường độ ánh sang Thiết bị có chế độ điều khiển bao gồm chế độ điều khiển tự động chế độ điều khiển tay Với chế độ tự động thiết bị tự điều chỉnh thơng số đáp ứng điều kiện sống lí tưởng chim Bên cạnh người dùng tự điều khiển tùy chỉnh thơng số tay Dữ liệu thông số nhiệt độ, độ ẩm gửi lên website qua ứng dụng điện thoại để người dùng dễ dàng nắm bắt Đánh giá hệ thống hoạt động ổn định, không bị treo Bên cạnh có hình hiển thị trực quan giúp cho việc sử dụng theo dõi trình hoạt động thuận tiện Website giao diện thân thiện đơn giản dễ sử dụng Các thông số thời gian, nhiệt độ, độ ẩm, ánh sáng cập nhật nhanh xác Có thể điều khiển thiết bị đâu điện thoại laptop cần thiết bị có kết nối internet Qua q trình thực nhóm tìm hiểu sâu mảng thiết kế website viết trang điều khiển, giao diện website sở liệu Tìm hiểu ngơn ngữ thiết kế website HTML, PHP, SQL, CSS 6.2 HƯỚNG PHÁT TRIỂN Từ đề tài hồn thành, phát triển mở rộng khả hoạt động mơ sau: - Thêm cảm biến nhận diện số lượng chim bay vào khoảng thời gian gọi đàn Qua xác định xác tổng số chim nhà yến - Sử dụng kết hợp với camera giám sát gửi liệu lên website giúp người dùng xem từ xa - Kết hợp thêm cảm biến hồng ngoại để nhận diện cảnh báo yếu tố tác động đến mơ hình nhà yến BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62 TÀI LIỆU THAM KHẢO Tài liệu online [1] Lê Cúc, “Thực trạng tiềm nghề nuôi yến”, tên Web Báo Quân đội Nhân Dân online, 2019 [2] “Kĩ thuật nuôi chim yến sử dụng công nghệ Malaysia”, tên Web vuayen.vn, 2016 [3] “Nuôi yến nhà: yếu tố giúp bạn thành công”, tên Web Farmvina.com, 2015 [4] Thạc sỹ Lê Hữu Hoàng, “Một số đặc điểm sinh học chim yến nhà Khánh Hòa”, tên Web Nongnghiep.vn, 2013 [5] “Arduino Mega 2560”, tên Web Arduinokit.vn [6] Trung Ngo, “Đồng điều khiển tay từ xa sử dụng ứng dụng Blynk”, tên Web Tapit.vn, 2018 [7] “Điều khiển thiết bị giọng nói thơng qua Google Assistant Tiếng Viết sử dụng ESP8266, Blynk IFTTT”, tên Web Arduinokit.vn, 2019 [8] “Phần mềm vẽ mạch trực quan Fritzing”, tên Web Chosangtao.com, 2020 [9] Phạm Như Sang, Huỳnh Lê Công Tú, “Thiết kế thi công mô hình nhà ni chim yến điều khiển giám sát từ xa, tên Web slideshare.net Sách tham khảo [10] Nguyễn Đình Phú, “Giáo trình vi xử lý II”, NXB ĐH Quốc Gia Tp.HCM, 2007 [11] Nguyễn Đình Phú, Nguyễn Trường Duy, “Giáo Trình: Kỹ Thuật Số, Xuất ĐH Quốc Gia”, Tp.HCM, 2013 [12] TS Phan Văn Ca – Ths Trương Quang Phúc, “Giáo trình Cơ sở ứng dụng Internet Of Things”, Đại Học Quốc Gia TP Hồ Chí Minh, Tp.HCM, 2017 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 63 PHỤ LỤC Chương trình cho nút nhấn tay if (digitalRead(btn_quat) == LOW) { lastMsg = millis(); while (1) { lastMsg = millis(); if (digitalRead(btn_quat) == HIGH) { bien_quat++; if (bien_quat % == 1) { Serial.println(">>Btn ON quat"); digitalWrite(rl_quat, LOW); trangthai_quat = 1; lastMsg = millis(); break; } else { Serial.println(">>Btn OFF quat"); digitalWrite(rl_quat, HIGH); trangthai_quat = 0; lastMsg = millis(); break; } } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64 Chương trình cho nút nhấn blynk BLYNK_WRITE(V2) { int btn2 = param.asInt(); if (chedo == 1) { if (btn2 == 1) { mySerial.println("V2A1B"); Serial.println("V2A1B"); } if (btn2 == 0) { mySerial.println("V2A0B"); Serial.println("V2A0B"); } } } Chương trình so sánh bật tắt thiết bị void Sosanh() { if (nhietdo >= 31 && nhietdo = 70 && doam = && gio = 17 && gio = 70 && doam 85 ) { //ON quạt ,ON suoi ,OFF phunsuong digitalWrite(rl_quat, LOW); digitalWrite(rl_suoi, LOW); digitalWrite(rl_phunsuong, HIGH); trangthai_quat = 1; trangthai_suoi = 1; trangthai_phunsuong = 0; } if (nhietdo >= 31 && nhietdo = 31 && nhietdo 85 ) { //ON quạt ,ON suoi ,OFF phunsuong digitalWrite(rl_quat, LOW); digitalWrite(rl_suoi, LOW); digitalWrite(rl_phunsuong, HIGH); trangthai_quat = 1; trangthai_suoi = 1; trangthai_phunsuong = 0; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 67 if (nhietdo > 34 && doam < 70 ) { //ON quạt ,OFF suoi ,ON phunsuong digitalWrite(rl_quat, LOW); digitalWrite(rl_suoi, HIGH); digitalWrite(rl_phunsuong, LOW); trangthai_quat = 1; trangthai_suoi = 0; trangthai_phunsuong = 1; } if (nhietdo > 34 && doam >= 70 && doam 34 && doam > 85) { //ON quạt , OFF suoi ,OFF phunsuong digitalWrite(rl_quat, LOW); digitalWrite(rl_suoi, HIGH); digitalWrite(rl_phunsuong, HIGH); trangthai_quat = 1; trangthai_suoi = 0; trangthai_phunsuong = 0; } BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 68 Chương trình truyền liệu ESP8266 void SendEsp() { bien++; biensend = 1; DataSendEsp = ""; DataSendEsp = A + chedo + B + nhietdo + C + doam + D + dolux + E + trangthai_loa + F + trangthai_quat + G + trangthai_suoi + H + trangthai_phunsuong + J + trangthai_servo + K + mucservo + L; / A[chedo]B[nhiệt độ]C[độ ẩm]D[độ lux]E[trạng thái loa]F[trạng thái quạt] //G[trạng thái sưởi]H[trạng thái phun sương]J[trạng thái servo]K[mức servo]L Serial.print(bien); Serial.print(".DataSendEsp = "); Serial.println(DataSendEsp); Serial1.println(DataSendEsp); Serial1.flush(); delay(100); Serial2.println(DataSendEsp); Serial2.flush(); delay(100); biensend = 0; } Chương trình truyền nhận UART ESP8266 với blynk void Read_Uart() { while (mySerial.available()) { char inChar = (char)mySerial.read(); inputString += inChar; if (inChar == '\n') { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 69 stringComplete = true; } if (stringComplete) { bien++; Serial.print(bien); Serial.print(".Data Mega = "); Serial.println(inputString); / A[chedo]B[nhiệt độ]C[độ ẩm]D[độ lux]E[trạng thái loa]F[trạng thái quạt] //G[trạng thái sưởi]H[trạng thái phun sương]J[trạng thái servo]K[mức servo]L int TimA, TimB, TimC, TimD, TimE , TimF , TimG , TimH , TimJ , TimK , TimL = -1; TimA = inputString.indexOf("A"); TimB = inputString.indexOf("B"); TimC = inputString.indexOf("C"); TimD = inputString.indexOf("D"); TimE = inputString.indexOf("E"); TimF = inputString.indexOf("F"); TimG = inputString.indexOf("G"); TimH = inputString.indexOf("H"); TimJ = inputString.indexOf("J"); TimK = inputString.indexOf("K"); TimL = inputString.indexOf("L"); if (TimA >= && TimD >= && TimH >= && TimL >= ) { String ChuoiA, ChuoiB, ChuoiC, ChuoiD, ChuoiE , ChuoiF , ChuoiG , ChuoiH , ChuoiJ , ChuoiK = ""; ChuoiA = inputString.substring(TimA + , TimB ); ChuoiB = inputString.substring(TimB + , TimC ); ChuoiC = inputString.substring(TimC + , TimD ); ChuoiD = inputString.substring(TimD + , TimE ); ChuoiE = inputString.substring(TimE + , TimF ); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 70 ChuoiF = inputString.substring(TimF + , TimG ); ChuoiG = inputString.substring(TimG + , TimH ); ChuoiH = inputString.substring(TimH + , TimJ ); ChuoiJ = inputString.substring(TimJ + , TimK ); ChuoiK = inputString.substring(TimK + , TimL ); / A[chedo]B[nhiệt độ]C[độ ẩm]D[độ lux]E[trạng thái loa]F[trạng thái quạt] / G[trạng thái sưởi]H[trạng thái phun sương]J[trạng thái servo]K[mức servo]L chedo = ChuoiA.toInt(); // tin hieu V0 auto / man Blynk.virtualWrite(V0, ChuoiA); // tin hieu V1 Loa Blynk.virtualWrite(V1, ChuoiE); // tin hieu V2 Quat Blynk.virtualWrite(V2, ChuoiF); // tin hieu V3 Sưởi Blynk.virtualWrite(V3, ChuoiG); // tin hieu V4 Phun sương Blynk.virtualWrite(V4, ChuoiH); // tin hieu V5 Servo Blynk.virtualWrite(V5, ChuoiJ); // tin hieu V6 ánh sáng Blynk.virtualWrite(V6, ChuoiD); // tin hieu V7 nhiệt độ Blynk.virtualWrite(V7, ChuoiB); // tin hieu V8 độ ẩm Blynk.virtualWrite(V8, ChuoiC); // tin hieu servo Blynk.virtualWrite(V10, ChuoiK);// trang thai servo } inputString = ""; stringComplete = false; } } } Chương trình truyền nhận UART với web void Read_Uart() { while (mySerial.available()) { char inChar = (char)mySerial.read(); inputString += inChar; if (inChar == '\n') BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 71 { stringComplete = true; } if (stringComplete) { dem++; Serial.print(dem); Serial.print(".Data Mega = "); Serial.println(inputString); int TimA , TimB , TimC , TimD , TimE , TimF, TimG , TimH , TimJ , TimK , TimL = -1; TimA = inputString.indexOf("A"); TimB = inputString.indexOf("B"); TimC = inputString.indexOf("C"); TimD = inputString.indexOf("D"); TimE = inputString.indexOf("E"); TimF = inputString.indexOf("F"); TimG = inputString.indexOf("G"); TimH = inputString.indexOf("H"); TimJ = inputString.indexOf("J"); TimK = inputString.indexOf("K"); TimL = inputString.indexOf("L"); if (TimA >= && TimF >= && TimL >= ) { / A[chedo]B[nhiệt độ]C[độ ẩm]D[độ lux]E[trạng thái loa]F[trạng thái quạt] / G[trạng thái sưởi]H[trạng thái phun sương]J[trạng thái servo]K[mức servo]L String ChuoiA, ChuoiB, ChuoiC , ChuoiD, ChuoiE, ChuoiF, ChuoiG , ChuoiH , ChuoiJ , ChuoiK = ""; ChuoiA = inputString.substring(TimA + , TimB); ChuoiB = inputString.substring(TimB + , TimC); ChuoiC = inputString.substring(TimC + , TimD); ChuoiD = inputString.substring(TimD + , TimE); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 72 ChuoiE = inputString.substring(TimE + , TimF); ChuoiF = inputString.substring(TimF + , TimG); ChuoiG = inputString.substring(TimG + , TimH); ChuoiH = inputString.substring(TimH + , TimJ); ChuoiJ = inputString.substring(TimJ + , TimK); ChuoiK = inputString.substring(TimK + , TimL); / A[chedo]B[nhiệt độ]C[độ ẩm]D[độ lux]E[trạng thái loa]F[trạng thái quạt] / G[trạng thái sưởi]H[trạng thái phun sương]J[trạng thái servo]K[mức servo]L chedo = ChuoiA.toInt(); nhietdo = ChuoiB.toInt(); doam = ChuoiC.toInt(); dolux = ChuoiD.toInt(); trangthai_loa = ChuoiE.toInt(); trangthai_quat = ChuoiF.toInt(); trangthai_suoi = ChuoiG.toInt(); trangthai_phunsuong = ChuoiH.toInt(); trangthai_servo = ChuoiJ.toInt(); mucservo = ChuoiK.toInt(); ChuoiGhep = A + chedo + B + nhietdo + C + doam + D + dolux + E + trangthai_loa + F + trangthai_quat + G + trangthai_suoi + H + trangthai_phunsuong + J + trangthai_servo + K + mucservo + L; for (byte len = 1; len