RFID-RC522 LCD 16x2 A1602

Dependencies:   mbed MFRC522 TextLCD

Files at this revision

API Documentation at this revision

Comitter:
cristianve
Date:
Mon May 18 12:49:22 2020 +0000
Parent:
6:edbad35965d6
Commit message:
Fixed Bugs!

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r edbad35965d6 -r 1e3fedf9f001 main.cpp
--- a/main.cpp	Sun May 10 09:53:34 2020 +0000
+++ b/main.cpp	Mon May 18 12:49:22 2020 +0000
@@ -80,53 +80,100 @@
 time_t seconds = time(NULL);
 
 
-bool usuario1= true;
+bool entradaUsuarioLlavero=false;
+bool entradaUsuarioTarjeta=false;
+
 
 void DumpToSerial(MFRC522::Uid *uid)
 {
     MFRC522::MIFARE_Key key;
-    //4602 1C02 9C02 7302
-    //7002 1902 D802 2B02
+    
+    //4602 1C02 9C02 7302 LLAVERO
+    //7002 1902 D802 2B02 TARJETA
     //Cristian Vega - 1426805
     //Jordi Alejandre Camps - 1494147
     //Pablo Muñoz Coronas - 1358297
 
-    // UID
-    printf("Tarjeta Detectada! Card UID\n\r");
-   
+
+    bool llaveroDetectado=false;
+    bool tarjetaDetectado=false;
     
-    lcd.printf("Card UID:");
 
-
-    //SIZE 4-4-4-4    16 BITS  (HEXADECIMAL)
+    char llavero[18] = {'4', '6', '0', '2','1', 'C', '0', '2', '9', 'C', '0','2','7','3','0','2'};
+    char tarjeta[18] = {'7', '0', '0', '2','1', '9', '0', '2', 'D', '8', '0','2','2','B','0','2'};
     
+   
+    //SIZE 4-4-4-4    16 BITS  (HEXADECIMAL)
+    char str[18]="";
+    char str2[18]="";
+    
+    //PRINTAMOS EL CARD UID:
+    lcd.printf("Card UID:");
     for (uint8_t i = 0; i < uid->size; i++) {
-
-        printf(" %X02", uid->uidByte[i]);   
+        
+        sprintf(str, "%X02", uid->uidByte[i]);
+        strcat(str2, str);  
         lcd.printf(" %X02", uid->uidByte[i]);
     }
-
+    
+    int result = strcmp(llavero, str2);
+    //IDENTIFICAMOS SI SE HA INTRODUCIDO UNA TARJETA O UN LLAVERO Y SI A ENTRADO O SALIDO
+    if(result==0){
+     llaveroDetectado = true;
+        if(entradaUsuarioLlavero)
+         { 
+         entradaUsuarioLlavero=false;  
+         }else if (!entradaUsuarioLlavero){
+            entradaUsuarioLlavero=true;
+            }
+    }else{
+     tarjetaDetectado= true;
+       if(entradaUsuarioTarjeta)
+         { 
+         entradaUsuarioTarjeta=false;  
+         }else if (!entradaUsuarioTarjeta){
+            entradaUsuarioTarjeta=true;
+            }
+    }
+   
+    //CAMBIO DE PANTALLA LCD
     printf("\n\r");
-    wait_ms(1000);// 200
+    wait_ms(2000);// DELAY ENTRE PANTALLAS
+    lcd.cls(); //LIMPIAR PANTALLA
+    lcd.locate(0,0);
+    
+    lcd.printf("Time is: %s %s\n",__TIME__,__DATE__);  //PRINTAMOS LA HORA ACTUAL - TIEMPO DE COMPILACION
+
+    //CAMBIO DE PANTALLA LCD
+    wait_ms(2000);// DELAY ENTRE PANTALLAS
+    lcd.cls(); //LIMPIAR PANTALLA
+    lcd.locate(0,0);
     
     
-    lcd.cls();
-    
-    lcd.locate(0,0);
-    lcd.printf("Time is: %s %s\n",__TIME__,__DATE__);  //TIEMPO DE COMPILACION
+    //PRINTAMOS SI EL USUARIO ENTRA O SALE DEPENDIENDO DEL USUARIO
+    if(llaveroDetectado && entradaUsuarioLlavero ){
+        printf("Entrada usuario: Cristian Llavero");
+        lcd.printf("Entrada usuario: Cristian Llavero");  
 
-    wait_ms(1000);// 200
-    lcd.cls();
-    lcd.locate(0,0);
+    }
+    else if(llaveroDetectado && !entradaUsuarioLlavero)
+    {
+        printf("Salida usuario: Cristian Llavero");
+        lcd.printf("Salida usuario: Cristian Llavero");  
+    }
     
-    if(usuario1){
-        lcd.printf("Entrada usuario: Cristian Vega");  
-        usuario1=false;
-    }else{
-        lcd.printf("Salida usuario: Cristian Vega");  
-        usuario1=true;
-        
+   
+    if(tarjetaDetectado && entradaUsuarioTarjeta ){
+        printf("Entrada usuario: Jose Tarjeta");
+        lcd.printf("Entrada usuario: Jose Tarjeta");  
+  
     }
+    else if(tarjetaDetectado && !entradaUsuarioTarjeta)
+    {
+        printf("Salida usuario: Jose Tarjeta");
+        lcd.printf("Salida usuario: Jose Tarjeta");  
+    }
+    
     
 
     char buffer[32];