Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C by Galconeges ( 3 years ago )
#include <Wiegand.h>
const int ledPin = 4; // LED verde
const int relayPin = 7; // Relè per aprire la porta
// Definisci gli ID delle schede valide
const unsigned long validCards[] = {
0x12345678, // Inserisci qui gli ID delle schede valide (esempio)
0xABCD5678
};
const int numValidCards = sizeof(validCards) / sizeof(validCards[0]);
WIEGAND wg;
void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); // Assicurati che il LED sia spento all'avvio
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // Assicurati che il relè sia disattivato all'avvio
wg.begin();
Serial.begin(9600);
}
void loop() {
if (wg.available()) {
unsigned long cardCode = wg.getCode();
// Verifica l'ID della scheda per l'accesso
boolean accessGranted = checkAccess(cardCode);
// Controlla il LED verde quando viene rilevata una scheda
digitalWrite(ledPin, accessGranted ? HIGH : LOW);
// Attiva il relè per aprire la porta se l'accesso è consentito
if (accessGranted) {
Serial.println("Accesso consentito. Apertura porta.");
digitalWrite(relayPin, HIGH); // Attiva il relè
delay(1000); // Mantieni attivo il relè per 1 secondo (puoi adattare questo valore)
digitalWrite(relayPin, LOW); // Disattiva il relè
}
}
}
boolean checkAccess(unsigned long cardCode) {
for (int i = 0; i < numValidCards; i++) {
if (cardCode == validCards[i]) {
return true; // L'ID della scheda è valido, consenti l'accesso
}
}
return false; // L'ID della scheda non è valido, nega l'accesso
}
Revise this Paste