Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 122 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
122
Dung lượng
4,5 MB
Nội dung
TR B 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 MÔN I N T CÔNG NGHI P ậ Y SINH NHI M V C L P - T DO - H NH PHÚC o0o -Tp HCM, ngày 10 thángă07ăn mă2018 ÁN T T NGHI P H tên sinh viên: Nguy n Ng c Th ch MSSV: 14141292 oƠnăQu c Duy t MSSV: 14141045 Chuyên ngành: Công ngh k thu tăđi n - 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 14141DT1B I.ăTểNă TÀI: THI T K VÀ THI CƠNG MƠ HÌNH H LÝ TRANG TR I HEO TH NG VÀ QU N II NHI M V N i dung th c hi n: N iă dungă 1:ă Tìmă hi uă vƠă 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ătrênăth ăTagăc aăModuleăRFID,ăthi tăl păgiaoădi năC#ă Visual Studio N iădungă3:ă i uăkhi năcácăthi tăb ătheoăc măbi năvƠăth iăgianăth c N iădungă4:ăThi tăk ăvƠăl pătrìnhă ngăd ngătrênăh ăđi uăhƠnhăAndroidăvƠăg iăcácă ho tăđ ngălênăwebăFireBase N iădungă5:ăThi tăk ăvƠă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ăqu ăth căhi n 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 CÁN B H NG D N NG D N: ThS Nguy năTr BM.ă I N T ng Duy CÔNG NGHI P ậ Y SINH ii TR B 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 MÔN I N T CÔNG NGHI P ậ Y SINH L CH TRÌNH TH C HI N H L H L tên sinh viên 1: Nguy n Ng c Th ch p:14141DT1C tên sinh viên 2: oƠnăQu c Duy t p: 14141DT1B C L P - T DO - H NH PHÚC o0o -Tp HCM, ngày 10 thángă07ăn mă2018 ÁN T T NGHI P MSSV: 14141292 MSSV: 14141045 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) 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) 10/07/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ătrênăth Tag c a Module RFID, thi t l p giao di n C# Visual Studio i u n thi t b theo c m bi n th i gian th c Thi t k l p trình ng d ng h 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 Hoàn thành nhi m v đ án GVăH NG D N (Ký ghi rõ h tên) iii L I CAM tài t th c hi n d Tr tr OAN is h ng d n c a th y ThS Nguy n ng Duy, d a vào m t s tài li u không chép t tài li uăhayăcơngătrìnhăđƣăcóă căđó.ăN u có b t k s gian l n xin ch u trách nhi m v n iădungăđ án c a Ng iăth căhi n Nguy n Ng c Th chăăă oƠnăQu c Duy t iv L IC 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 nh ngăn măqua.ăTrongăđóăph i k đ n quý th yă côă trongă khoaă i n ậ i n T đƣă truy nă đ t nh ng ki n th c, kinh nghi m v i s đamămêăc aămìnhănh ăđ t lên nh ng ng n l aăđamămêăkhámăpháă m i chúng em r i t nh ng ki n th c,ăđamămêăđóăchúngăemăk t l i thành m t đ án cu iăcùng,ăđ án t t nghi p tay t oăra,ănóănh ăm tăbƠnăđ păđ u tiênăđ b c vào nh ng cánh c a l năh 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 hi năđ tài Trong trình th c hi năđ ánăc ngăx y nhi uăkhóăkh n,ăthi u sót nh ngăđ c s đơnăđ c góp ý c a th yăchúngăemăđƣăg tăháiăđ c nhi u ki n th c kinh nghi m M t l n n a chúng em xin c mă n th y Sinh viên th c hi năđ án Nguy n Ng c Th chăăă oƠnăQu c Duy t v M CL 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 IC 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ă 1.5 B C Că CH NG 2: C TÀI ÁN 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 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 CH 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 NG TệNH TOÁN VẨ THI T K 27 3.1 GI I THI U 27 3.2 TÍNH TỐ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 ă CH NGUYÊN LÝ C A TOÀN M CH 37 NG THI CÔNG H TH NG 38 4.1 THI CÔNG H TH NG: 38 4.2ăL Uă 4.2.1 L Uă GI I THU T 40 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 CH NGăTRÌNHăTRểNăANDROIDăSTUDIO 56 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 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 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ăvƠă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ăc ă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 gi a thi t b 23 Hình 2-24: Truy n SPI nhi u thi t b 24 Hình 2-25: Ch đ c ăb n c a SPI 25 Hình 2-26: Truy n g i d 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 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ăđ u nămáyăb m 42 Hình 4-5:ăL uăđ t m cho heo 43 Hình 4-6:ăL uăđ u 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ăđ u n b tăđèn 46 Hình 4-9:ăL uăđ u n mái hiên 47 Hình 4-10:ăL uăđ u 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 gi a 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 c a 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 m i Android 60 Hình 4-29: Ch n hình 61 Hình 4-30: Ch n phiên b 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 Hình 5-4: B ngăđi u n ho tăđ ng 67 Hình 5-5: Màn hình LCD 20x4 hi n th 67 Hình 5-6: B ng làm vi c n t n i Arduino 68 vii PH L C delayMicroseconds(5); //ăxungăcóăđ ădƠiă5ămicroSeconds digitalWrite(trig, 0); //ăt tăchơnătrig /*ăTínhătốnăth iăgiană*/ //ă oăđ ăr ngăxungăHIGHă ăchơnăecho duration = pulseIn(echo, HIGH); //ăTínhăkho ngăcáchăđ năv t khoangcach = int(duration / / 29.412); mucnuoc=17-khoangcach; } // cma bien khaong cach 2///////////////////////////// ////////////////////////////////////////////////////// void HC_RS04_1() { readDS1307(); digitalWrite(trig_1, 0); //ăt tăchơnătrig delayMicroseconds(2); digitalWrite(trig_1, 1); //ăphátăxungăt ăchơnătrig delayMicroseconds(5); //ăxungăcóăđ ădƠiă5ămicroSeconds digitalWrite(trig_1, 0); //ăt tăchơnătrig /*ăTínhătốnăth iăgiană*/ //ă oăđ ăr ngăxungăHIGHă ăchơnăecho.ă//// ///////////////////////////////////////// duration_1 = pulseIn(echo_1, HIGH); // Tính kho ngăcáchăđ năv t khoangcach_1 = int(duration_1 / / 29.412); mucnuoc1= (7-khoangcach_1); } // ham su li cam bien mua////////////////////////////////// /////////////////////////////////////////////////////////// void cambien_mua() { readDS1307(); value = digitalRead(rainSensor);// cătínăhi uăc măbi năm a } //dieu khien van cho an//////////////////////////////////////////////// void van_cho_an() { readDS1307(); if (gio == || gio == 11 || gio == 17 ) if (phut < 1) 96 B MỌNă I N T CÔNG NGHI P Y SINH 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 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 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 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 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 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 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 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 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