Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 124 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
124
Dung lượng
6,4 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN ĐIỆN TỬ TRUYỀN THƠNG THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG VÀ QUẢN LÝ TRANG TRẠI HEO GVHD:NGUY N TRƯỜNG DUY SVTH: NGUYỄN NGỌC THẠCH MSSV: 14141292 SKL 0 Tp Hồ Chí Minh, tháng 07/2018 Luan van TRƢỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘ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 10 tháng 07 năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguy n Ngọc Th ch MSSV: 14141292 Chuyên ngành: Công nghệ kỹ thuật điện - điện tử truyền thông Mã ngành: 41 Hệ đào t o: Đ i học quy Mã hệ: Khóa: 2014 Lớp: 14141DT1C I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG VÀ QUẢN LÝ TRANG TRẠI HEO II NHIỆM VỤ Nội dung thực hiện: Nội dung 1: Tìm hiểu nghiên cứu giao tiếp Module ESP 8266-12 với Arduino Mega 2560 Nội dung 2: Lƣu thông tin thẻ Tag Module RFID, thiết lập giao diện C# Visual Studio Nội dung 3: Điều khiển thiết bị theo cảm biến thời gian thực Nội dung 4: Thiết kế lập trình ứng dụng hệ điều hành Android gửi ho t động lên web FireBase Nội dung 5: Thiết kế thi công m ch điều khiển Nội dung 6: Thiết kế mơ hình sản phẩm Nội dung 7: Đánh giá kết thực III NGÀY GIAO NHIỆM VỤ: 02/04/2018 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 10/07/2018 V HỌ VÀ TÊN CÁN BỘ HƢỚNG DẪN: CÁN BỘ HƢỚNG DẪN ThS Nguy n Trƣờng Duy BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ii Luan van TRƢỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘ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 10 tháng 07 năm 2018 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Nguy n Ngọc Th ch Lớp:14141DT1C MSSV: 14141292 Tên đề tài: Thiết Kế Và Thi Cơng Mơ Hình Hệ Thống Và Quản Lý Trang Trại Heo Tuần/ngày Tuần (0208/04/2018) Tuần (0915/04/2018) Tuần (1622/04/2018) Tuần (23/4 - 29 /04/2018) Xác nhận GVHD Nội dung Nhận đồ án , tìm hiểu đề tài Chọn tìm hiểu đề tài Tìm hiểu nghiên cứu giao tiếp Module ESP 8266-12 với Arduino Mega 2560 Lƣu thông tin thẻ Tag Module RFID, thiết lập giao diện C# Visual Studio Tuần 5,6 (30/4 13/05/2018) Tuần 7,8,9,10 (14/5 10/06/2018) Tuần 11,12 (11 24/06/2018) Tuần 13 (25/6 1/07/2018) Điều khiển thiết bị theo cảm biến thời gian thực 10/07/2018 Hoàn thành nhiệm vụ đồ án Thiết kế lập trình ứng dụng hệ điều hành Android gửi ho t động lên web FireBase Tìm hiểu thiết kế mơ hình sản phẩm Viết báo cáo, kiểm phần cứng GV HƢỚNG DẪN (Ký ghi rõ họ tên) iii Luan van LỜI CAM ĐOAN Đề tài tự thực dƣới hƣớng dẫn thầy ThS Nguy n Trƣờng Duy, dựa vào số tài liệu không chép từ tài liệu hay cơng trình có trƣớc Nếu có gian lận xin chịu trách nhiệm nội dung đồ án Ngƣời thực Nguy n Ngọc Th ch iv Luan van LỜI CẢM ƠN Chúng em xin chân thành cảm ơn quý thầy, cô Trƣờng Đ i Học Sƣ Ph m Kỹ Thuật TP.HCM tận tình d y dỗ chúng em suốt năm qua Trong phải kể đến quý thầy cô khoa Điện – Điện Tử truyền đ t kiến thức, kinh nghiệm với đam mê nhƣ đốt lên lửa đam mê khám phá chúng em từ kiến thức, đam mê chúng em kết l i thành đồ án cuối cùng, đồ án tốt nghiệp tay t o ra, nhƣ bàn đ p để bƣớc vào cánh cửa lớn Đặc biệt, Chúng em xin cảm ơn sâu sắc thầy Nguy n Trƣờng Duy tận tình giúp đỡ chúng em trình lựa chọn đề tài hỗ trợ chúng em trình thực đề tài Trong trình thực đồ án xảy nhiều khó khăn, thiếu sót nhƣng đƣợc đơn đốc góp ý thầy chúng em gặt hái đƣợc nhiều kiến thức kinh nghiệm Một lần chúng em xin cảm ơn thầy Sinh viên thực đồ án Nguy n Ngọc Th ch v Luan van MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii LỜI CAM ĐOAN iv LỜI CẢM ƠN v MỤC LỤC vi LIỆT KÊ HÌNH VẼ vii LIỆT KÊ BẢNG viii TÓM TẮT ix CHƢƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU CỦA ĐỀ TÀI 1.3 NỘI DUNG THỰC HIỆN 1.4 GIỚI HẠN CỦA ĐỀ TÀI 1.5 BỐ CỤC ĐỒ ÁN CHƢƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 QUY TRÌNH HOẠT ĐỘNG CỦA HỆ THỐNG 2.2 GIỚI THIỆU PHẦN CỨNG 2.2.1 TỔNG QUAN ARDUINO MEGA 2560 2.2.2 GIỚI THIỆU LCD 20x4 2.2.3 GIỚI THIỆU MODULE RFID MFRC522 2.2.4 TỔNG QUAN MODULE ESP8266 2.2.5 GIỚI THIỆU MODULE L298 11 2.2.6 CẢM BIẾN MƢA [7] 14 2.2.7 CẢM BIẾN NHIỆT ĐỘ -ĐỘ ẨM [7] 15 2.2.8 CẢM BIẾN ĐO THỜI GIAN [7] 16 2.2.9 CẢM BIẾN SIÊU ÂM [7] 17 vi Luan van 2.2.10 GIỚI THIỆU FIREBASE [8] 18 2.2.11 GIỚI THIỆU MODULE RELAY (RƠ-LE) 19 2.3 GIỚI THIỆU CÁC CHUẨN GIAO THỨC: 21 2.3.1 SƠ LƢỢC VỀ GIAO TIẾP USART:[10] 21 2.3.2 SƠ LƢỢC VỀ CHUẨN SPI: 23 2.3.3 SƠ LƢỢC VỀ CHUẨN I2C:[7] 26 CHƢƠNG TÍNH TỐN VÀ THIẾT KẾ 27 3.1 GIỚI THIỆU 27 3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 27 3.2.1 THIẾT KẾ SƠ ĐỒ KHỐI HỆ THỐNG 27 3.2.2 TÍNH TỐN VÀ THIẾT KẾ MẠCH 30 3.2.3 SƠ ĐỒ NGUYÊN LÝ CỦA TOÀN MẠCH 37 CHƢƠNG THI CÔNG HỆ THỐNG 38 4.1 THI CÔNG HỆ THỐNG: 38 4.2 LƢU ĐỒ GIẢI THUẬT 40 4.2.1 LƢU ĐỒ GIẢI THUẬT ARDUINO MEGA 2560 40 4.2.2 GIỚI THIỆU VỀ ARDUINO IDE 50 4.2.3 LƢU ĐỒ GIẢI THUẬT CỦA ESP 52 4.2.4 LẬP TRÌNH C# TRÊN PHẦN MỀM VISUAL STUDIO 53 4.2.5 CHƢƠNG TRÌNH TRÊN ANDROID STUDIO 56 CHƢƠNG 5: KẾT QUẢ, NHẬN XÉT, ĐÁNH GIÁ 64 5.1 SẢN PHẨM SAU KHI HOÀN THÀNH: 64 5.1.1 SẢN PHẨM: 64 5.1.2 KIẾN THỨC CÓ ĐƢỢC TRONG THIẾT KẾ SẢN PHẨM: 64 5.2 KẾT QUẢ CHẠY HỆ THỐNG: 65 5.2.1 QUÁ TRÌNH CHẠY ỨNG DỤNG TRÊN ĐIỆN THOẠI: 65 5.2.2 QUÁ TRÌNH VẬN HÀNH TRÊN PHẦN CỨNG HỆ THỐNG: 66 5.2.3 QUÁ TRÌNH VẬN HÀNH TRÊN PHẦN MỀM VISUAL STUDIO: 67 CHƢƠNG 6: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 69 vi Luan van 6.1 KẾT LUẬN 69 6.2 HƢỚNG PHÁT TRIỂN 69 TÀI LIỆU THAM KHẢO 70 PHỤ LỤC 71 CHƢƠNG TRÌNH ĐIỀU KHIỂN ANDROID STUDIO 71 CHƢƠNG TRÌNH ĐIỀU KHIỂN VISUAL STUDIO 78 CHƢƠNG TRÌNH ĐIỀU KHIỂN ESP8266 83 CHƢƠNG TRÌNH ĐIỀU KHIỂN ARDUINO 89 vi Luan van LIỆT KÊ HÌNH VẼ Hình 2-1: Board Arduino Mega 2560 Hình 2-2: Màn hình LCD 20x4 Hình 2-3: Module RFID Hình 2-4: Sơ đồ chân RFID Hình 2-5: Thơng số thẻ Tag Hình 2-6: Module NodeMCU 8266 10 Hình 2-7: Sơ đồ chân sơ đồ kết nối 11 Hình 2-8: Module L298 12 Hình 2-9: Sơ đồ chân Module L298 12 Hình 2-10: Động DC 13 Hình 2- 11: Nút nhấn hành trình 14 Hình 2- 12: Nút nhấn chân 14 Hình 2- 13: Cảm biến mƣa 14 Hình 2-14: Cảm biến DHT11 15 Hình 2-15: Sơ đồ chân Realtime 16 Hình 2-16: Module Realtime 17 Hình 2-17: Sơ đồ nguyên lý Realtime 17 Hình 2- 18: Cảm biến siêu âm 18 Hình 2- 19: Giao diện FireBase 19 Hình 2-20: Module Relay Mức Cao 20 Hình 2- 21: Module Relay mức thấp 20 Hình 2-22: Khung truyền UART 22 Hình 2-23: Sơ đồ truyền SPI thiết bị 23 Hình 2-24: Truyền SPI nhiều thiết bị 24 Hình 2-25: Chế độ SPI 25 Hình 2-26: Truyền gửi liệu song cơng 25 Hình 2-27: Sơ đồ truyền I2C 26 Hình 3-1: Sơ đồ khối 28 Hình 3-2: Sơ đồ nguyên lý nhiệt độ 33 Hình 3-3: Cảm biến siêu âm 33 Hình 3-4: Sơ đồ nguyên lý Realtime 34 Hình 3-5: Sơ đồ nguyên lý LCD 20x4 35 Hình 3-6: Sơ đồ nguyên lý Relay 35 Hình 3-7: Sơ đồ nguyên lý L298 36 vii Luan van Hình 3-8: Sơ đồ nguyên lý RFID 36 Hình 3-9: Sơ đồ nguyên lý toàn m ch 37 Hình 4-1: Sơ đồ bố trí linh kiện mặt 39 Hình 4-2: Sơ đồ bố trí linh kiện lớp dƣới 40 Hình 4-3: Lƣu đồ 41 Hình 4-4: Lƣu đồ điều khiển máy bơm 42 Hình 4-5: Lƣu đồ tắm cho heo 43 Hình 4-6: Lƣu đồ điều khiển bật qu t 44 Hình 4-7: Lƣu đồ ho t động dọn vệ sinh 45 Hình 4-8: Lƣu đồ điều khiển bật đèn 46 Hình 4-9: Lƣu đồ điều khiển mái hiên 47 Hình 4-10: Lƣu đồ điều khiển cho ăn 48 Hình 4-11: Lƣu đồ cho uống 49 Hình 4-12: Lƣu đồ gửi thông tin ESP Arduino 50 Hình 4-13: Giao diện phần mềm Arduino 50 Hình 4-14: Cài đặt Arduino bƣớc 51 Hình 4-15: Cài đặt Arduino bƣớc 52 Hình 4-16: Cài đặt Arduino bƣớc 52 Hình 4-17: Lƣu đồ ho t động ESP 53 Hình 4-18: Giao diện phần mềm Visual Studio 54 Hình 4-19: Tải ch y file.exe 55 Hình 4-20: Cài đặt Visual Studio 55 Hình 4- 21: Cài đặt Visual Studio bƣớc 56 Hình 4-22: Cài đặt Android Studio bƣớc 57 Hình 4-23: Cài đặt Android Studio bƣớc 57 Hình 4-24: Cài đặt Visual Studio bƣớc 58 Hình 4-25: Cài đặt Android Studio bƣớc 58 Hình 4-26: Cài đặt Visual Studio bƣớc5 59 Hình 4-27: T o project mớit rong Android 59 Hình 4-28: T o project Android 60 Hình 4-29: Chọn hình 61 Hình 4-30: Chọn phiên Android 61 Hình 4-31: Đặt tên cho hình 62 Hình 4-32: Chọn thiết bị để n p chƣơng trình 62 Hình 5-1: Sản phẩm thi công 64 Hình 5-2: Giao diện App Chính 65 Hình 5-3: Giao diện web FireBase 66 vii Luan van PHỤ LỤC { if (giay = GIAY_CODE) { digitalWrite(an_o , LOW); digitalWrite(an_c , LOW); m = 0; } } } ///// dieu khien van them nuoc//////////////////////////////////// void van_cho_uong() { if (mucnuoc1 < 3) { digitalWrite(ug_o , HIGH); } if (mucnuoc1 >= 4) { digitalWrite(ug_o , LOW); } } // dieu khien mo mai hien/////////////////////////////////////// /// dieu khien chieu mo mai hien/////////////////////////////// void dong_mo() { if (value == HIGH ) { if (stops != && rain!= 1) if (gio >= && gio < 9) { stops = 1; rain = 1; digitalWrite(rain_o , HIGH); digitalWrite(rain_c , LOW); } if (stops != && rain!= 1) if (gio >= 15 && gio = && gio < 15) { stops = 3; rain = 0; digitalWrite(rain_o , LOW); digitalWrite(rain_c , HIGH); } if (stops != && rain!= 0) if (gio > 17) { stops = 4; rain = 0; digitalWrite(rain_o , LOW); digitalWrite(rain_c , HIGH); } } if (stops != && rain!= 0) { if (value == LOW) { stops = 5; rain = 0; digitalWrite(rain_o , LOW); digitalWrite(rain_c , HIGH); } } } // dk role ///////////////////////////// void dieukhien_role() { // MAY BOM NC/////////////////////////////////// if (bom == 0) { if (mucnuoc < 6) { digitalWrite(role_1 , HIGH); } } else { 98 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH Luan van PHỤ LỤC if (mucnuoc < 14) { digitalWrite(role_1 , HIGH); } } if (mucnuoc > 13) { digitalWrite(role_1 , LOW); } // dieu khien quat// if (quat == 1) { digitalWrite(role_2 , HIGH); } else digitalWrite(role_2 , LOW); // tam rua//// if (gio == 9) { if (phut < 10) { digitalWrite(role_3 , HIGH); } else digitalWrite(role_3 , LOW); } // don ve sinh////////////////////////////////////////////////////////////// if (gio == || gio == 16) { if (phut < 10) { digitalWrite(role_4 , HIGH); } else { digitalWrite(role_4 , LOW); } } /// bat den///////////////////////////////////////////////////////// if (den == 0) { if(batden==0) { if (gio >= 17 && gio < 20) { 99 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH Luan van PHỤ LỤC digitalWrite(role_5 , HIGH); } else { digitalWrite(role_5 , LOW); } }else{ digitalWrite(role_5 , HIGH); } } else { digitalWrite(role_5 , HIGH); } } void hienthi_1() { lcd.setCursor(0, 1); lcd.print("MB || QUAT "); lcd.setCursor(15 , 1); lcd.print("||"); lcd.setCursor(0, 2); lcd.print("TAM "); lcd.setCursor(0, 3); lcd.print("VS || DEN"); lcd.setCursor(15 , 3); lcd.print("||"); lcd.setCursor(13, 0); lcd.print(" WORK"); // ham hien thi gia tri nhiet do am len mang hinh// lcd.setCursor(12, 1); if (digitalRead(role_1) == 1) { lcd.print("ON ") ; } else lcd.print("OFF"); ////tam heo///////////////////////////////////////// lcd.setCursor(12 , 2); if (digitalRead(role_3) == 1) { lcd.print("TAM ON "); } else lcd.print("TAM OFF"); ////ve sinh heo////////////////////////////////////// lcd.setCursor(12 , 3); if (digitalRead(role_4) == 1) { lcd.print("ON "); } else lcd.print("OFF"); ///den trang trai///////////////////////////////////// lcd.setCursor(17 , 3); if (digitalRead(role_5) == 1) 100 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH Luan van PHỤ LỤC { lcd.print("ON "); } else lcd.print("OFF"); // quat giam nhiet lcd.setCursor(17, 1); if (quat == 1) { lcd.print("ON ") ; } else lcd.print("OFF"); } void hienthi_2() { //lcd.clear(); lcd.setCursor(0 , 1); lcd.print("MAI HIEN:"); lcd.setCursor(0 , 2); lcd.print("CHO AN:"); lcd.setCursor(13 , 0); lcd.print("WORK"); lcd.setCursor(13 , 1); if (rain == 1) { lcd.print("OPPEN "); } if (rain == 0) { lcd.print("CLOSE"); } lcd.setCursor(13 , 2); if (m == 1) { lcd.print("EAT ON "); } if (m == 0) { lcd.print("EAT OFF"); } lcd.setCursor(0 , 3); lcd.print("MUC NUOC:"); lcd.setCursor(10 , 3); lcd.print(mucnuoc); lcd.setCursor(16 , 3); lcd.print(mucnuoc1); lcd.setCursor(15 , 3); lcd.print("|"); } void hienthi_5() { 101 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH Luan van PHỤ LỤC lcd.setCursor(0, 1); lcd.print("DANG CHINH GIAY_CODE!"); lcd.setCursor(0, 2); lcd.print("GIAY_CODE:"); lcd.setCursor(12 , 2); lcd.print(GIAY_CODE / 10); lcd.setCursor(13 , 2); lcd.print(GIAY_CODE % 10); } void thongso() { // lcd.clear(); lcd.setCursor(10 , 0); lcd.print("PARAMETER"); lcd.setCursor(0 , 1); lcd.print("EAT: 6H | 11H | 17H"); lcd.setCursor(0 , 2); lcd.print("TAM || DEN: 9H||17H"); lcd.setCursor(0 , 3); lcd.print("MHIEN:6H-9H|15H-17H"); } void xl_nutnhan() { ///////////////// nut nhan chon hien thi LCD btn_tt = digitalRead(buttonPin); btn1 = digitalRead(buttonPin1); btn2 = digitalRead(buttonPin2); if (btn_tt != btn_codinh) { if (btn_tt == LOW) { lcd.clear(); delay(200); counter++; if (counter > 5) counter = 0; } } btn_codinh = btn_tt; //////////////// NUT NHAN TANG THOI GIAN AN if (btn1 != btn_codinh1 && counter == 3) { if (btn1 == LOW) { GIAY_CODE++; } } btn_codinh1 = btn1; ///////////////N UT NHAN GIAM THOI GIAN AN if (btn2 != btn_codinh2 && counter == 3) { if (btn2 == LOW) { GIAY_CODE ; } 102 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH Luan van PHỤ LỤC } btn_codinh2 = btn2; /// set realtime nut nhan /// gio if (btn1 != btn_codinh3 && counter == 4) { if (btn1 == LOW) { setgio++; if(setgio == 24) { setgio=0; } } } btn_codinh3 = btn1; if (btn2 != btn_codinh4 && counter == 4) { if (btn2 == LOW) { setgio ; } } btn_codinh4 = btn2; // phut if (btn1 != btn_codinh5 && counter == 5) { if (btn1 == LOW) { setphut++; if(setphut ==60) { setphut=0; } } } btn_codinh5 = btn1; if (btn2 != btn_codinh6 && counter == 5) { if (btn2 == LOW) { setphut ; } } btn_codinh6 = btn2; } 103 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH Luan van PHỤ LỤC void hienthi_h() { lcd.setCursor(0 , 0); if ( gio < 10) { lcd.print("0"); } lcd.print(gio); lcd.print(":"); if ( phut < 10) { lcd.print("0"); } lcd.print(phut); lcd.print(":"); if ( giay < 10) { lcd.print("0"); } lcd.print(giay); lcd.print(" "); ktgiay = giay; } void dung_hd() { digitalWrite(rain_c, LOW); digitalWrite(rain_o, LOW); digitalWrite(an_c, LOW); digitalWrite(an_o, LOW); digitalWrite(ug_o, LOW); digitalWrite(role_1, LOW); digitalWrite(role_2, LOW); digitalWrite(role_3, LOW); digitalWrite(role_4, LOW); digitalWrite(role_5, LOW); } void select() { switch (counter) { case 0: hienthi_1(); break; case 1: hienthi_2(); break; case 2: thongso(); break; case 3: hienthi_5(); break; case 4: hienthi_h(); setTime(setgio, setphut, 55, 1, 8, 2, 15); 104 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH Luan van PHỤ LỤC break; case 5: hienthi_h(); setTime(setgio, setphut, 55, 1, 8, 2, 15); break; } } void dung_dong_co_1() { digitalWrite(rain_o , LOW); digitalWrite(rain_c , LOW); } void DocThongTin(){ byte hoten[34]; byte diachi[18]; byte nhap[18]; byte xuat[18]; byte tiem[18]; byte block_hoten_1 = 4; byte block_hoten_2 = 5; byte block_diachi = 6; byte block_nhap = 8; byte block_xuat = 9; byte block_tiem = 10; if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } if ( ! mfrc522.PICC_ReadCardSerial()) { return; } digitalWrite(4,HIGH); ReadBlock(block_hoten_1, hoten); ReadBlock(block_hoten_2, &hoten[16]); ReadBlock(block_diachi, diachi); ReadBlock(block_nhap, nhap); ReadBlock(block_xuat, xuat); ReadBlock(block_tiem, tiem); Serial.write('*'); // Ky tu danh dau ket thuc viec gui du lieu mfrc522.PICC_HaltA(); mfrc522.PCD_StopCrypto1(); } void GhiThongTin(){ byte buf[96]; 105 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH Luan van PHỤ LỤC byte i=0; byte hoten[32]; byte diachi[16]; byte nhap[16]; byte xuat[16]; byte tiem[16]; byte block_hoten_1 = 4; byte block_hoten_2 = 5; byte block_diachi = 6; byte block_nhap = 8; byte block_xuat = 9; byte block_tiem = 10; mfrc522.PCD_Init(); // Init MFRC522 // Look for new cards if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Select one of the cards if ( ! mfrc522.PICC_ReadCardSerial()) { return; } digitalWrite(4,HIGH); // Doc chuoi while(i