ESP8266 RFID y Firebase (Access Control - Real Time)

ESP8266 RFID y Firebase (Access Control - Real Time). Control de Acceso en Tiempo Real con #ESP8266 o #Arduino usando #Firebase con Bases de datos en tiempo real.



ESP8266 Control de Acceso RFID para evitar tocar chapas (Cerradura) o puertas con las manos, abre puertas sin contacto, sin usar las manos y así evitar transmisión de virus. El código programado funciona también con #Arduino o NodeMCU #ESP8266 usando Identificación por Radiofrecuencia, el modulo RFID-RC522 conectado al microcontralor puede activar o desactivar ya sea un Relé con un Electroimán, un pasador electromagnético o cualquier carga como un bombillo siempre y cuando el Relé soporte la corriente de carga. Tutorial completo para implementar control de accesos de puertas en cuartos como herramientas, oficinas o casas.




CÓDIGO ESP8266 RFID Y FIREBASE

/*
PINOUT:
RC522 MODULE    Uno/Nano     MEGA     ESP8266
SDA             D10          D9       D8
SCK             D13          D52      D5
MOSI            D11          D51      D7
MISO            D12          D50      D6
IRQ             N/A          N/A      N/A
GND             GND          GND      GND
RST             A0           D8       D1
3.3V            3.3V         3.3V     3.3V
*/

#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>
#include <SPI.h>
#include <RFID.h>

// database and Wifi connection
#define FIREBASE_HOST "your-host"
#define FIREBASE_AUTH "your-key"
#define WIFI_SSID "your-wifi"
#define WIFI_PASSWORD "your-pass-wifi"

//Define FirebaseESP8266 data object
FirebaseData firebaseData;
FirebaseJson json;
void printResult(FirebaseData &data);
String path = "/usersTest";

#define SDA_DIO 15
#define RESET_DIO 5

RFID RC522(SDA_DIO, RESET_DIO);

int LedRojo=0;
int LedVerde=4;
int Rele=16;
byte pos= 0;
int readData;

void setup()
  Serial.begin(9600);

  // connect to wifi and firebase.
   WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("Connecting to Wi-Fi");
  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(300);
  }
  Serial.println();
  Serial.print("Connected with IP: ");
  Serial.println(WiFi.localIP());
  Serial.println();

  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
  Firebase.reconnectWiFi(true);
  Firebase.enableClassicRequest(firebaseData, true);


  /* Enable the SPI interface */
  SPI.begin(); 
  /* Initialise the RFID reader */
  RC522.init();

  pinMode(LedRojo, OUTPUT);  //Inicializacion de pines
  pinMode(LedVerde, OUTPUT);
  pinMode(Rele, OUTPUT);
  digitalWrite(LedRojo, LOW);
  digitalWrite(LedVerde, LOW);
  digitalWrite(Rele, LOW);

}

void loop()
{
  if (RC522.isCard()) /* Card Exist? */
  {
    RC522.readCardSerial();   /* Get serial number Card*/

    Serial.println();
    Serial.println("---RC522.serNum----");
    //imprimir codigo de tarjeta
    for(int i=0;i<5;i++)
    {
      Serial.println(RC522.serNum[i],DEC);
      //Serial.println(RC522.serNum[i],HEX); //Card in Hexadecimal
    }
    Serial.println("-------");
    Serial.println();
    
    //----------------------------------------------
     if(checkAuthorization(RC522.serNum))
    { 
      Serial.println("Acceso: Autorizado");
      digitalWrite(LedRojo, LOW);
      digitalWrite(LedVerde, HIGH);
      digitalWrite(Rele, HIGH);
      delay(2000);
      digitalWrite(LedRojo, LOW);
      digitalWrite(LedVerde, LOW);
      digitalWrite(Rele, LOW);
    }
    else
    {
      Serial.println("Acceso: Denegado");
      digitalWrite(LedRojo, HIGH);
      digitalWrite(LedVerde, LOW);
      digitalWrite(Rele, LOW);
      delay(2000);
      digitalWrite(LedRojo, LOW);
      digitalWrite(LedVerde, LOW);
      digitalWrite(Rele, LOW);
          
    }
    Serial.println();
    Serial.println();
    
  }

  delay(10);
}


bool checkAuthorization(byte* data) //Verify Access
{
  //Serial.println();
  //Serial.println("---data READ----");
  //Serial.println();

    for(int i=0;i<5;i++)
    {
      Firebase.getInt(firebaseData, path + "/key"+i);
      //Serial.println(firebaseData.intData());
      if (firebaseData.intData() != data[i]) return false;
      delay(10);
    }
    return true;
    
  /*Serial.println("----JSON---");
  Serial.println();

  if (Firebase.getJSON(firebaseData, "/"))
    {
      //Success, then try to read the JSON payload value
      Serial.println(firebaseData.jsonString());
      
    }
    else
    {
      //Failed to get JSON data at defined database path, print out the error reason
      Serial.println(firebaseData.errorReason());
    }
  
  Serial.println("-------");
  Serial.println();
  */
}


Espero les sea útil el Tutorial, apoyame para poder realizar más vídeos!

https://www.patreon.com/Alex7Tutoriales Sígueme! -Página de Facebook: https://www.facebook.com/Alex7Tutoriales -Instagram: https://www.instagram.com/alex7tutoriales -Twitter: https://twitter.com/alex7tutoriales Si te gustó el vídeo no olvides dejar tu "Like" y suscribirte para más contenido. Saludos :)





Alex7 Tutoriales

Tutoriales que en algún momento te pueden ser útiles.... Suscribete!

Publicar un comentario (0)
Artículo Anterior Artículo Siguiente