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