Categorieën

Arduino / Modules / 125KHz EM4100 RFID kaartlees module

125KHz EM4100 RFID kaartlees module

125KHz EM4100 RFID kaartlees module RDM630 non-contact.

Status

Op voorraad

€ 7,95
Prijs per stuk

Voorraad : 12

Aantal: 
+ in winkelwagentje
Op verlanglijst
 

125KHz EM4100 RFID kaartlees module

Specificaties:

  • Frequentie: 125KHz
  • Interface: TTL RS232
  • Voltage: DC 5V (±5%)
  • Stroomverbruik: <50mA
  • Werktemperatuur: -10° C ~ +70° C
  • Afmetingen in werking: 46 x 32 x 3 mm

    Sketches om mee te werken:

    rfid125khznummerlezer.ino

    #include < SoftwareSerial.h >
    SoftwareSerial RFID(4, 5); // RX en TX
    int i;
    int y = 1;
    void setup()
    {
    RFID.begin(9600); // start RFID lezer
    Serial.begin(9600); // start monitor
    }
    void loop()
    {
    if (RFID.available() > 0)
    {
    i = RFID.read();
    Serial.print(i, DEC);
    Serial.print(",");
    y++;
    }
    if (y==15) {
    Serial.println(" ");
    y=1;
    }
    }

    rfidkaartlezer.ino


    #include
    SoftwareSerial RFID(4, 5); // RX en TX
    int data1 = 0;
    int ok = -1;
    int cont = 12;
    int yes = 11;
    int no = 6;
    String str;
    /* Gebruik eerst de sketch rfid125khznummerlezer.ino om de kaarten uit te lezen
      Geef daarna de gevonden tekenreeks hieronder in
      U kunt zoveel reeksen aanmaken als nodig...

      Om te voorkomen, dat de kaart gelezen blijft worden gebruiken we in de sketch RFID.end()
      Daarmee omzeilen we het probleem dat bijvoorbeeld een slot meerdere keren zou worden geopend.
    */
    int tag1[14] = {
      2, 48, 48, 48, 48, 48, 48, 48, 48, 49, 51, 49, 51, 3
    };
    int tag2[14] = {
      2, 55, 66, 48, 48, 52, 55, 66, 66, 51, 57, 66, 69, 3
    };
    int tag3[14] = {
      2, 55, 66, 48, 48, 52, 55, 55, 67, 54, 53, 50, 53, 3
    };
    int tag4[14] = {
      2, 55, 66, 48, 48, 52, 55, 67, 48, 70, 53, 48, 57, 3
    };
    //Hieronder de controle reeks....
    int newtag[14] = {
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    };

    int ledState = LOW;
    // Normaal gebruikt u hier een "unsigned long" voor variabelen die tijd bevatten
    // De waarde wordt anders al heel snel te groot voor een INT
    unsigned long previousMillis = 0;

    void setup() {
      RFID.begin(9600); // start de RFID lezer
      Serial.begin(9600); // start de monitor
      pinMode(yes, OUTPUT); // voor status LEDs
      pinMode(no, OUTPUT);
    }
    //Kaarten vergelijken
    boolean comparetag(int aa[14], int bb[14])
    {
      boolean ff = false;
      int fg = 0;
      for (int cc = 0 ; cc < 14 ; cc++)
      {
        if (aa[cc] == bb[cc])
        {
          fg++;
        }
      }
      if (fg == 14)
      {
        ff = true;
      }
      return ff;
    }

    //Kaarten controleren
    void checkmytags() { // Vergelijkt elke reeks met de zojuist gelezen kaart.
      ok = 0; 
      // Als de waarde 1 is, hebben we een match, 0 (nul) is gelezen maar geen overeenkomst,
      // -1 is nog niet gelezen
      Serial.println("Controleren");
        for(int t=0;t<10;t++){
          digitalWrite(cont, HIGH);
          delay(250);
          digitalWrite(cont, LOW);
          delay(250);
        }

      if (comparetag(newtag, tag1) == true)
      {
        ok++;
        str = "Chimpansee";

      }
      if (comparetag(newtag, tag2) == true)
      {
        ok++;
        str = "Giraffe";
      }
      if (comparetag(newtag, tag3) == true)
      {
        ok++;
        str = "Leeuw";
      }
      if (comparetag(newtag, tag4) == true)
      {
        ok++;
        str = "Gazelle";
      }

    }

    void readTags() {
      ok = -1;

      if (RFID.available() > 0) {
        // Lees kaartnummers
        delay(100); // Neem wat tijd om de inkomende data te verwerken.
        for (int z = 0 ; z < 14 ; z++) // Lees de rest van de kaart
        {
          data1 = RFID.read();
          newtag[z] = data1;
        }    
        // Komen de reeksen overeen?
        checkmytags();

      }
      if (RFID.available() < 1) {
        unsigned long currentMillis = millis();

        if (currentMillis - previousMillis >= 1500) {
          // Zie blink without delay
          previousMillis = currentMillis;

          // Led aan/uit en omgekeerd:
          if (ledState == LOW)
            ledState = HIGH;
          else
            ledState = LOW;

          // Led aan uit naar gelang de variabele:
          digitalWrite(cont, ledState);
        }
      }
      // Nu een reactie op de gelezen kaart
      if (ok > 0) // Als er een overeenkomst is
      {
        Serial.print("Toegang verleend aan ");
        Serial.println(str);
        digitalWrite(yes, HIGH);
        RFID.end(); //Stop het lezen om de buffer te legen
        delay(1000);//Pauze of deur open of.....vul maar in
        RFID.begin(9600);//Start het lezen met een lege buffer
        digitalWrite(yes, LOW);

        ok = -1;
      }
      else if (ok == 0) // Indien niet overeenkomend
      {
        RFID.end();//Stop het lezen om de buffer te legen
        Serial.println("Geen toegang");
        Serial.println("Poging gelogd");
        Serial.print("Kaartnummer ");
        for (int s = 0; s < 14; s++) {
          Serial.print(newtag[s]);
          Serial.print(" ");
        }
        Serial.println(" ");
        digitalWrite(no, HIGH);
        delay(1000);
        digitalWrite(no, LOW);
        ok = -1;
        RFID.begin(9600);//Start de lezer met een lege buffer
      }
    }
    void loop()
    {
      readTags();
    }

Deze website gebruikt cookies om het bezoek te meten, we slaan geen persoonlijke gegevens op.
© Martoparts.nl