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 main(){ 00032 pc.baud(9600); 00033 esp.baud(9600); 00034 char *StudentID; 00035 uint8_t UIDCard[4]={}; 00036 pc.printf("starting...\n"); 00037 RfChip.PCD_Init(); 00038 myLCD.set_orientation(orient); 00039 int time; 00040 t.start(); 00041 myLCD.background(White); 00042 myLCD.foreground(foregroundcolor); 00043 myLCD.cls(); 00044 00045 while(1){ 00046 if(Pagejawjiw == 0){ 00047 myLCD.background(backgroundcolor); 00048 myLCD.foreground(foregroundcolor); 00049 myLCD.Bitmap(150,45,180,180,data); 00050 myLCD.fillrect(0,320,500,280,Orange); 00051 time=t.read_us(); 00052 if(! RfChip.PICC_IsNewCardPresent()){ 00053 pc.printf("GOOOOOOOOO\n"); 00054 for(int i=200; i<=200;i++){ 00055 myLCD.locate(i,295); 00056 myLCD.set_font((unsigned char*) Arial12x12); 00057 myLCD.printf("Please scan your Student ID card to start.");} 00058 for(int i=200; i>=2;i--){ 00059 myLCD.locate(i,295); 00060 myLCD.set_font((unsigned char*) Arial12x12); 00061 myLCD.printf("Please scan your Student ID card to start.");} 00062 continue;} 00063 if ( ! RfChip.PICC_ReadCardSerial()){pc.printf("!!!!!!!!!!!!!!!");continue;} 00064 pc.printf("Studen's ID: "); 00065 for (uint8_t i = 0; i < RfChip.uid.size; i++){UIDCard[i] = RfChip.uid.uidByte[i];} 00066 if (UIDCard[0]==187 and UIDCard[1]==164 and UIDCard[2]==90 and UIDCard[3]==127){StudentID = "60340500033"; 00067 pc.printf("%s\n",StudentID);Pagejawjiw = 1;myLCD.cls(); 00068 char b[] = "X"; 00069 esp.putc(b[0]); 00070 char id = esp.putc(b[0]); 00071 pc.printf("id %c\n",id); 00072 } 00073 else if (UIDCard[0]==60 and UIDCard[1]==135 and UIDCard[2]==56 and UIDCard[3]==59){StudentID = "60340500066"; 00074 pc.printf("%s\n",StudentID);Pagejawjiw = 1; 00075 char b[] = "Y"; 00076 esp.putc(b[0]); 00077 char id = esp.putc(b[0]); 00078 pc.printf("id %c\n",id); 00079 } 00080 else {StudentID="0"; pc.printf("%s\n",StudentID);} 00081 } 00082 else if (Pagejawjiw == 1) { 00083 if(i == 0 or Sw[2] == 0){ 00084 i++; 00085 switch(i){ 00086 case 1: 00087 char a[] = "1"; 00088 esp.putc(a[0]); 00089 char ty = esp.putc(a[0]); 00090 pc.printf("type %c\n",ty); 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 char b[] = "2"; 00124 esp.putc(b[0]); 00125 char ty2 = esp.putc(b[0]); 00126 pc.printf("type %c\n",ty2); 00127 pc.printf("B \n"); 00128 myLCD.fillrect(0,0,500,50,Orange); 00129 myLCD.rect(155,70,320,120,Orange); 00130 myLCD.rect(155,130,320,180,Orange); 00131 myLCD.rect(155,190,320,240,Orange); 00132 myLCD.rect(155,250,320,300,Orange); 00133 myLCD.set_font((unsigned char*) Arial28x28); 00134 myLCD.locate(160,15); 00135 myLCD.background(Orange); 00136 myLCD.foreground(Black); 00137 myLCD.printf("Select Mode"); 00138 myLCD.set_font((unsigned char*) Arial24x23); 00139 myLCD.locate(162,85); 00140 myLCD.background(White); 00141 myLCD.foreground(Black); 00142 myLCD.printf(" Document"); 00143 myLCD.locate(187,145); 00144 myLCD.background(Yellow); 00145 myLCD.foreground(Green); 00146 myLCD.printf("ID Card"); 00147 myLCD.locate(177,205); 00148 myLCD.background(White); 00149 myLCD.foreground(Black); 00150 myLCD.printf("Financial"); 00151 myLCD.locate(202,265); 00152 myLCD.background(White); 00153 myLCD.foreground(Black); 00154 myLCD.printf("Other"); 00155 wait(0.3); 00156 break; 00157 case 3: 00158 00159 char c[] = "3"; 00160 esp.putc(c[0]); 00161 char ty3 = esp.putc(c[0]); 00162 pc.printf("type %c\n",ty3); 00163 pc.printf("C \n"); 00164 myLCD.fillrect(0,0,500,50,Orange); 00165 myLCD.rect(155,70,320,120,Orange); 00166 myLCD.rect(155,130,320,180,Orange); 00167 myLCD.rect(155,190,320,240,Orange); 00168 myLCD.rect(155,250,320,300,Orange); 00169 myLCD.set_font((unsigned char*) Arial28x28); 00170 myLCD.locate(160,15); 00171 myLCD.background(Orange); 00172 myLCD.foreground(Black); 00173 myLCD.printf("Select Mode"); 00174 myLCD.set_font((unsigned char*) Arial24x23); 00175 myLCD.locate(162,85); 00176 myLCD.background(White); 00177 myLCD.foreground(Black); 00178 myLCD.printf(" Document"); 00179 myLCD.locate(187,145); 00180 myLCD.background(White); 00181 myLCD.foreground(Black); 00182 myLCD.printf("ID Card"); 00183 myLCD.locate(177,205); 00184 myLCD.background(Yellow); 00185 myLCD.foreground(Green); 00186 myLCD.printf("Financial"); 00187 myLCD.locate(202,265); 00188 myLCD.background(White); 00189 myLCD.foreground(Black); 00190 myLCD.printf("Other"); 00191 wait(0.3); 00192 break; 00193 case 4: 00194 char d[] = "4"; 00195 esp.putc(d[0]); 00196 char ty4 = esp.putc(d[0]); 00197 pc.printf("type %c\n",ty4); 00198 pc.printf("D \n"); 00199 myLCD.fillrect(0,0,500,50,Orange); 00200 myLCD.rect(155,70,320,120,Orange); 00201 myLCD.rect(155,130,320,180,Orange); 00202 myLCD.rect(155,190,320,240,Orange); 00203 myLCD.rect(155,250,320,300,Orange); 00204 myLCD.set_font((unsigned char*) Arial28x28); 00205 myLCD.locate(160,15); 00206 myLCD.background(Orange); 00207 myLCD.foreground(Black); 00208 myLCD.printf("Select Mode"); 00209 myLCD.set_font((unsigned char*) Arial24x23); 00210 myLCD.locate(162,85); 00211 myLCD.background(White); 00212 myLCD.foreground(Black); 00213 myLCD.printf(" Document"); 00214 myLCD.locate(187,145); 00215 myLCD.background(White); 00216 myLCD.foreground(Black); 00217 myLCD.printf("ID Card"); 00218 myLCD.locate(177,205); 00219 myLCD.background(White); 00220 myLCD.foreground(Black); 00221 myLCD.printf("Financial"); 00222 myLCD.locate(202,265); 00223 myLCD.background(Yellow); 00224 myLCD.foreground(Green); 00225 myLCD.printf("Other"); 00226 wait(0.3); 00227 break; 00228 case 5: 00229 i=0; 00230 // int typeA = 0; 00231 // int typeB = 0; 00232 // int typeC = 0; 00233 // int typeD = 0; 00234 break; 00235 } 00236 } 00237 else if(Sw[0] == 0){ 00238 i--; 00239 switch(i){ 00240 case 0: 00241 i = 5; 00242 break; 00243 case 1: 00244 //myLCD.cls(); 00245 myLCD.fillrect(0,0,500,50,Orange); 00246 myLCD.rect(155,70,320,120,Orange); 00247 myLCD.rect(155,130,320,180,Orange); 00248 myLCD.rect(155,190,320,240,Orange); 00249 myLCD.rect(155,250,320,300,Orange); 00250 myLCD.set_font((unsigned char*) Arial28x28); 00251 myLCD.locate(160,15); 00252 myLCD.background(Orange); 00253 myLCD.foreground(Black); 00254 myLCD.printf("Select Mode"); 00255 myLCD.set_font((unsigned char*) Arial24x23); 00256 myLCD.locate(162,85); 00257 myLCD.background(Yellow); 00258 myLCD.foreground(Green); 00259 myLCD.printf(" Document"); 00260 myLCD.locate(187,145); 00261 myLCD.background(White); 00262 myLCD.foreground(Black); 00263 myLCD.printf("ID Card"); 00264 myLCD.locate(177,205); 00265 myLCD.background(White); 00266 myLCD.foreground(Black); 00267 myLCD.printf("Financial"); 00268 myLCD.locate(202,265); 00269 myLCD.background(White); 00270 myLCD.foreground(Black); 00271 myLCD.printf("Other"); 00272 wait(0.3); 00273 break; 00274 case 2: 00275 myLCD.fillrect(0,0,500,50,Orange); 00276 myLCD.rect(155,70,320,120,Orange); 00277 myLCD.rect(155,130,320,180,Orange); 00278 myLCD.rect(155,190,320,240,Orange); 00279 myLCD.rect(155,250,320,300,Orange); 00280 myLCD.set_font((unsigned char*) Arial28x28); 00281 myLCD.locate(160,15); 00282 myLCD.background(Orange); 00283 myLCD.foreground(Black); 00284 myLCD.printf("Select Mode"); 00285 myLCD.set_font((unsigned char*) Arial24x23); 00286 myLCD.locate(162,85); 00287 myLCD.background(White); 00288 myLCD.foreground(Black); 00289 myLCD.printf(" Document"); 00290 myLCD.locate(187,145); 00291 myLCD.background(Yellow); 00292 myLCD.foreground(Green); 00293 myLCD.printf("ID Card"); 00294 myLCD.locate(177,205); 00295 myLCD.background(White); 00296 myLCD.foreground(Black); 00297 myLCD.printf("Financial"); 00298 myLCD.locate(202,265); 00299 myLCD.background(White); 00300 myLCD.foreground(Black); 00301 myLCD.printf("Other"); 00302 wait(0.3); 00303 break; 00304 case 3: 00305 myLCD.fillrect(0,0,500,50,Orange); 00306 myLCD.rect(155,70,320,120,Orange); 00307 myLCD.rect(155,130,320,180,Orange); 00308 myLCD.rect(155,190,320,240,Orange); 00309 myLCD.rect(155,250,320,300,Orange); 00310 myLCD.set_font((unsigned char*) Arial28x28); 00311 myLCD.locate(160,15); 00312 myLCD.background(Orange); 00313 myLCD.foreground(Black); 00314 myLCD.printf("Select Mode"); 00315 myLCD.set_font((unsigned char*) Arial24x23); 00316 myLCD.locate(162,85); 00317 myLCD.background(White); 00318 myLCD.foreground(Black); 00319 myLCD.printf(" Document"); 00320 myLCD.locate(187,145); 00321 myLCD.background(White); 00322 myLCD.foreground(Black); 00323 myLCD.printf("ID Card"); 00324 myLCD.locate(177,205); 00325 myLCD.background(Yellow); 00326 myLCD.foreground(Green); 00327 myLCD.printf("Financial"); 00328 myLCD.locate(202,265); 00329 myLCD.background(White); 00330 myLCD.foreground(Black); 00331 myLCD.printf("Other"); 00332 wait(0.3); 00333 break; 00334 case 4: 00335 myLCD.fillrect(0,0,500,50,Orange); 00336 myLCD.rect(155,70,320,120,Orange); 00337 myLCD.rect(155,130,320,180,Orange); 00338 myLCD.rect(155,190,320,240,Orange); 00339 myLCD.rect(155,250,320,300,Orange); 00340 myLCD.set_font((unsigned char*) Arial28x28); 00341 myLCD.locate(160,15); 00342 myLCD.background(Orange); 00343 myLCD.foreground(Black); 00344 myLCD.printf("Select Mode"); 00345 myLCD.set_font((unsigned char*) Arial24x23); 00346 myLCD.locate(162,85); 00347 myLCD.background(White); 00348 myLCD.foreground(Black); 00349 myLCD.printf(" Document"); 00350 myLCD.locate(187,145); 00351 myLCD.background(White); 00352 myLCD.foreground(Black); 00353 myLCD.printf("ID Card"); 00354 myLCD.locate(177,205); 00355 myLCD.background(White); 00356 myLCD.foreground(Black); 00357 myLCD.printf("Financial"); 00358 myLCD.locate(202,265); 00359 myLCD.background(Yellow); 00360 myLCD.foreground(Green); 00361 myLCD.printf("Other"); 00362 wait(0.3); 00363 break; 00364 } 00365 } 00366 else if(Sw[4] == 0){ 00367 Pagejawjiw++; 00368 wait(0.3); 00369 } 00370 } 00371 else if(Pagejawjiw == 2){ 00372 if(j == 0 or Sw[1] == 0){ 00373 switch(j){ 00374 case 0: 00375 j++; 00376 myLCD.cls(); 00377 myLCD.fillrect(0,0,500,50,Orange); 00378 myLCD.locate(150,15); 00379 myLCD.background(Orange); 00380 myLCD.set_font((unsigned char*) Arial28x28); 00381 myLCD.printf("Select JorJew"); 00382 myLCD.fillrect(40,130,215,230,DarkGrey); 00383 myLCD.fillrect(265,130,440,230,DarkGrey); 00384 myLCD.fillcircle(127,182,40,Yellow); 00385 myLCD.fillcircle(347,182,40,White); 00386 myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false); 00387 myLCD.background(White); 00388 myLCD.locate(106,160); 00389 myLCD.printf(" 1"); 00390 myLCD.locate(326,160); 00391 myLCD.printf(" 2"); 00392 wait(0.3); 00393 break; 00394 case 1: 00395 myLCD.fillrect(0,0,500,50,Orange); 00396 myLCD.locate(150,15); 00397 myLCD.background(Orange); 00398 myLCD.set_font((unsigned char*) Arial28x28); 00399 myLCD.printf("Select JorJew"); 00400 myLCD.fillrect(40,130,215,230,DarkGrey); 00401 myLCD.fillrect(265,130,440,230,DarkGrey); 00402 myLCD.fillcircle(127,182,40,White); 00403 myLCD.fillcircle(347,182,40,Yellow); 00404 myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false); 00405 myLCD.background(White); 00406 myLCD.locate(106,160); 00407 myLCD.printf(" 1"); 00408 myLCD.locate(326,160); 00409 myLCD.printf(" 2"); 00410 wait(0.3); 00411 break; 00412 } 00413 } 00414 else if(Sw[3] == 0){ 00415 myLCD.fillrect(0,0,500,50,Orange); 00416 myLCD.locate(150,15); 00417 myLCD.background(Orange); 00418 myLCD.set_font((unsigned char*) Arial28x28); 00419 myLCD.printf("Select JorJew"); 00420 myLCD.fillrect(40,130,215,230,DarkGrey); 00421 myLCD.fillrect(265,130,440,230,DarkGrey); 00422 myLCD.fillcircle(127,182,40,Yellow); 00423 myLCD.fillcircle(347,182,40,White); 00424 myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false); 00425 myLCD.background(White); 00426 myLCD.locate(106,160); 00427 myLCD.printf(" 1"); 00428 myLCD.locate(326,160); 00429 myLCD.printf(" 2"); 00430 wait(0.3); 00431 } 00432 else if(Sw[5] == 0){ 00433 Pagejawjiw = 1; 00434 wait(0.3); 00435 i = 0; 00436 myLCD.cls(); 00437 } 00438 else if(Sw[4] == 0){ 00439 Pagejawjiw++; 00440 wait(0.3); 00441 myLCD.cls(); 00442 k=0; 00443 } 00444 } 00445 else if(Pagejawjiw == 3){ 00446 if(k==0 or Sw[1] == 0){ 00447 myLCD.fillrect(0,0,500,50,Orange); 00448 myLCD.locate(150,15); 00449 myLCD.background(Orange); 00450 myLCD.fillrect(125,90,355,230,Green); 00451 myLCD.set_font((unsigned char*) Arial28x28); 00452 myLCD.locate(165,130); 00453 myLCD.background(Green); 00454 myLCD.foreground(Black); 00455 myLCD.printf(" Take out"); 00456 myLCD.locate(155,170); 00457 myLCD.printf(" JorJew#1/2"); 00458 myLCD.fillrect(100,250,215,300,Yellow); 00459 myLCD.fillrect(265,250,380,300,Yellow); 00460 myLCD.locate(110,260); 00461 myLCD.background(Green); 00462 myLCD.foreground(Black); 00463 myLCD.printf("(A)"); 00464 myLCD.locate(265,260); 00465 myLCD.printf("(C)"); 00466 k++; 00467 wait(0.3); 00468 } 00469 else if((Sw[0] == 0)){ 00470 myLCD.cls(); 00471 Pagejawjiw++; 00472 wait(0.3); 00473 } 00474 else if((Sw[2] == 0)){ 00475 Pagejawjiw--; 00476 wait(0.3); 00477 j = 0; 00478 } 00479 } 00480 else if(Pagejawjiw == 4){ 00481 myLCD.cls(); 00482 myLCD.background(backgroundcolor); 00483 myLCD.foreground(foregroundcolor); 00484 myLCD.Bitmap(150,45,180,180,data); 00485 myLCD.fillrect(0,320,500,280,Orange); 00486 time=t.read_us(); 00487 Pagejawjiw = 0; 00488 i = 0; 00489 for(int i=2; i<350;i++){ 00490 myLCD.locate(i,295); 00491 myLCD.set_font((unsigned char*) Arial12x12); 00492 myLCD.printf("Love , Thank you"); 00493 } 00494 for(int i=350; i>=2;i--){ 00495 myLCD.locate(i,295); 00496 myLCD.set_font((unsigned char*) Arial12x12); 00497 myLCD.printf("Love , Thank you"); 00498 } 00499 wait(5); 00500 myLCD.cls(); 00501 } 00502 } 00503 }
Generated on Wed Jul 13 2022 20:01:51 by
1.7.2