RFID ARDUINO-DFD

Description

Flowchart on RFID ARDUINO-DFD, created by Carlos Ortega on 28/09/2018.
Carlos Ortega
Flowchart by Carlos Ortega, updated more than 1 year ago
Carlos Ortega
Created by Carlos Ortega about 6 years ago
25
0

Resource summary

Flowchart nodes

  • Inicio
  •   Incluir las librerías necesarias: #include <MFRC522.h> #include <LiquidCrystal.h> #include <SPI.h>  #include <SD.h> #include <RTClib.h> // for the RTC
  • Definir los pines para el módulo RFID: #define CS_RFID 10 #define RST_RFID 9
  • Definir los pines para el módulo SD CARD: #define CS_SD 11 
  • Crear el archivo en el cual se guardarán los datos: File myFile;
  • Definir los pines para el LCD: LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
  • Instanciar la clase para el módulo RFID: MFRC522 rfid(CS_RFID, RST_RFID); 
  • Crear la variable para guardar el código de las tarjetas: String uidString;
  • Instanciar la clase para el módulo de RTC: RTC_DS1307 rtc;  
  • Definir el pin para la cerradura eléctrica: const int SOLENOID = 13;
  • Setup
  • Imprimir mensaje de bienvenida en el LCD: lcd.begin(16, 2);   lcd.setCursor(0, 0);   lcd.print("   BIENVENIDO   ");   lcd.setCursor(0, 1);   lcd.print(" SISTEMA ACCESO ");   delay(3000);   lcd.clear();
  • Iniciaizar comunicación serial con el microcontrolador: Serial.begin(9600);
  • Inicializar comunicación de protocolo SPI: SPI.begin(); 
  • Inicializar comunicación con el módulo RFID: rfid.PCD_Init(); 
  • Inicializar la SD CARD: Serial.print("Inicializando SD CARS...");   if(!SD.begin(CS_SD)) {     Serial.println("initialización fallida!");     return;   }   Serial.println("initialización realizada.");
  • Inicializar el RTC: if(!rtc.begin()) {     Serial.println("No se encontró RTC");     while(1);   }   else {     rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));   }   if(!rtc.isrunning()) {     Serial.println("RTC no está funcionando");   }
  • Loop
  • Imprimir Mensaje en el LCD: lcd.clear();   lcd.setCursor(0, 0);   lcd.print("Ingrese tarjeta");   lcd.setCursor(0, 1);   lcd.print("................");   delay(300);  
  • Buscar tarjeta: if(rfid.PICC_IsNewCardPresent()) {     readRFID();     logCard(); }
  • uidString == "54 188 204 37"
  • MessageOnLCD();      lcd.setCursor(0, 1);      lcd.print("Administrador 1");      Serial.println("Acceso autorizado");      OpeningDoor();
  • SI
  • uidString == "3 200 110 58
  • NO
  • MessageOnLCD();         lcd.setCursor(0, 1);         lcd.print("Administrador 2");         Serial.println("Acceso autorizado");         OpeningDoor();
  • SI
  • uidString == "99 168 178 58"
  • MessageOnLCD();             lcd.setCursor(0, 1);             lcd.print("Empleado 1");             delay(3000);             Serial.println(" Registrado...");
  • NO
  • SI
  • uidString == "115 95 108 58"
  • NO
  • MessageOnLCD();               lcd.setCursor(0, 1);               lcd.print("Empleado 2");               delay(3000);               Serial.println(" Registrado...");
  • SI
  • lcd.setCursor(0, 0);              lcd.print("ID : ");              lcd.print(uidString);              lcd.setCursor(0, 1);              lcd.print("Acceso denegado");              delay(3000);
  • NO
  • delay(10);
  • Return to Loop...
  • Método para leer tarjeta: void readRFID() {   rfid.PICC_ReadCardSerial();   Serial.print("Tag UID: ");   uidString = String(rfid.uid.uidByte[0]) + " " + String(rfid.uid.uidByte[1]) + " " +      String(rfid.uid.uidByte[2]) + " " + String(rfid.uid.uidByte[3]);   Serial.println(uidString); }
  • Método para guardar archivos en la SD CARD:   void logCard() {   digitalWrite(CS_SD,LOW);   myFile=SD.open("DATA.txt", FILE_WRITE);   if (myFile) {     Serial.println("File opened ok");     myFile.print(uidString);     myFile.print(", ");        DateTime now = rtc.now();     myFile.print(now.year(), DEC);     myFile.print('/');     myFile.print(now.month(), DEC);     myFile.print('/');     myFile.print(now.day(), DEC);     myFile.print(',');     myFile.print(now.hour(), DEC);     myFile.print(':');     myFile.println(now.minute(), DEC);     Serial.print(now.year(), DEC);     Serial.print('/');     Serial.print(now.month(), DEC);     Serial.print('/');     Serial.print(now.day(), DEC);     Serial.print(' ');     Serial.print(now.hour(), DEC);     Serial.print(':');     Serial.println(now.minute(), DEC);     Serial.println("sucessfully written on SD card");     myFile.close();     userCheckInHour = now.hour();     userCheckInMinute = now.minute();   }   else {     Serial.println("error opening data.txt");     }   digitalWrite(CS_SD,HIGH); }
  • Método para imprimir mensaje genérico en la SD CARD: void MessageOnLCD(){   lcd.setCursor(0, 0);   lcd.print("ID : ");   lcd.print(uidString);   }
  • Método para habilitar la apertura de la cerradura eléctica: void OpeningDoor(){     digitalWrite(SOLENOID , HIGH);     delay(5000);     digitalWrite(SOLENOID , LOW);     delay(5000);   }
  • Fin
Show full summary Hide full summary

Similar

Ubidots Setup
Scott C
RFID Tags
I Turner
Ubiquitous computing
Gee_0599
Gui de estudio Dómotica
samuel maldonado8672
Programowe sterowanie jasnością diody LED
and234
Bloque 3_TecnoMonkeys
ALEJANDRA SAMARA ARAGON GARCIA
Leitura de tensão Analógica
Luiz Carlos da Silva Garcia Junior
Enter text here
Luis Hernandez
Project
Hamied Amr
Control de Activos con Tecnologías RFID
Ismael Sanchez
Electrónica con arduino
Luis Aguilar