Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: