Pages: [1]   Go Down
Author Topic: RFID de 13.56Mhz con MFRC522  (Read 2859 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vaya tela esto de los RFID Mifare, no se si habéis cacharreado alguno con ellos pero es un lio de aupa. Lo único que consigo es leer el numero de serie del TAG pero de meter pin y acceder a la memoria como que nada de nada.

Voy a leerme el datasheet a ver si lo pillo.

* MFRC522.pdf (748.46 KB - downloaded 51 times.)
« Last Edit: January 02, 2012, 07:18:52 am by flico » Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
#define uchar unsigned char
uchar sectorKeyA[16][16] = {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
                             {0x19, 0x84, 0x07, 0x15, 0x76, 0x14},//PIN
                             {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
                            };
 uchar sectorNewKeyA[16][16] = {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
                                {0x19, 0x84, 0x07, 0x15, 0x76, 0x14, 0xff,0x07,0x80,0x69, 0x19,0x84,0x07,0x15,0x76,0x14},
                                {0x19, 0x33, 0x07, 0x15, 0x34, 0x14, 0xff,0x07,0x80,0x69, 0x19,0x33,0x07,0x15,0x34,0x14},
                               };

No entiendo esta parte del código de ejemplo, que es donde define el pin de acceso al RFID.
Cuando a una matriz le pones [16][16] ¿que significa?
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola flico,  yo tb ando trasteando con un modulo rfid  en mi caso un sl030 y unas tarjetas mifare 1k y por lo poco q se es q el tag son 4bytes y el keyA son 16 sectores o bloques de 16bytes cada uno de ahi lo de 16 16, algunas otras tarjetas tienen tb keyB q supongo q sera parecido, espero q te haya aclarado algo.
Un saludo.
Logged

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@riscking, OK.

Voy a probar a conectarlo por I2C o por serial a ver si es mas facil.
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bueno pues después de probar con otros TAGs funcionan bien por lo que creo que están mal los otros. Aun así no entiendo como funcionan este tipo de tarjetas RFID, por el momento usare solamente el numero de serie para el proyecto de la casa domotica mas adelante trasteare con el codigo.

Os dejo el sketch de ejemplo por si alguien se anima a experimentar un poco.

* RFIDrc522.pde (24.69 KB - downloaded 45 times.)
« Last Edit: January 03, 2012, 05:10:33 pm by flico » Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Flico yo he conseguido leer el contenido de la tarjeta mifare de 1K, el codigo como no es mio todavia lo tengo que estudiar y mirandolo por encima hay cosas que no entiendo, mi programacion no es muy pro que digamos, pero basicamente una captura sería esta, mi lector sera diferente al tuyo pero te podría pasar el codigo para hacerte una idea si quieres, eso si lo tengo que buscar ya que ando con problemas con mi pc principal.

http://imageshack.us/photo/my-images/515/imag0083e.jpg/
Logged

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pero los TAGs tienen una zona de la memoria protegida por un pin, no? Haber si es que estoy confundido yo y estoy intentando algo imposible.
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vaya pues buscando informacion me has dejado fundido, segun estas paginas que he encontrado entonces lo que leo no es real?? puff esto se cumplica, aqui lo explican banstante bien el tema con una tarjeta de 4k

http://www.securityartwork.es/2010/01/29/hacking-rfid-rompiendo-la-seguridad-de-mifare-i/
http://www.securityartwork.es/2010/02/03/hacking-rfid-rompiendo-la-seguridad-de-mifare-ii/
http://www.securityartwork.es/2010/07/21/hacking-rfid-rompiendo-la-seguridad-de-mifare-iii/
http://www.securityartwork.es/2010/09/15/hacking-rfid-rompiendo-la-seguridad-de-mifare-iv/
Logged

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lo que te digo @riscking un lio de aupa. Los enlaces son muy buenos, si supieras la de búsquedas que he hecho en google buscando este tema alucionarias.
Lo que me ha roto los esquemas es que se pueden clonar, mal asunto para lo que lo quiero, yo creo que al final esto del RFID no lo voy a usar en mi casa domotica.
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola amigos.

Yo trabajo con controles de acceso y se me ocurrió conectar a mi Arduino Severino una lectora Wiegand 26. Resulta ser que es bastante más complejo de lo que parece, no hay código que me lea los datos, solo recibo basura o interferencia. Sería interesante crear software útil para comunicarse con el protocolo Wiegand 26, ya que es el estandar para cualquier lectora RFID.

Información que tengo:

Envía 1 bit de Señal
Envia 8 bits de Lote o código de lugar
Envia 16 bits de codigo de tarjeta
Envia 1 bit de Señal de terminación

Cada bit dura 50 microsegundos separados por 1 milisegundo.

El solucionar esto haría que pudiéramos conectar cualquier lectora RFID.
Logged

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Flico

¿El ibutton de Dallas no te seria mas seguro?
http://www.maxim-ic.com/products/ibutton/
Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Heke, también probé el ibutton pero me gusta mas la idea de no haber contacto físicamente.
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola
con respecto a este codigo:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 3); //pin2 Rx, pin3 Tx

int CMD[64];
int comlen =0;
int out_flag =0;

void setup()
{
Serial.begin(9600);
mySerial.listen();
Serial.println("Serial number will be displayed here if a card is detected by the module:\n");
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
delay(10);
mySerial.write(0x02); //Send the command to RFID, please refer to RFID manual
}
void loop() // run over and over
{

       comlen=0;
      while (mySerial.available()) {
      ++comlen;
      byte C = mySerial.read();
      if (C<16) Serial.print("_0_");
      Serial.print(C ,HEX); //Display the Serial Number in HEX
      Serial.print("*");
      out_flag =1;
      }
     if (out_flag >0) {
       Serial.print(" NDatos:");
       Serial.print(comlen, DEC);
       Serial.println("LN");
       out_flag = 0;
     }
     
}

porfavor podrian esplicarme porque se usa la sentencia: if (C<16) Serial.print("_0_"); .Los bytes del nuemro de serie siempre sn mayores de 16?
Estoy probando los tags y note que lee 4 bytes del numero de serie, pero en este video http://www.jeremyblum.com/2011/07/08/tutorial-12-for-arduino-rfid-card-reading/
veo que lee 5 bytes, hay tags de diferente tamaño de numero de serie?

Gracias Saludos
Logged

Pages: [1]   Go Up
Jump to: