codigo arduiino
//Agregamos las librerias necesarias
#include <EEPROM.h>
#include <SPI.h>
#include <RFID.h>
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#include <Keypad.h>
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
//Finger Print
int getFingerprintIDez();
SoftwareSerial mySerial(10, 11); //10-11 68VERDE 69AZUL
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
// Inicializamos las variables del RFID
#define SS_PIN 8 // pin SDA hacia el pin 10
#define RST_PIN 33 // pin RST hacia el pin 9
RFID rfid(SS_PIN, RST_PIN);
LiquidCrystal_I2C lcd( 0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE );
int serNum0;
int serNum1;
int serNum2;
int serNum3;
int serNum4;
String modulo = "1";
String codigo = "RB1001";
///Keypad
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {54, 55, 56, 57}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {58,59,60,61}; //connect to the column pinouts of the keypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
int ledRojo = 15;
int ledAzul = 16;
int ledVerde = 14;
/////variables para lectura serial
String Msj[4];
int mensaje = 0;
boolean stringComplete = false; // whether the string is complete
int lcdAction = 0;
//// Variables
String FingerPrint = "OFF";
int clave = 1;
int Col = 8;
char password[6];
char dni[10];
int pass_master, dni_user = 0;
int N;
char key;
long tiempoRFID, TiempoCheck, TiempoEnvio, timeA, timeB = 0;
int menuadm = 0;
int menubio = 0;
int menurfid = 0;
int fp_detec = 0;
int rfid_detec = 0;
int conextion = 0;
int connection = 0;
void setup() {
pinMode(ledRojo, OUTPUT);
pinMode(ledAzul, OUTPUT);
pinMode(ledVerde, OUTPUT);
digitalWrite(ledAzul, HIGH);
Serial.begin(9600); //Establecemos una velocidad de 9600 baudios
SPI.begin();
lcd.begin(20, 4);
RGB(1,0,0);
// Print a message to the LCD.
rfid.init();
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.print("FP-ON");
FingerPrint = "ON";
} else {
Serial.print("FP-OFF");
}
delay(50);
Serial.print("CHECK-");
Serial.print(modulo);
Serial.print('-');
Serial.print(codigo);
}
////////////////////////////********************************************LOOP PRINCIPAL************************\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
void loop() {
if((millis() - TiempoCheck) > 10000){
Serial.print("CHECK-");
Serial.print(modulo);
Serial.print('-');
Serial.print(codigo);
TiempoCheck = millis();
}
if((millis() - TiempoEnvio) > 15000){
lcd.clear();
TiempoEnvio = millis();
connection = 0;
RGB(1,0,0);
}
if(connection == 1){
if(lcdAction == 0 && clave == 1){
lcd.setCursor(4,0);
lcd.print("PASS-CONTROL");
lcd.setCursor(13,3);
lcd.print("MENU[D]");
}
char key = customKeypad.getKey();
if (key != NO_KEY ){
lcdAction = 1;
timeA = millis();
if((key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9') && clave <= 4){
password[clave] = key;
lcd.setCursor(Col, 2);
lcd.write("*");
Col++;
clave++;
if(clave > 1){
lcd.setCursor(11,3);
lcd.write("BORRAR[B]");
}
if(clave == 5){
lcd.setCursor(0,3);
lcd.write("ACEPTAR[A]");
}
}else if(key == 'B' && clave > 1 ){
password[clave] = ' ';
Col--;
clave--;
lcd.setCursor(Col, 2);
lcd.write(" ");
if(clave == 1){
lcdAction = 0;
lcd.clear();
}else if(clave > 1 && clave < 5){
lcd.setCursor(0,3);
lcd.write(" ");
}
}else if(key == 'A' && clave == 5){
clave = 1;
Col=8;
Serial.print("USER-");
Serial.print(password[1]);
Serial.print(password[2]);
Serial.print(password[3]);
Serial.print(password[4]);
Waiting();
}else if(key == 'D' && clave == 1) {
pass_Master();
}
}else if((millis() - timeA) > 10000 && clave != 1){
clave = 1;
lcdAction = 0;
Col=8;
lcd.clear();
lcd.setCursor(3,1);
lcd.write("TIEMPO SUPERADO");
delay(1200);
lcd.clear();
}
if((millis() - tiempoRFID) > 1000){
serNum0 = 0;
serNum1 = 0;
serNum2 = 0;
serNum3 = 0;
serNum4 = 0;
}
if(lcdAction == 0){
getFingerprintIDez();
delay(10);
read_RFID();
rfid.halt();
}
}else{
lcd.setCursor(4,0);
lcd.print("SIN CONEXION");
}
}
////////////////////////////********************************************FUNCIONES ************************\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
void Waiting(){
for(int i=0; i<4; i++){
Msj[i] = "";
}
lcdAction = 2;
conextion = 0;
timeB = millis();
lcd.clear();
lcd.setCursor(3,1);
lcd.print("PROCESANDO...");
while((millis() - timeB) < 8000 && lcdAction == 2){
if(Serial.available()) {
serialEvent();
conextion = 1;
}
}
if(conextion == 0){
lcd.clear();
lcd.setCursor(3,1);
lcd.write("TIEMPO SUPERADO");
lcd.setCursor(4,2);
lcd.write("SIN CONEXION");
delay(1200);
lcd.clear();
}
lcdAction = 0;
lcd.clear();
}
void pass_Master(){
pass_master = 1;
Col = 8;
lcd.clear();
timeA = millis();
while(pass_master == 1 && (millis() - timeA) < 10000){
lcd.setCursor(1,0);
lcd.write("MENU ADMINISTRADOR");
lcd.setCursor(4,1);
lcd.write("CLAVE MAESTRA");
lcd.setCursor(0,3);
lcd.write("[A]ACEPTAR [B]BORRAR");
key = customKeypad.getKey() ;
if (key != NO_KEY) {
timeA = millis();
if(key == 'B' && clave > 1 ){
password[clave] = ' ';
Col--;
clave--;
lcd.setCursor(Col, 2);
lcd.write(" ");
}else if((key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9') && clave <= 4){
password[clave] = key;
lcd.setCursor(Col, 2);
lcd.write("*");
Col++;
clave++;
}else if(key == 'A' && clave == 5){
pass_master = 0;
clave = 1;
Col=8;
lcd.clear();
Serial.print("ADMIN-");
Serial.print(modulo);
Serial.print('-');
Serial.print(codigo);
Serial.print('-');
Serial.print(password[1]);
Serial.print(password[2]);
Serial.print(password[3]);
Serial.print(password[4]);
Waiting();
}
}
}
lcd.clear();
if(pass_master == 1){
pass_master=0;
lcd.setCursor(3,1);
lcd.write("TIEMPO SUPERADO");
delay(1200);
lcd.clear();
lcdAction = 0;
}
}
void menu_Administrador(){
menuadm=1;
lcd.clear();
lcd.setCursor(1,0);
lcd.print("MENU ADMINISTRADOR");
lcd.setCursor(0,2);
lcd.print("[1]-AGREGAR USUARIO");
lcd.setCursor(0,3);
lcd.print("[2]- [0]-VOLVER");
timeA = millis();
while(menuadm!=0 && (millis() - timeA) < 10000){
if(Serial.available()){
serialEvent();
break;
}
key = customKeypad.getKey() ;
if (key != NO_KEY) {
timeA = millis();
if(key == '0'){
lcd.clear();
menuadm=0;
break;
}else if(key == '1'){
lcd.clear();
verificar_usuario();
}
}
}
lcdAction = 0;
menubio=0;
menuadm=0;
lcd.clear();
}
void verificar_usuario(){
dni_user = 1;
Col = 5;
clave = 1;
lcd.clear();
timeA = millis();
while(dni_user == 1 && (millis() - timeA) < 10000){
lcd.setCursor(2,0);
lcd.write("INGRESE EL SERIAL");
lcd.setCursor(4,1);
lcd.write("DE 9 DIGITOS");
lcd.setCursor(0,3);
lcd.write("[A]ACEPTAR [B]BORRAR");
key = customKeypad.getKey() ;
if (key != NO_KEY) {
timeA = millis();
if(key == 'B' && clave > 1 ){
dni[clave] = ' ';
Col--;
clave--;
lcd.setCursor(Col, 2);
lcd.write(" ");
}else if((key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9') && clave <= 9){
dni[clave] = key;
lcd.setCursor(Col, 2);
lcd.write(key);
Col++;
clave++;
}else if(key == 'A' && clave == 10){
dni_user = 0;
clave = 1;
Col=8;
lcd.clear();
Serial.print("ADDUSER-");
Serial.print(modulo);
Serial.print("-");
for(int p=1;p<=9;p++){
Serial.print(dni[p]);
}
Waiting();
}
}
}
lcd.clear();
if(dni_user == 1){
dni_user=0;
lcd.setCursor(3,1);
lcd.write("TIEMPO SUPERADO");
delay(1200);
lcd.clear();
lcdAction = 0;
}
}
// sin usosssssssssssssssssssssss
void agregar_Acceso(String bio, String rfid, String idUser){
menuadm=1;
lcd.clear();
lcd.setCursor(3,0);
lcd.print("AGREGAR ACCESO");
if(bio == "0"){
lcd.setCursor(0,1);
lcd.print("[1]-BIOMETRIA");
}
if(rfid == "0"){
lcd.setCursor(0,2);
lcd.print("[2]-RFID ");
}
lcd.setCursor(0,3);
lcd.print(" [0]-VOLVER");
timeA = millis();
while(menuadm!=0 && (millis() - timeA) < 10000){
if(Serial.available()){
serialEvent();
break;
}
key = customKeypad.getKey() ;
if (key != NO_KEY) {
timeA = millis();
if(key == '0'){
lcd.clear();
menuadm=0;
menu_Administrador();
}else if(key == '2' && rfid == "0"){
lcd.clear();
Serial.print("RFID-P-ENROLL-");
Serial.print(modulo);
Serial.print("-");
Serial.print(idUser);
Waiting();
menurfid=0;
menu_Administrador();
}else if(key == '1' && bio == "0"){
lcd.clear();
Serial.print("FP-P-ENROLL-");
Serial.print(modulo);
Serial.print("-");
Serial.print(idUser);
Waiting();
menurfid=0;
menu_Administrador();
}
}
}
menuadm=0;
lcd.clear();
}```
Curso Básico de Programación
0 Comentarios
para escribir tu comentario