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 :)