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