meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
electronica:esp8266:rfid [2016/10/02 23:43] lcelectronica:esp8266:rfid [2023/01/18 14:36] (actual) – editor externo 127.0.0.1
Línea 3: Línea 3:
 En esta práctica vamos a utilizar un ESP8266-12E y el módulo RC522, para construirnos un lector de tarjetas de identificación por radio frecuencia **(RFID)** En esta práctica vamos a utilizar un ESP8266-12E y el módulo RC522, para construirnos un lector de tarjetas de identificación por radio frecuencia **(RFID)**
  
-{{:electronica:esp8266:rfid-rc522_-_pin_layout.png?600|}}+{{:electronica:esp8266:rfid-rc522_-_pin_layout.png?500|}}
  
-Lo primero es saber que dependiendo del modelos de ESP que utilicemos tenemos que usar un pin u otro. La tabla con las equivalencias es la siguiente:+Lo primero que tenemos que tener en cuenta es que dependiendo del modelos de Arduino que utilicemos tenemos que usar un pin u otro. La tabla con las equivalencias es la siguiente:
    
 ^Módulo RC522^ESP8266-12E^ESP8266^Arduino ^ ^Módulo RC522^ESP8266-12E^ESP8266^Arduino ^
Línea 17: Línea 17:
 |8-> SDA|D10|D8|D10| |8-> SDA|D10|D8|D10|
  
 +El circuito quedaría de la siguiente forma:
 +{{ :electronica:esp8266:esp8266_rfid_bb.png?600 |}}
 +
 +
 +El código para comprobar que se leen las etiquetas 
 +
 +<sxh c>
 +//
 +#include <WiFiClientSecure.h>
 +#include <ESP8266WiFi.h>
 +#include <SPI.h>
 +#include <MFRC522.h>
 +
 +#define SS_PIN 15
 +#define RST_PIN 2
 + 
 +MFRC522 rfid(SS_PIN, RST_PIN);
 +
 +MFRC522::MIFARE_Key key; 
 +// Init array that will store new NUID 
 +byte nuidPICC[3];
 +
 +void setup() 
 +
 +  Serial.begin(9600);
 +  SPI.begin();          // Init SPI bus
 +  rfid.PCD_Init();      // Init MFRC522 
 +
 +  for (byte i = 0; i < 6; i++) 
 +    {  key.keyByte[i] = 0xFF;
 +    }
 +
 +  Serial.println(F("Este código escanea el NUID de etiquetas MIFARE Classsic."));
 +  Serial.print(F("Usar la siguiente llave:"));
 +  printHex(key.keyByte, MFRC522::MF_KEY_SIZE);
 +}
 +// ------------------------------------------------------------------
 +void printHex(byte *buffer, byte bufferSize) {
 +  for (byte i = 0; i < bufferSize; i++) {
 +    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
 +    Serial.print(buffer[i], HEX);
 +  }
 +}
 +void printDec(byte *buffer, byte bufferSize) {
 +  for (byte i = 0; i < bufferSize; i++) {
 +    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
 +    Serial.print(buffer[i], DEC);
 +  }
 +}
 +//------------------------------------------------------------------
 +
 +void loop() {
 +
 +  // Buscamos tarjetas
 +  if ( ! rfid.PICC_IsNewCardPresent())
 +    return;
 +
 +  // SI la encuentra la leemos
 +  if ( ! rfid.PICC_ReadCardSerial())
 +    return;
 +
 +  Serial.print(F("PICC type: "));
 +  MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
 +  Serial.println(rfid.PICC_GetTypeName(piccType));
 +
 +  // Check is the PICC of Classic MIFARE type
 +  if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&  
 +    piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
 +    piccType != MFRC522::PICC_TYPE_MIFARE_4K) 
 +      {
 +        Serial.println(F("La etiqueta no es del tipo MIFARE Classic."));
 +        return;
 +      }
 +
 +  if (rfid.uid.uidByte[0] != nuidPICC[0] || 
 +    rfid.uid.uidByte[1] != nuidPICC[1] || 
 +    rfid.uid.uidByte[2] != nuidPICC[2] || 
 +    rfid.uid.uidByte[3] != nuidPICC[3] ) 
 +    {
 +        Serial.println(F("Una nueva tarjeta ha sido detectada."));
 +    
 +        Serial.println(F("El NUID de la etiqueta es:"));
 +        Serial.print(F("En hex: "));
 +        printHex(rfid.uid.uidByte, rfid.uid.size);
 +        Serial.println();
 +        Serial.print(F("En decimal: "));
 +        printDec(rfid.uid.uidByte, rfid.uid.size);
 +        Serial.println();
 +     
 +       rfid.PICC_HaltA();
 +       rfid.PCD_StopCrypto1();
 +    }
 +    delay(600);
 +}
 +</sxh>
  
 ==== Referencias ==== ==== Referencias ====
   * http://www.prometec.net/arduino-rfid/   * http://www.prometec.net/arduino-rfid/
 +  * https://github.com/miguelbalboa/rfid
 +