INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Zugangskontrolle per RFID
25.11.2019, 19:07
Beitrag #1
Question Zugangskontrolle per RFID
Hallo,

Ich baue gerade eine Zugangskontrolle per RFID Chips.
Kurz zur Hardware:

Arudino Nano
2 kleine LEDS
RC 522 RFID Modul
5 V Relay
NPN Transistor S8050
und noch ein paar Wiederstände für LEDs / Transistor

Kurz zum Programmablauf
In dem Sketch wird die UID des RFID Chips / Karte gelesen und mit den hinterlegten verglichen.
Falls sie hinterlegt ist , wird eine grüne LED und ein Relais angesteuert.
Falls nicht (wir wollen ja nicht jeden rein lassen Big Grin ) wird eine rote LED angesteuert und das Programm für 10 min gestoppt (sehr primitiv über delay).

Das ganze funktioniert fast einwandfrei...

Mein Hauptproblem ist das es nicht dauerhaft funktioniert. Mal geht es 12 h mal nur 3... irgdendwann hängt sich der Arduino Nano auf und es gibt weder eine grüne oder rote LED.

Nach einem Reset funktioniert es wieder.... bis irgendwann halt.

zur Info: Der untere Code ist ein Test code: Die UIDs sind nicht die richtigen Tongue


Code:
/
*
* Typical pin layout used:
* -----------------------------------------------------------------------------------------
*             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
*             Reader/PCD   Uno/101       Mega      Nano v3    Leonardo/Micro   Pro Micro
* Signal      Pin          Pin           Pin       Pin        Pin              Pin
* -----------------------------------------------------------------------------------------
* RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
* SPI SS      SDA(SS)      10            53        D10        10               10
* SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
* SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
* SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
*/
                            
#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN   9     // SPI Reset Pin
#define SS_PIN    10    // SPI Slave Select Pin

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Instanz des MFRC522 erzeugen



int Oeffnen = 5; // Pin für die Ansteuerung des Tueroeffners
int LED_rot = 2; // Pin für rote LED -> Kein Zutritt
int LED_gruen = 3; // Pin für Erfolgreiche Identifikation

int Zugang;
int k = 0;

byte ArrUIDs [14][4]={{0x49, 0xA4, 0x91, 0xA2},  // Schlüssel 01 Array als Byte deklariert mit 2 Positionen je 4 Stellen
                     {0xF9, 0x44, 0xB1, 0xA2},  // Schlüssel 02
                     {0x79, 0x72, 0xA2, 0xA2},  // Schlüssel 03
                     {0x69, 0x00, 0x67, 0xA3},  // Schlüssel 04
                     {0xE9, 0xC4, 0x81, 0xA2}, // Schlüssel 05
                     {0xB9, 0xC2, 0x98, 0xA3},  // Schlüssel 06
                     {0xC9, 0xF5, 0x64, 0xA3},  // Schlüssel 07
                     {0xB9, 0x78, 0x92, 0xA2},  // Schlüssel 08
                     {0x89, 0xDD, 0xA0, 0xA2},  // Schlüssel 09
                     {0x49, 0xEC, 0xB0, 0xA2},  // Schlüssel 10
                     {0xE9, 0x8B, 0xAC, 0xA3}, // Schlüssel 11
//                     {0x27, 0x68, 0x92, 0x56},  // Schlüssel 12
//                     {0x89, 0xAD, 0xB1, 0xA2},  // Schlüssel 13
//                     {0x69, 0x94, 0x99, 0xA3},  // Schlüssel 14
//                     {0x59, 0x50, 0x83, 0xA2},  // Schlüssel 15
//                     {0x99, 0x27, 0x76, 0xA3},  // Schlüssel 16
//                     {0x29, 0xA2, 0x91, 0xA2},  // Schlüssel 17
                     {0x69, 0x46, 0x85, 0xA2},  // Schlüssel 18
//                     {0x59, 0x39, 0xE6, 0x86},  // Schlüssel 19
//                     {0xB9, 0x13, 0xAE, 0xA3},  // Schlüssel 20
                     {0xC0, 0xED, 0x65, 0xA7},  // Schlüssel 21
                     {0x28, 0xBA, 0x8F, 0xB9}}; // Schlüssel 22





void setup() {
  // Diese Funktion wird einmalig beim Start ausgef�hrt
  Serial.begin(9600);  // Serielle Kommunikation mit dem PC initialisieren
  SPI.begin();         // Initialisiere SPI Kommunikation
  mfrc522.PCD_Init();  // Initialisiere MFRC522 Lesemodul
  pinMode(LED_gruen, OUTPUT);
  pinMode(LED_rot, OUTPUT);
  pinMode(Oeffnen, OUTPUT);




}

void loop() {
  // Diese Funktion wird in Endlosschleife ausgeführt

  // Nur wenn eine Karte gefunden wird und gelesen werden konnte, wird der Inhalt von IF ausgeführt
  // PICC = proximity integrated circuit card = kontaktlose Chipkarte
  
  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial() ) {
    Serial.print("Gelesene UID:");
    for (byte i = 0; i < mfrc522.uid.size; i++) {
      // Abstand zwischen HEX-Zahlen und führende Null bei Byte < 16
      Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
      Serial.print(mfrc522.uid.uidByte[i], HEX);
    }              
      Serial.println();

    // UID Vergleichen mit blue_uid
  k = 0;


  do  {

      
       Zugang = true;
       Serial.println();
       for (int j=0; j<4; j++) {
//                  Serial.print(k);
//                  Serial.print(mfrc522.uid.uidByte[j] < 0x10 ? " 0" : " ");
//                  Serial.print(mfrc522.uid.uidByte[j], HEX);
//                  Serial.print(" = ");
//                  Serial.print(ArrUIDs[k][j] < 0x10 ? " 0" : " ");
//                  Serial.print(ArrUIDs[k][j], HEX);
            if (mfrc522.uid.uidByte[j] != ArrUIDs[k][j]) {            
            Zugang = false;

            }

//              if (Zugang == true) {
//              Serial.print("offen");
//              }
//
//              if (Zugang == false) {
//              Serial.print("geschlossen");
//              }
//          
        }
    k++;
    if (k>22) {
      break;
    }
  }
  while (Zugang != true);

// Versetzt die gelesene Karte in einen Ruhemodus, um nach anderen Karten suchen zu können.
    mfrc522.PICC_HaltA();

        if (Zugang) {
      digitalWrite(Oeffnen, HIGH);
      digitalWrite(LED_gruen, HIGH);
      Serial.print("Zugang gewaehrt");
      Serial.println();
      delay(500);
      digitalWrite(Oeffnen, LOW);
      delay(2000);
    }
    else {
      digitalWrite(LED_rot, HIGH);
      Serial.print("Kein Zugang");
      Serial.println();
      delay(300000); // Zugang für 10 min sperren

    }
    
    digitalWrite(LED_gruen, LOW);
    digitalWrite(LED_rot, LOW);
    digitalWrite(Oeffnen, LOW);
  }

}

Hat von euch jemand ne Idee was hier falsch laufen könnte?
Ich hatte auch schon an nen Variablenüberlauf gedacht...allerdings hab ich nichts gefunden.

Als lösung könnte ich automatisch nach 2 h resetten...nur so einfach ist das nun auch wieder nicht.

Gruß Christoph
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2019, 20:07
Beitrag #2
RE: Zugangskontrolle per RFID
Wie sieht die Schaltung aus ?
Wie versorgst du das Projekt mit Spannung ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2019, 21:17
Beitrag #3
RE: Zugangskontrolle per RFID
Hallo,

Stromversorgung erfolgt über die Spannungsversorgung der Klingelanlage -> 8v DC (mit 800 mA abgesichert) über VIn Pin und GND

Mhh Schaltplan ist schwieriger..ich habs mal mit Fritzing versucht...aber das liegt mir nicht. Da hatte ichs schneller zusammengelötet.

Ich versuchs mal zu erklären:

grün LED mit 220 Ohm Wiederstand an Pin 3
Rot LED mit 220 Ohm Wiederstand an Pin 5
Die Basis vom Transistor über 10kOhm Wiederstand an Pin 5

Die Spule vom Relais (srd-05vdc-sl-c) an 5 V und die andere Seite an den Transistor
2. Seite vom Transistor an GND

8 V an dem Relais zum durchschalten (Keine Ahnung wie der Pin am Relais heißt)

Das RC522 RFID Modul an den SPi pins + Reset an Pin 9 + GND + 3,3 V.

Die größte Leistung braucht das Relais (gemessen während dem Schalten ca. 60 mA). Vorteil für mich da ich nur einen kurzen Impuls (500 ms) brauche.

So ich glaube ich hab alles...
Gruß Christoph
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2019, 21:41
Beitrag #4
RE: Zugangskontrolle per RFID
(25.11.2019 21:17)-Christoph- schrieb:  Die Spule vom Relais (srd-05vdc-sl-c) an 5 V und die andere Seite an den Transistor
2. Seite vom Transistor an GND
Hast Du eine Freilaufdiode mit drin?

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2019, 21:41
Beitrag #5
RE: Zugangskontrolle per RFID
Eine Bleistiftskizze abfotographiert tut es auch.

Relais als Relaismodul (Link) oder nacktes Relais?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2019, 22:20
Beitrag #6
RE: Zugangskontrolle per RFID
Hallo,
es ist ein nacktes Relais.
Schaltplan dauert...den muss ich erst Zeichnen
Gruß Christoph
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2019, 22:26
Beitrag #7
RE: Zugangskontrolle per RFID
(25.11.2019 22:20)-Christoph- schrieb:  es ist ein nacktes Relais.
Ohne Freilaufdiode? Dann könnte das evtl. schon die Ursache für Abstürze sein.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2019, 22:28
Beitrag #8
RE: Zugangskontrolle per RFID
Bist du sicher, dass aus der Klingelanlage 8V DC rauskommen ?
Die meisten Anlagen arbeiten mit Wechselspannung.

Welchen Anschluss des Transistors hast du auf GND, welchen auf die Relaisspule.

Schaltbild ist besser und verständlicher. Wir müssen nicht nachfragen und du findest beim Zeichen meist selbst den Fehler. Also zeichne ein Schaltbild, wie Tommy schreibt mit Bleistift.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  RFID Banksystem und das Displaymenü BastelKlug 4 490 15.09.2019 07:50
Letzter Beitrag: Fips
  Neuling sucht Beratung für ein RFID Motorschloss MaikGyver 34 10.247 07.01.2018 21:24
Letzter Beitrag: Tommy56
Question Problem beim seriellen Einlesen von RFID-Reader Bezel 5 1.937 05.11.2017 22:37
Letzter Beitrag: Tommy56
  2 Arduinos Serielle Übertragung mit SPI RFID Kit OE5AMP 18 3.326 05.05.2017 20:46
Letzter Beitrag: OE5AMP
  RFID ID Differenz RonSH 10 2.654 14.10.2016 08:42
Letzter Beitrag: RonSH
  Problem: RFID code mit Inhalt einer Textdatei auf einer SD Karte vergleichen MartinK 6 2.322 29.03.2016 16:45
Letzter Beitrag: MartinK
  Mit RFID Sensor NFC Tags steuern WIMunios 14 3.782 15.03.2016 12:07
Letzter Beitrag: WIMunios
  RFID-Reader an Analog Pins inski 9 3.423 02.03.2016 12:43
Letzter Beitrag: ArdHolger
Question Rfid Authentifizierung klebeband 16 4.863 06.01.2016 11:48
Letzter Beitrag: hotsystems
  HC-05 Ardurino Bluethooth werte übertragen RFID ChrisBeer222 0 1.463 10.04.2015 23:16
Letzter Beitrag: ChrisBeer222

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste