1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Đồ án tốt nghiệp) thiết kế và thi công hệ thống báo chuông giờ học

107 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 107
Dung lượng 6,08 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 KỸ THUẬT ÐIỆN TỬ TRUYỀN THÔNG THIẾT KẾ VÀ THI CÔNG HỆ THỐNG BÁO CHUÔNG TRUỜNG HỌC GVHD: NGUYỄN VĂN HIỆP SVTH : VŨ ÐỨC HẢI MSSV: 15141013 SVTH : LÊ TUỜNG VÂN MSSV: 15141086 SKL005416 Tp Hồ Chí Minh, tháng 07/2019 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG BÁO CHUÔNG TRƯỜNG HỌC GVHD: Th Nguyễn Văn Hiệp SVTH: Vũ Đức Hải MSSV: 15141013 SVTH: Lê Tường Vân MSSV: 15141086 Tp Hồ Chí Minh – 07/2019 TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập- Tự do- Hạnh phúc o0o -TPHCM, ngày….tháng…năm 2019 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Vũ Đức Hải Chuyên ngành: Kỹ thuật Điện tử - Truyền thông MSSV: 15141013 Mã ngành: 41 Hệ đào tạo: Đại học quy Mã hệ: Họ tên sinh viên 2: Lê Tường Vân MSSV: 15141086 Chuyên ngành: Kỹ thuật Điện tử - Truyền thông Hệ đào tạo: Đại học quy Mã ngành: 41 Mã hệ: Khóa: 2015 I TÊN ĐỀ TÀI: HỆ THỐNG BÁO CHUÔNG TRƯỜNG HỌC II Nhiệm vụ: Các số liệu ban đầu: Kích thước mơ hình: chiều dài 85cm,chiều rộng 95cm, chiều cao 4cm Nguồn sử dụng thiết bị 220v Nguồn sử dụng realy,vi điều khiển 5v,3.3v Các mơ hình ứng dụng trường học, quan 2.Nội dung thực hiện: - Trần Thu Hà – Trương Thị Bích Ngà – Nguyễn Thị Lưỡng – Bùi Thị Tuyết Đan – Phù Thị Ngọc Hiếu – Dương Thị Cẩm Tú, Giáo trình Điện tử bản, Nhà xuất đại học quốc gia TP Hồ Chí Minh - Nguyễn Đình Phú, Giáo trình Vi điều khiển, Trường ĐH Sư Phạm Kỹ Thuật TP Hồ Chí Minh - Nguyễn Văn Hiệp – Đinh Quang Hiệp, Giáo trình Lập trình Android bản, Nhà xuất đại học quốc gia TP Hồ Chí Minh - Nguyễn Văn Hiệp, Giáo trình Lập trình Android ứng dụng điều khiển, Nhà xuất đại học quốc gia TP Hồ Chí Minh i - Thiết kế thi công phần cứng: Thiết kế thi công khối nạp vi điều khiển Thiết kế thi công khối điều khiển Thiết kế thi cơng khối hiển thị Lập trình phần cứng - Tìm hiểu firebase để cập nhật liệu điều khiển - Tìm hiểu giao diện cho ứng dụng chạy thiết bị Android - Tìm hiểu cách điều khiển module ESP8266 thông qua firebase - Đánh giá kết III NGÀY GIAO NHIỆM VỤ: IV NGÀY HOÀN THÀNH NHIỆM VỤ: V HỌ TÊN CÁN BỘ HƯỚNG DẪN CÁN BỘ HƯỚNG DẪN ThS Nguyễn Văn Hiệp BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP ii TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập- Tự do- Hạnh phúc o0o -TPHCM, ngày….tháng…năm 2019 Họ tên sinh viên 1: Vũ Đức Hải Chuyên ngành: Kỹ thuật Điện tử - Truyền thông MSSV: 15141013 Mã ngành: 41 Hệ đào tạo: Đại học quy Mã hệ: Họ tên sinh viên 2: Lê Tường Vân MSSV: 15141086 Chuyên ngành: Kỹ thuật Điện tử - Truyền thông Hệ đào tạo: Đại học quy Mã ngành: 41 Mã hệ: Khóa: 2015 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Tuần/Ngày Từ 26/3 đến 30/3 Từ 31/3 đến 7/4 Từ 8/4 đến 15/4 Từ 16/4 đến 16/5 Từ 17/5 đến 17/6 Từ 18/6 đến 20/6 iii Từ 21/6 đến 30/6 Từ 31/6 đến 1/7 iv LỜI CAM ĐOAN Đề tài nhóm tơi tự thực dựa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước Những người thực đề tài Vũ Đức Hải Lê Tường Vân v MỤC LỤC LỜI CAM ĐOAN MỤC LỤC MỤC LỤC HÌNH MỤC LỤC BẢNG LỜI CẢM ƠN CHƯƠNG TỔNG QUAN 1.1ĐẶT VẤN ĐỀ 1.2MỤC TIÊU 1.3NỘI DUNG NGHIÊN CỨU 1.4GIỚI HẠN 1.5BỐ CỤC CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU 2.2 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID 2.2.1Khái niệm Android 2.2.2Ưu nhược điểm Andr 2.3TỔNG QUAN VỀ FIREBASE 2.3.1Lịch sử 2.3.2Các chức Fi CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 3.1 GIỚI THIỆU 3.1.1Thực trạng nhu cầu 3.1.2Sơ đồ khối tổng quát sơ 3.1.3Thiết kế điện thoại 3.2Thiết kế mạch điều khiển chuông 3.2.1Vi điều khiển 3.2.2Mạch nạp 3.2.3Khối nguồn công suất 3.2.4Khối nút nhấn 3.2.5Khối nguồn 3.3Khối hiển thị vi 3.4 Khối thời gian thực 28 3.5 SƠ ĐỒ TOÀN MẠCH 31 CHƯƠNG THI CÔNG HỆ THỐNG 27 4.1 GIỚI THIỆU 27 4.2 THIẾT KẾ ỨNG DỤNG 27 4.2.1 Giới thiệu phần mềm Andrdoi Studio 27 4.2.2 Xây dựng Firebase 33 4.2.3 Xây dựng chương trình thực tế điện thoại thông minh .36 4.2.4 Thiết kế chương trình điện thoại thơng minh 38 4.3 Phần mềm lập trình cho vi điều khiển ESP8266 51 Lưu đồ giải thuật mạch vi điền khiển ESP8266 55 Lưu đồ giải thuật thực thi điều khiển 58 Lưu đồ giải thuật nút nhấn 61 4.4 THIẾT KẾ PHẦN CỨNG 61 4.4.1 THIẾT KẾ GIAO DIỆN MÀN HÌNH 61 4.4.2 THI CÔNG MẠCH ĐIỆN 65 CHƯƠNG KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ 70 5.1 KẾT QUẢ 70 5.1.1 Thiết kế chuông 70 5.1.2 Firebase 70 5.1.3 Phần mềm điều khiển 70 5.1.4 Một số hình ảnh ta sử dụng 70 5.2 Database Firebase 71 5.3 Phần mềm điều khiển 71 CHƯƠNG HƯỚNG PHÁT TRIỂN 73 6.1 Dữ liệu quản lý 73 6.2 Phần mềm thông minh 73 TÀI LIỆU THAM KHẢO Tiếng Việt 74 Phục lục Code Vi điều khiển ESP8266 75 vii TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Tiếng Việt [1] Trang web, “developer.android.com” mục “building apps for wearables “ [4] Trang web, “developer.android.com” mục “tin tức công nghệ” với chủ đề “Building Your First App” Sách tham khảo [1] Beginning Android [Calvo 2015-03-27] [2] Developing for Android [Devavrata Sharma] [7] Nguyễn Văn Hiệp – Đinh Quang Hiệp (2014), “Lập trình Android bản”, Đại Học SPKT HCM Tiếng Anh [9] Datasheet Opto 4n35 [10] Datasheet Mosfet IRF840 [11] Datasheet ESP8266EX BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 74 PHỤC LỤC CODE Phục lục Code Vi điều khiển ESP8266 #define QUOTE( ) # VA_ARGS // hỗ trợ write đoạn mã http dễ dàng #include #include //tạo sever wifi để save vào nhớ #include "Nextion.h" #include "FS.h" // quản lý nhớ #include #include // Comes with Arduino IDE ESP8266WebServer server(80); // dùng sever cổng 80 #define DS3231_I2C_ADDRESS 0x68 #include #define FIREBASE_AUTH "Pjo5ZTsJTnFSU63eUzyNGkrhKaX7xG8goTgTDhmQ" #define FIREBASE_HOST "timerrtc-30fc8.firebaseio.com" #define RL_MANHINH 13 #define RL_APP 12 #define BTN 16 boolean trang_thai_btn=0; int trangthai_1hoi,trangthai_2hoi; NexButton b00 = NexButton(0, 8, "b0"); NexButton b111 = NexButton(0, 9, "b1"); NexButton b1 = NexButton(1, 14, "b1"); NexButton b2 = NexButton(1, 15, "b2"); NexButton b3 = NexButton(1, 16, "b3"); NexButton b4 = NexButton(1, 17, "b4"); NexButton b5 = NexButton(1, 18, "b5"); NexButton b6 = NexButton(1, 19, "b6"); // NexButton b7 = NexButton(1, 20, "b7"); NexButton b8 = NexButton(1, 21, "b8"); NexButton b9 = NexButton(1, 22, "b9"); NexButton b10 = NexButton(1,23, "b10"); NexButton b11 = NexButton(1,24, "b11"); NexButton b12 = NexButton(1,25, "b12"); // NexText t2 = NexText(0, 10, "t2"); NexText t5 = NexText(0, 11, "t5"); NexText t6 = NexText(0, 12, "t6"); NexText t9 = NexText(0, 16, "t9"); // unsigned long timed; unsigned long curtimed; unsigned long timep; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤC LỤC CODE unsigned long curtimep; char buffer[15] = {0}; char buffer_temp[10] = {0}; char buffer_hour[10] = {0}; char buffer_week[10] = {0}; char buffer_second[10] = {0}; char buffer_year[10] = {0}; uint8_t number = 0; /* * Register a button object to the touch event list */ NexTouch *nex_listen_list[] = { &b00, &b111, &b1, &b2, &b3, &b4, &b5, &b6, &b7, &b8, &b9, &b10, &b11, &b12, &t2, &t5, &t6, &t9, NULL }; /* * Button bOn component pop callback function * When the ON button is released, the LED turns on and the state text changes */ void bOnPopCallback(void *ptr) { b00.setText("VAOHOC"); digitalWrite(RL_MANHINH, HIGH); delay(5000); digitalWrite(RL_MANHINH,LOW); } /* * Button bOff component pop callback function BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤC LỤC CODE * When the OFF button is released, the LED turns off and the state text changes */ void bOffPopCallback(void *ptr) { b111.setText("RAVE"); digitalWrite(RL_MANHINH, HIGH); delay(10000); digitalWrite(RL_MANHINH,LOW); } void b1PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; / retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); if (hour == 23){hour=-1;} setDS3231time(second, minute, hour+1, dayOfWeek, dayOfMonth, month, year); } // void b2PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; // retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); if (hour == 0){hour=24;} setDS3231time(second, minute, hour-1, dayOfWeek, dayOfMonth, month, year); } // void b3PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; / retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); if (minute == 59){minute=-1;} setDS3231time(second, minute+1, hour, dayOfWeek, dayOfMonth, month, year); } // void b4PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; / retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); if (minute == 0){minute=60;} setDS3231time(second, minute-1, hour, dayOfWeek, dayOfMonth, month, year); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤC LỤC CODE } // void b5PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; / retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); if (second == 59){second=-1;} setDS3231time(second+1, minute, hour, dayOfWeek, dayOfMonth, month, year); } // void b6PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; / retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); if (second == 0){second=60;} setDS3231time(second-1, minute, hour, dayOfWeek, dayOfMonth, month, year); } // void b9PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; / retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); / if (dayOfMonth == 31){dayOfMonth=0;} / setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth+1, month, year); setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth, month+1, year); } // void b10PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; // retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); / if (month == 12){month=0;} / setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth, month+1, year); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤC LỤC CODE setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth, month-1, year); } // void b11PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; / retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); / if (year == 99){year=-1;} / setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth, month, year+1); setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth, month, year+1); } / void b12PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; / retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); / if (dayOfMonth == 1){dayOfMonth=32;} / setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth-1, month, year); setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth, month, year1); } / void b7PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; / retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); / if (month == 1){month=13;} / setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth, month-1, year); setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth+1, month, year); } / void b8PopCallback(void *ptr) { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; // retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); // if (year == 0){year=100;} BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤC LỤC CODE / setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth, month, year- 1); setDS3231time(second, minute, hour, dayOfWeek, dayOfMonth-1, month, year); } void setDeviceFirebase() { Firebase.set("mothoi", 0); Firebase.set("haihoi", 0); } void dieukhien_cachoichuong() { trangthai_1hoi=Firebase.getInt("mothoi"); trangthai_2hoi=Firebase.getInt("haihoi"); // xu ly if(trangthai_1hoi==1) { / Serial.println("LED ON5s"); digitalWrite(RL_APP,HIGH); delay(5000); } if(trangthai_2hoi==1) { //Serial.println("LED ON10s"); digitalWrite(RL_APP,HIGH); delay(10000); } if(trangthai_1hoi==0) { //Serial.println("LED OFF5s"); digitalWrite(RL_APP,LOW); } if(trangthai_2hoi==0) { //Serial.println("LED OFF10s"); digitalWrite(RL_APP,LOW); } } void chong_doi_xuly_btn() { if(!digitalRead(BTN)){ delay(20); if(!digitalRead(BTN)) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤC LỤC CODE trang_thai_btn=!trang_thai_btn; if(trang_thai_btn==1) digitalWrite(RL_MANHINH,HIGH); if(trang_thai_btn==0) digitalWrite(RL_MANHINH,LOW); while(!digitalRead(BTN)); } } } void setup(void) { Serial.begin(115200); Wire.begin(); timed = millis(); /* Set the baudrate which is for debug and communicate with Nextion screen */ nexInit(); /* Register the pop event callback function of the current button component */ pinMode(RL_MANHINH,OUTPUT); digitalWrite(RL_MANHINH,LOW); pinMode(RL_APP,OUTPUT); digitalWrite(RL_APP,LOW); pinMode(BTN,INPUT); b00.attachPush(bOnPopCallback, &b00); b111.attachPush(bOffPopCallback, &b111); b1.attachPop(b1PopCallback, &b1); b2.attachPop(b2PopCallback, &b2); b3.attachPop(b3PopCallback, &b3); b4.attachPop(b4PopCallback, &b4); b5.attachPop(b5PopCallback, &b5); b6.attachPop(b6PopCallback, &b6); b7.attachPop(b7PopCallback, &b7); b8.attachPop(b8PopCallback, &b8); b9.attachPop(b9PopCallback, &b9); b10.attachPop(b10PopCallback, &b10); b11.attachPop(b11PopCallback, &b11); b12.attachPop(b12PopCallback, &b12); // // ESP QUÉT NHẬN WIFI- VỪA THU WIFI- VỪA PHÁT WIFI server.on("/",[]{ //khi có người truy cập truyền hàm if (server.hasArg("ssid") && server.hasArg("sspass")) { String tmp = server.arg("ssid") + "\n" + server.arg("sspass"); // gán giá trị ssid+sspass vào biến tmp SPIFFS.begin(); File f = SPIFFS.open("wifi", "w"); if (f) { // ép kiểu tmp f.write((const uint8_t*)tmp.c_str(), tmp.length()); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 81 PHỤC LỤC CODE } f.close(); server.send(200, "text/plain; charset=utf-8", "Đã thiết lập xong"); // gởi trình duyệt ESP.reset(); }else{ server.send(200, "text/html", QUOTE( // khơng kết nối(trạng thái qt wifi// gởi lại trình duyệt đoạn lệnh htlm Config WiFi // gởi địa server.on (dòng 18) Tên wifi: //trả tham số tên wifi Mật wifi: //trả tham số mật wifi //Tạo list wifi viết JAVA scrip window.onload = getData; function getData() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function () { if (this.readyState == && this.status == 200) { var resText = xhttp.responseText.split('|'); var tmp = ''; for (i = 0; i < resText.length; i++) { tmp = tmp + '' + resText[i] + '' ; } document.getElementById('listWifi').innerHTML = tmp; getData(); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤC LỤC CODE }; xhttp.open('GET', '/listWifi', true); xhttp.send(); }; function setUsr(divObj) { document.getElementById('wfname').value = divObj.innerHTML; } )); } }); server.on("/listWifi", [] { // liệu truyền tới ,sẽ tự động quét WIFI String list; int n = WiFi.scanNetworks(); if (n == 0) { list = "no networks found"; // Dữ liệu trả khơng có WIFI } else { for (int i = 0; i < n; ++i) { list += String(WiFi.SSID(i)) + "|"; } } server.send(200, "text/html", list); // Gởi lại liệu }); server.begin(); WiFi.mode(WIFI_AP_STA); //SETUP TÊN WIFI WiFi.softAP("DATN_THANG7", "12345678"); //SETUP TÊN WIFI String id = ""; String pass = ""; SPIFFS.begin(); File f = SPIFFS.open("wifi", "r"); if (f) { id = f.readStringUntil('\n'); pass = f.readString(); } f.close(); if ( id != "" && pass != "") { //Serial.println(String("Đang kết nối: ") + id + " | " + pass); WiFi.begin(id, pass); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤC LỤC CODE while (WiFi.status() != WL_CONNECTED ) { delay(100); //Serial.print("."); server.handleClient(); } //Serial.print(String("Kết nối thành công")); }else //Serial.print(String("Chưa có liệu wifi")); // ket noi firebase Firebase.begin(FIREBASE_HOST,FIREBASE_AUTH); // } void loop(void) { server.handleClient(); // RUN cho server chong_doi_xuly_btn(); setDeviceFirebase(); dieukhien_cachoichuong(); /* * When a pop or push event occured every time, * the corresponding component[right page id and component id] in touch event list will be asked */ nexLoop(nex_listen_list); curtimed = millis(); if (abs(curtimed-timed) >= 500){ byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; / retrieve data from DS3231 readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); number = hour; itoa(number, buffer_temp, 10); if (number < 10) { strcpy(buffer, "0"); strcat(buffer, buffer_temp); if (strcmp(buffer, buffer_second)) { t2.setText(buffer); //t0 strcpy(buffer_second, buffer); } } else BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤC LỤC CODE { if (strcmp(buffer_temp, buffer_second)) { t2.setText(buffer_temp); //t0 strcpy(buffer_second, buffer_temp); } } number = minute; itoa(number, buffer_temp, 10); if (number < 10) { strcpy(buffer, "0"); strcat(buffer, buffer_temp); if (strcmp(buffer, buffer_second)) { t5.setText(buffer); //t1 strcpy(buffer_second, buffer); } } else { if (strcmp(buffer_temp, buffer_second)) { t5.setText(buffer_temp); //t1 strcpy(buffer_second, buffer_temp); } } number = second; itoa(number, buffer_temp, 10); if (number < 10) { strcpy(buffer, "0"); strcat(buffer, buffer_temp); if (strcmp(buffer, buffer_second)) { t6.setText(buffer);//t2 strcpy(buffer_second, buffer); } } else { if (strcmp(buffer_temp, buffer_second)) { t6.setText(buffer_temp); //t2 strcpy(buffer_second, buffer_temp); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤC LỤC CODE } } memset(buffer, 0, sizeof(buffer)); memset(buffer_temp, 0, sizeof(buffer_temp)); /*receive day's data*/ number = dayOfMonth; itoa(number, buffer_temp, 10); strcat(buffer, buffer_temp); strcat(buffer, "/"); /*receive month's data*/ number = month; itoa(number, buffer_temp, 10); strcat(buffer, buffer_temp); strcat(buffer, "/"); /*receive year's data*/ number = year; strcat(buffer, "20"); if (year

Ngày đăng: 27/12/2021, 08:50

w