Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: TFT-RFID_Finish mbed MFRC522 UniGraphic
main.cpp
00001 #include "stdio.h" 00002 #include "mbed.h" 00003 #include "string" 00004 #include "Arial12x12.h" 00005 #include "Arial24x23.h" 00006 #include "Arial28x28.h" 00007 #include "Arial43x48_numb.h" 00008 #include "pict.h" 00009 #include "pavement_48x34.h" 00010 #include "TFT_MIPI.h" 00011 #include "SDFileSystem.h" 00012 #include "MFRC522.h" 00013 #define MF_RESET PC_6 00014 Serial pc(SERIAL_TX, SERIAL_RX); 00015 Serial esp(PA_15,PB_7); 00016 MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET); 00017 PinName buspins[] = { PA_9, PC_7, PA_10, PB_3, PB_5, PB_4, PB_10, PA_8 }; 00018 TFT_MIPI myLCD(BUS_8, buspins, A3, A4, A2, A1, A0, "myLCD"); 00019 DigitalIn Sw[] = {PB_13, PB_14, PB_15, PB_2, PB_12,PA_11 }; 00020 Timer t; 00021 00022 unsigned short backgroundcolor=Orange; 00023 unsigned short foregroundcolor=Black; 00024 char orient=1; 00025 char b[] = " "; 00026 int i=0; 00027 int j=0; 00028 int k=0; 00029 int Pagejawjiw = 0; 00030 int state = 0; 00031 int select = 0; 00032 int main(){ 00033 pc.baud(9600); 00034 esp.baud(9600); 00035 char *StudentID; 00036 uint8_t UIDCard[4]={}; 00037 pc.printf("starting...\n"); 00038 RfChip.PCD_Init(); 00039 myLCD.set_orientation(orient); 00040 int time; 00041 t.start(); 00042 myLCD.background(White); 00043 myLCD.foreground(foregroundcolor); 00044 myLCD.cls(); 00045 00046 00047 while(1){ 00048 if(Pagejawjiw == 0){ 00049 myLCD.background(backgroundcolor); 00050 myLCD.foreground(foregroundcolor); 00051 myLCD.Bitmap(150,45,180,180,data); 00052 myLCD.fillrect(0,320,500,280,Orange); 00053 time=t.read_us(); 00054 if(! RfChip.PICC_IsNewCardPresent()){ 00055 pc.printf("GOOOOOOOOO\n"); 00056 for(int i=200; i<=200;i++){ 00057 myLCD.locate(i,295); 00058 myLCD.set_font((unsigned char*) Arial12x12); 00059 myLCD.printf("Please scan your Student ID card to start.");} 00060 for(int i=200; i>=2;i--){ 00061 myLCD.locate(i,295); 00062 myLCD.set_font((unsigned char*) Arial12x12); 00063 myLCD.printf("Please scan your Student ID card to start.");} 00064 continue;} 00065 if ( ! RfChip.PICC_ReadCardSerial()){pc.printf("!!!!!!!!!!!!!!!");continue;} 00066 pc.printf("Studen's ID: "); 00067 for (uint8_t i = 0; i < RfChip.uid.size; i++){UIDCard[i] = RfChip.uid.uidByte[i];} 00068 if (UIDCard[0]==187 and UIDCard[1]==164 and UIDCard[2]==90 and UIDCard[3]==127){StudentID = "60340500033"; 00069 pc.printf("%s\n",StudentID);Pagejawjiw = 1;myLCD.cls(); 00070 char b[] = "X"; 00071 esp.putc(b[0]); 00072 char id = esp.putc(b[0]); 00073 pc.printf("id %c\n",id); 00074 } 00075 else if (UIDCard[0]==60 and UIDCard[1]==135 and UIDCard[2]==56 and UIDCard[3]==59){StudentID = "60340500066"; 00076 pc.printf("%s\n",StudentID);Pagejawjiw = 1; 00077 char b[] = "Y"; 00078 esp.putc(b[0]); 00079 char id = esp.putc(b[0]); 00080 pc.printf("id %c\n",id); 00081 } 00082 else {StudentID="0"; pc.printf("%s\n",StudentID);} 00083 } 00084 else if (Pagejawjiw == 1) { 00085 if(i == 0 or Sw[2] == 0){ 00086 i++; 00087 00088 switch(i){ 00089 case 1: 00090 select = 1; 00091 pc.printf("A \n"); 00092 myLCD.fillrect(0,0,500,50,Orange); 00093 myLCD.rect(155,70,320,120,Orange); 00094 myLCD.rect(155,130,320,180,Orange); 00095 myLCD.rect(155,190,320,240,Orange); 00096 myLCD.rect(155,250,320,300,Orange); 00097 myLCD.set_font((unsigned char*) Arial28x28); 00098 myLCD.locate(160,15); 00099 myLCD.background(Orange); 00100 myLCD.foreground(Black); 00101 myLCD.printf("Select Mode"); 00102 myLCD.set_font((unsigned char*) Arial24x23); 00103 myLCD.locate(162,85); 00104 myLCD.background(Yellow); 00105 myLCD.foreground(Green); 00106 myLCD.printf(" Document"); 00107 myLCD.locate(187,145); 00108 myLCD.background(White); 00109 myLCD.foreground(Black); 00110 myLCD.printf("ID Card"); 00111 myLCD.locate(177,205); 00112 myLCD.background(White); 00113 myLCD.foreground(Black); 00114 myLCD.printf("Financial"); 00115 myLCD.locate(202,265); 00116 myLCD.background(White); 00117 myLCD.foreground(Black); 00118 myLCD.printf("Other"); 00119 wait(0.3); 00120 break; 00121 case 2: 00122 //myLCD.cls(); 00123 select = 2; 00124 pc.printf("B \n"); 00125 myLCD.fillrect(0,0,500,50,Orange); 00126 myLCD.rect(155,70,320,120,Orange); 00127 myLCD.rect(155,130,320,180,Orange); 00128 myLCD.rect(155,190,320,240,Orange); 00129 myLCD.rect(155,250,320,300,Orange); 00130 myLCD.set_font((unsigned char*) Arial28x28); 00131 myLCD.locate(160,15); 00132 myLCD.background(Orange); 00133 myLCD.foreground(Black); 00134 myLCD.printf("Select Mode"); 00135 myLCD.set_font((unsigned char*) Arial24x23); 00136 myLCD.locate(162,85); 00137 myLCD.background(White); 00138 myLCD.foreground(Black); 00139 myLCD.printf(" Document"); 00140 myLCD.locate(187,145); 00141 myLCD.background(Yellow); 00142 myLCD.foreground(Green); 00143 myLCD.printf("ID Card"); 00144 myLCD.locate(177,205); 00145 myLCD.background(White); 00146 myLCD.foreground(Black); 00147 myLCD.printf("Financial"); 00148 myLCD.locate(202,265); 00149 myLCD.background(White); 00150 myLCD.foreground(Black); 00151 myLCD.printf("Other"); 00152 wait(0.3); 00153 break; 00154 case 3: 00155 select = 3; 00156 pc.printf("C \n"); 00157 myLCD.fillrect(0,0,500,50,Orange); 00158 myLCD.rect(155,70,320,120,Orange); 00159 myLCD.rect(155,130,320,180,Orange); 00160 myLCD.rect(155,190,320,240,Orange); 00161 myLCD.rect(155,250,320,300,Orange); 00162 myLCD.set_font((unsigned char*) Arial28x28); 00163 myLCD.locate(160,15); 00164 myLCD.background(Orange); 00165 myLCD.foreground(Black); 00166 myLCD.printf("Select Mode"); 00167 myLCD.set_font((unsigned char*) Arial24x23); 00168 myLCD.locate(162,85); 00169 myLCD.background(White); 00170 myLCD.foreground(Black); 00171 myLCD.printf(" Document"); 00172 myLCD.locate(187,145); 00173 myLCD.background(White); 00174 myLCD.foreground(Black); 00175 myLCD.printf("ID Card"); 00176 myLCD.locate(177,205); 00177 myLCD.background(Yellow); 00178 myLCD.foreground(Green); 00179 myLCD.printf("Financial"); 00180 myLCD.locate(202,265); 00181 myLCD.background(White); 00182 myLCD.foreground(Black); 00183 myLCD.printf("Other"); 00184 wait(0.3); 00185 break; 00186 case 4: 00187 select = 4; 00188 pc.printf("D \n"); 00189 myLCD.fillrect(0,0,500,50,Orange); 00190 myLCD.rect(155,70,320,120,Orange); 00191 myLCD.rect(155,130,320,180,Orange); 00192 myLCD.rect(155,190,320,240,Orange); 00193 myLCD.rect(155,250,320,300,Orange); 00194 myLCD.set_font((unsigned char*) Arial28x28); 00195 myLCD.locate(160,15); 00196 myLCD.background(Orange); 00197 myLCD.foreground(Black); 00198 myLCD.printf("Select Mode"); 00199 myLCD.set_font((unsigned char*) Arial24x23); 00200 myLCD.locate(162,85); 00201 myLCD.background(White); 00202 myLCD.foreground(Black); 00203 myLCD.printf(" Document"); 00204 myLCD.locate(187,145); 00205 myLCD.background(White); 00206 myLCD.foreground(Black); 00207 myLCD.printf("ID Card"); 00208 myLCD.locate(177,205); 00209 myLCD.background(White); 00210 myLCD.foreground(Black); 00211 myLCD.printf("Financial"); 00212 myLCD.locate(202,265); 00213 myLCD.background(Yellow); 00214 myLCD.foreground(Green); 00215 myLCD.printf("Other"); 00216 wait(0.3); 00217 break; 00218 case 5: 00219 i=0; 00220 // int typeA = 0; 00221 // int typeB = 0; 00222 // int typeC = 0; 00223 // int typeD = 0; 00224 break; 00225 } 00226 } 00227 else if(Sw[0] == 0){ 00228 i--; 00229 switch(i){ 00230 case 0: 00231 i = 5; 00232 break; 00233 case 1: 00234 //myLCD.cls(); 00235 myLCD.fillrect(0,0,500,50,Orange); 00236 myLCD.rect(155,70,320,120,Orange); 00237 myLCD.rect(155,130,320,180,Orange); 00238 myLCD.rect(155,190,320,240,Orange); 00239 myLCD.rect(155,250,320,300,Orange); 00240 myLCD.set_font((unsigned char*) Arial28x28); 00241 myLCD.locate(160,15); 00242 myLCD.background(Orange); 00243 myLCD.foreground(Black); 00244 myLCD.printf("Select Mode"); 00245 myLCD.set_font((unsigned char*) Arial24x23); 00246 myLCD.locate(162,85); 00247 myLCD.background(Yellow); 00248 myLCD.foreground(Green); 00249 myLCD.printf(" Document"); 00250 myLCD.locate(187,145); 00251 myLCD.background(White); 00252 myLCD.foreground(Black); 00253 myLCD.printf("ID Card"); 00254 myLCD.locate(177,205); 00255 myLCD.background(White); 00256 myLCD.foreground(Black); 00257 myLCD.printf("Financial"); 00258 myLCD.locate(202,265); 00259 myLCD.background(White); 00260 myLCD.foreground(Black); 00261 myLCD.printf("Other"); 00262 wait(0.3); 00263 break; 00264 case 2: 00265 myLCD.fillrect(0,0,500,50,Orange); 00266 myLCD.rect(155,70,320,120,Orange); 00267 myLCD.rect(155,130,320,180,Orange); 00268 myLCD.rect(155,190,320,240,Orange); 00269 myLCD.rect(155,250,320,300,Orange); 00270 myLCD.set_font((unsigned char*) Arial28x28); 00271 myLCD.locate(160,15); 00272 myLCD.background(Orange); 00273 myLCD.foreground(Black); 00274 myLCD.printf("Select Mode"); 00275 myLCD.set_font((unsigned char*) Arial24x23); 00276 myLCD.locate(162,85); 00277 myLCD.background(White); 00278 myLCD.foreground(Black); 00279 myLCD.printf(" Document"); 00280 myLCD.locate(187,145); 00281 myLCD.background(Yellow); 00282 myLCD.foreground(Green); 00283 myLCD.printf("ID Card"); 00284 myLCD.locate(177,205); 00285 myLCD.background(White); 00286 myLCD.foreground(Black); 00287 myLCD.printf("Financial"); 00288 myLCD.locate(202,265); 00289 myLCD.background(White); 00290 myLCD.foreground(Black); 00291 myLCD.printf("Other"); 00292 wait(0.3); 00293 break; 00294 case 3: 00295 myLCD.fillrect(0,0,500,50,Orange); 00296 myLCD.rect(155,70,320,120,Orange); 00297 myLCD.rect(155,130,320,180,Orange); 00298 myLCD.rect(155,190,320,240,Orange); 00299 myLCD.rect(155,250,320,300,Orange); 00300 myLCD.set_font((unsigned char*) Arial28x28); 00301 myLCD.locate(160,15); 00302 myLCD.background(Orange); 00303 myLCD.foreground(Black); 00304 myLCD.printf("Select Mode"); 00305 myLCD.set_font((unsigned char*) Arial24x23); 00306 myLCD.locate(162,85); 00307 myLCD.background(White); 00308 myLCD.foreground(Black); 00309 myLCD.printf(" Document"); 00310 myLCD.locate(187,145); 00311 myLCD.background(White); 00312 myLCD.foreground(Black); 00313 myLCD.printf("ID Card"); 00314 myLCD.locate(177,205); 00315 myLCD.background(Yellow); 00316 myLCD.foreground(Green); 00317 myLCD.printf("Financial"); 00318 myLCD.locate(202,265); 00319 myLCD.background(White); 00320 myLCD.foreground(Black); 00321 myLCD.printf("Other"); 00322 wait(0.3); 00323 break; 00324 case 4: 00325 myLCD.fillrect(0,0,500,50,Orange); 00326 myLCD.rect(155,70,320,120,Orange); 00327 myLCD.rect(155,130,320,180,Orange); 00328 myLCD.rect(155,190,320,240,Orange); 00329 myLCD.rect(155,250,320,300,Orange); 00330 myLCD.set_font((unsigned char*) Arial28x28); 00331 myLCD.locate(160,15); 00332 myLCD.background(Orange); 00333 myLCD.foreground(Black); 00334 myLCD.printf("Select Mode"); 00335 myLCD.set_font((unsigned char*) Arial24x23); 00336 myLCD.locate(162,85); 00337 myLCD.background(White); 00338 myLCD.foreground(Black); 00339 myLCD.printf(" Document"); 00340 myLCD.locate(187,145); 00341 myLCD.background(White); 00342 myLCD.foreground(Black); 00343 myLCD.printf("ID Card"); 00344 myLCD.locate(177,205); 00345 myLCD.background(White); 00346 myLCD.foreground(Black); 00347 myLCD.printf("Financial"); 00348 myLCD.locate(202,265); 00349 myLCD.background(Yellow); 00350 myLCD.foreground(Green); 00351 myLCD.printf("Other"); 00352 wait(0.3); 00353 break; 00354 } 00355 } 00356 else if(Sw[4] == 0){ 00357 pc.printf("%d",select); 00358 if(select == 1){ 00359 char a[] = "1"; 00360 esp.putc(a[0]); 00361 char ty1 = esp.putc(a[0]); 00362 pc.printf("type %c\n",ty1); 00363 } 00364 else if(select == 2){ 00365 char b[] = "2"; 00366 esp.putc(b[0]); 00367 char ty2 = esp.putc(b[0]); 00368 pc.printf("type %c\n",ty2); 00369 } 00370 else if(select == 3){ 00371 char c[] = "3"; 00372 esp.putc(c[0]); 00373 char ty3 = esp.putc(c[0]); 00374 pc.printf("type %c\n",ty3); 00375 } 00376 else if(select == 4){ 00377 char d[] = "4"; 00378 esp.putc(d[0]); 00379 char ty4 = esp.putc(d[0]); 00380 pc.printf("type %c\n",ty4); 00381 } 00382 00383 Pagejawjiw++; 00384 wait(0.3); 00385 } 00386 } 00387 else if(Pagejawjiw == 2){ 00388 if(j == 0 or Sw[1] == 0){ 00389 switch(j){ 00390 case 0: 00391 j++; 00392 myLCD.cls(); 00393 myLCD.fillrect(0,0,500,50,Orange); 00394 myLCD.locate(150,15); 00395 myLCD.background(Orange); 00396 myLCD.set_font((unsigned char*) Arial28x28); 00397 myLCD.printf("Select JorJew"); 00398 myLCD.fillrect(40,130,215,230,DarkGrey); 00399 myLCD.fillrect(265,130,440,230,DarkGrey); 00400 myLCD.fillcircle(127,182,40,Yellow); 00401 myLCD.fillcircle(347,182,40,White); 00402 myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false); 00403 myLCD.background(White); 00404 myLCD.locate(106,160); 00405 myLCD.printf(" 1"); 00406 myLCD.locate(326,160); 00407 myLCD.printf(" 2"); 00408 wait(0.3); 00409 break; 00410 case 1: 00411 myLCD.fillrect(0,0,500,50,Orange); 00412 myLCD.locate(150,15); 00413 myLCD.background(Orange); 00414 myLCD.set_font((unsigned char*) Arial28x28); 00415 myLCD.printf("Select JorJew"); 00416 myLCD.fillrect(40,130,215,230,DarkGrey); 00417 myLCD.fillrect(265,130,440,230,DarkGrey); 00418 myLCD.fillcircle(127,182,40,White); 00419 myLCD.fillcircle(347,182,40,Yellow); 00420 myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false); 00421 myLCD.background(White); 00422 myLCD.locate(106,160); 00423 myLCD.printf(" 1"); 00424 myLCD.locate(326,160); 00425 myLCD.printf(" 2"); 00426 wait(0.3); 00427 break; 00428 } 00429 } 00430 else if(Sw[3] == 0){ 00431 myLCD.fillrect(0,0,500,50,Orange); 00432 myLCD.locate(150,15); 00433 myLCD.background(Orange); 00434 myLCD.set_font((unsigned char*) Arial28x28); 00435 myLCD.printf("Select JorJew"); 00436 myLCD.fillrect(40,130,215,230,DarkGrey); 00437 myLCD.fillrect(265,130,440,230,DarkGrey); 00438 myLCD.fillcircle(127,182,40,Yellow); 00439 myLCD.fillcircle(347,182,40,White); 00440 myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false); 00441 myLCD.background(White); 00442 myLCD.locate(106,160); 00443 myLCD.printf(" 1"); 00444 myLCD.locate(326,160); 00445 myLCD.printf(" 2"); 00446 wait(0.3); 00447 } 00448 else if(Sw[5] == 0){ 00449 Pagejawjiw = 1; 00450 wait(0.3); 00451 i = 0; 00452 myLCD.cls(); 00453 } 00454 else if(Sw[4] == 0){ 00455 Pagejawjiw++; 00456 wait(0.3); 00457 myLCD.cls(); 00458 k=0; 00459 } 00460 } 00461 else if(Pagejawjiw == 3){ 00462 if(k==0 or Sw[1] == 0){ 00463 myLCD.fillrect(0,0,500,50,Orange); 00464 myLCD.locate(150,15); 00465 myLCD.background(Orange); 00466 myLCD.fillrect(125,90,355,230,Green); 00467 myLCD.set_font((unsigned char*) Arial28x28); 00468 myLCD.locate(165,130); 00469 myLCD.background(Green); 00470 myLCD.foreground(Black); 00471 myLCD.printf(" Take out"); 00472 myLCD.locate(155,170); 00473 myLCD.printf(" JorJew#1/2"); 00474 myLCD.fillrect(100,250,215,300,Yellow); 00475 myLCD.fillrect(265,250,380,300,Yellow); 00476 myLCD.locate(110,260); 00477 myLCD.background(Green); 00478 myLCD.foreground(Black); 00479 myLCD.printf("(A)"); 00480 myLCD.locate(265,260); 00481 myLCD.printf("(C)"); 00482 k++; 00483 wait(0.3); 00484 } 00485 else if((Sw[0] == 0)){ 00486 myLCD.cls(); 00487 Pagejawjiw++; 00488 wait(0.3); 00489 } 00490 else if((Sw[2] == 0)){ 00491 Pagejawjiw--; 00492 wait(0.3); 00493 j = 0; 00494 } 00495 } 00496 else if(Pagejawjiw == 4){ 00497 myLCD.cls(); 00498 myLCD.background(backgroundcolor); 00499 myLCD.foreground(foregroundcolor); 00500 myLCD.Bitmap(150,45,180,180,data); 00501 myLCD.fillrect(0,320,500,280,Orange); 00502 time=t.read_us(); 00503 Pagejawjiw = 0; 00504 i = 0; 00505 for(int i=2; i<350;i++){ 00506 myLCD.locate(i,295); 00507 myLCD.set_font((unsigned char*) Arial12x12); 00508 myLCD.printf("Love , Thank you"); 00509 } 00510 for(int i=350; i>=2;i--){ 00511 myLCD.locate(i,295); 00512 myLCD.set_font((unsigned char*) Arial12x12); 00513 myLCD.printf("Love , Thank you"); 00514 } 00515 wait(5); 00516 myLCD.cls(); 00517 } 00518 } 00519 }
Generated on Sun Jul 17 2022 11:51:50 by
