{"id":117,"date":"2017-05-11T01:39:24","date_gmt":"2017-05-10T23:39:24","guid":{"rendered":"http:\/\/www.pinguytaz.net\/?p=117"},"modified":"2017-05-11T01:39:24","modified_gmt":"2017-05-10T23:39:24","slug":"rfid-para-arduino","status":"publish","type":"post","link":"https:\/\/www.pinguytaz.net\/index.php\/2017\/05\/11\/rfid-para-arduino\/","title":{"rendered":"RFID para Arduino"},"content":{"rendered":"<p>Hoy voy hablar despu\u00e9s de tiempo de RFID, que es con el que inicio una nueva serie que espero crezca de cuadernos t\u00e9cnicos en los que ire poniendo en un documento PDF y ejemplo de elementos que podemos usar con <a href=\"https:\/\/www.arduino.cc\/\">Arduino<\/a>.<\/p>\n<p>Comenzamos aunque te aconsejo que si te llama la atenci\u00f3n este breve POST vayas a la secci\u00f3n de <a href=\"http:\/\/www.pinguytaz.net\/index.php\/rfid\/\">Cuaderno Tecnico \u00abRFID\u00bb<\/a>\u00a0que esta debajo del men\u00fa <a href=\"https:\/\/www.arduino.cc\/\">Arduino<\/a>\u00a0donde profundizamos m\u00e1s y ademas tienes los ejemplos de programaci\u00f3n que mejoraremos y ampliaremos.<\/p>\n<h5>\u00bfQue es RFID?<\/h5>\n<p>RFID (Radio Frequency Identification), es un sistema de identificaci\u00f3n por radio frecuencia de etiquetas o tarjetas en las que se puede almacenar informaci\u00f3n. Una gran ventaja frente a los c\u00f3digos de barra es que se pueden actualizar por eso se utilizan tambi\u00e9n para medios de pagos como por ejemplo el abono transporte.<\/p>\n<p>Las etiquetas o tarjetas pueden ser pasivas o activas y lo que las diferencias es que las activas no llevan bater\u00edas, incre\u00edblemente se alimenta con las ondas que lanza el lector para preguntarla, y las activas que si tienen bater\u00edas y claro en este caso podemos leerlas desde mayores distancias y no solo unos cent\u00edmetros.<\/p>\n<h5>Empezamos con las conexiones<\/h5>\n<p>Yo he utilizado el lector\/escritor RC-522, que me permite leer tarjetas con una frecuencia de 13,56 Mhz y el estandar 14443, que es el m\u00e1s utilizado en\u00a0<a href=\"https:\/\/www.arduino.cc\/\">Arduino<\/a>\u00a0y se basa en el chip MFRC522 de\u00a0philips aunque en realidad es de la empresa <a href=\"http:\/\/www.nxp.com\/\">NXP<\/a>\u00a0que se crea a partir de la divisi\u00f3n de semiconductores de esta.<\/p>\n<p>El esquema de conexi\u00f3n es el siguiente:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-118 aligncenter\" src=\"http:\/\/www.pinguytaz.net\/wp-content\/uploads\/2017\/05\/NANO_RFID_bb-300x135.png\" alt=\"\" width=\"433\" height=\"195\" \/><\/p>\n<ol>\n<li>SDA a D10<\/li>\n<li>SCK a D13<\/li>\n<li>MOSI a D11<\/li>\n<li>MISO a D12<\/li>\n<li>IORQ No la conectaremos aunque otro d\u00eda escribiremos de como podemos utilizarla.<\/li>\n<li>GND a la masa.<\/li>\n<li>RST a D9<\/li>\n<li>3.3V al positivo de una alimentaci\u00f3n de 3,3V que usaremos la del arduino.<\/li>\n<\/ol>\n<p>Es conveniente poner un adaptador de niveles ya que los D tendr\u00e1n 5 V y es recomendable usar 3,3 en los puertos SPI pero como no tenia en el momento de escribir este POST he preferido poner lo que realmente he utilizado, cuando los compre ya actualizare el nuevo esquema y ampliare los tipos de tarjeta seg\u00fan vayan cayendo en mis manos.<\/p>\n<h5>Continuamos con la programaci\u00f3n<\/h5>\n<p>La programaci\u00f3n la realizamos con la librer\u00eda de Miguel Balboa <a href=\"https:\/\/github.com\/miguelbalboa\/rfid\">MFRC522<\/a>\u00a0que permite usar este lector mediante una conexi\u00f3n SPI.<\/p>\n<p class=\"western\">Voy a resumir la programaci\u00f3n pues lo mejor es ver y jugar con los ejemplos que he colgado el\u00a0<a href=\"http:\/\/www.pinguytaz.net\/index.php\/rfid\/\">Cuaderno Tecnico \u00abRFID\u00bb<\/a>.<\/p>\n<p>Lo primero es crear el objeto lector e iniciarlo :<\/p>\n<h6 style=\"text-align: center;\">MFRC522 rfid(SS_PIN, RST_PIN);<\/h6>\n<h6 style=\"text-align: center;\">rfid.PCD_Init(); ;<\/h6>\n<p>Luego esperaremos a que se acerque una tarjeta y leemos los datos b\u00e1sicos de la tarjeta como es el tipo y el UID<\/p>\n<h6 style=\"text-align: center;\">rfid.PICC_IsNewCardPresent();<\/h6>\n<h6 style=\"text-align: center;\">rfid.PICC_ReadCardSerial()<\/h6>\n<p>Esto es importante para luego saber como leer el resto de los datos o interactuar con la tarjeta,\u00a0reduciendo saldo por ejemplo, pues seg\u00fan sea el tipo as\u00ed estar\u00e1n organizado los datos. As\u00ed por ejemplo en nuestros ejemplo se usa la tarjeta MIFARE CLassic de 1K que por ejemplo tiene la particularidad de tener que autentificarse en cada lectura de sector\/bloque que realice, todo esto con una descripci\u00f3n de como se organizan los datos de usuario y de permiso lo puede ver en el\u00a0<a href=\"http:\/\/www.pinguytaz.net\/index.php\/rfid\/\">Cuaderno Tecnico \u00abRFID\u00bb<\/a>\u00a0y que ir\u00e9 actualizando seg\u00fan tenga diferentes tipos de tarjeta.<\/p>\n<p>El c\u00f3digo para la lectura de datos de usuario y poniendo la clave por defecto de fabrica, ya que esta la podremos cambiar, seria el siguiente.<\/p>\n<h6>MFRC522::MIFARE_Key clave;<br \/>\nbyte Bloque0 = sector*4; \/\/ Calculamos direccion bloque 0 del sector<br \/>\nbyte dirBloque = Bloque0 + bloque; \/\/ Direccion del bloque a leer<br \/>\n\/\/ Clave por defecto 0xFFFFFFFFFFFF<br \/>\nfor(byte i =0 ; i&lt; 6 ; i++) clave.keyByte[i] = 0xFF;<br \/>\nestado = rfid.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A,\u00a0Bloque0, \u00a0&amp;clave, &amp;rfid.uid);<\/h6>\n<p>Hasta aqu\u00ed un resumen de como leer una tarjeta RFID y que puedes encontrar en\u00a0<a href=\"http:\/\/www.pinguytaz.net\/index.php\/rfid\/\">Cuaderno Tecnico \u00abRFID\u00bb<\/a>. que es donde tendr\u00e9 todas las actualizaciones de nuevas operaciones y tarjetas, as\u00ed como si encuentro otros lectores de interes. Para eso en la p\u00e1gina del\u00a0<a href=\"http:\/\/www.pinguytaz.net\/index.php\/rfid\/\">Cuaderno Tecnico \u00abRFID\u00bb<\/a>\u00a0estara el historial de cambios para saber que se a\u00f1ade o modifica.<\/p>\n<p>Espero que disfrut\u00e9is.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy voy hablar despu\u00e9s de tiempo de RFID, que es con el que inicio una nueva serie que espero crezca de cuadernos t\u00e9cnicos en los que ire poniendo en un documento PDF y ejemplo de elementos que podemos usar con Arduino. Comenzamos aunque te aconsejo que si te llama la atenci\u00f3n este breve POST vayas [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[3,15],"tags":[23,32,38,44,52,54],"class_list":["post-117","post","type-post","status-publish","format-standard","hentry","category-arduino","category-rfid","tag-arduino","tag-iso-14443","tag-mifare","tag-nxp","tag-rc522","tag-rfid"],"_links":{"self":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/comments?post=117"}],"version-history":[{"count":0,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/117\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media?parent=117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/categories?post=117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/tags?post=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}