RFID ARDUINO-DFD

Beschreibung

Flussdiagramm am RFID ARDUINO-DFD, erstellt von Carlos Ortega am 28/09/2018.
Carlos Ortega
Flussdiagramm von Carlos Ortega, aktualisiert more than 1 year ago
Carlos Ortega
Erstellt von Carlos Ortega vor etwa 6 Jahre
25
0

Zusammenfassung der Ressource

Flussdiagrammknoten

  • 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
Zusammenfassung anzeigen Zusammenfassung ausblenden

ähnlicher Inhalt

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