Smart Home Automation Forum
RFID reader - Printable Version

+- Smart Home Automation Forum (https://www.kincony.com/forum)
+-- Forum: Technical Support (https://www.kincony.com/forum/forumdisplay.php?fid=20)
+--- Forum: KC868-A8 (https://www.kincony.com/forum/forumdisplay.php?fid=23)
+--- Thread: RFID reader (/showthread.php?tid=6269)



RFID reader - diegoruales@gmail.com - 07-31-2024

Hi

please guide me in the right direction

i bought a kc868-A8  and  i want to add  RFID READER ;  my code working in normal ESP32 NODEMCU IS

Code:
#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN 9 // Pin para el RST de los lectores RFID

// Pines SS para los 6 lectores RFID
#define SS_PIN1 10
#define SS_PIN2 11
#define SS_PIN3 12
#define SS_PIN4 13
#define SS_PIN5 14
#define SS_PIN6 15

// Instancias de los lectores RFID
MFRC522 rfid1(SS_PIN1, RST_PIN);
MFRC522 rfid2(SS_PIN2, RST_PIN);
MFRC522 rfid3(SS_PIN3, RST_PIN);
MFRC522 rfid4(SS_PIN4, RST_PIN);
MFRC522 rfid5(SS_PIN5, RST_PIN);
MFRC522 rfid6(SS_PIN6, RST_PIN);

// Variables para el temporizador
unsigned long previousMillis = 0; // Almacena el último tiempo en que se imprimió el mensaje
const long interval = 10000;      // Intervalo de 10 segundos (10,000 milisegundos)

void setup()
{
  Serial.begin(115200); // Inicializar comunicación serial
  SPI.begin();          // Inicializar el bus SPI

  // Inicializar cada lector RFID
  rfid1.PCD_Init();
  rfid2.PCD_Init();
  rfid3.PCD_Init();
  rfid4.PCD_Init();
  rfid5.PCD_Init();
  rfid6.PCD_Init();

  Serial.println("RFID readers initialized");
}

// Función para leer datos del RFID y mostrar el UID
void readRFID(MFRC522 &rfid, const char *lector)
{
  // Verificar si hay una nueva tarjeta presente
  if (!rfid.PICC_IsNewCardPresent())
    return;

  // Seleccionar una tarjeta
  if (!rfid.PICC_ReadCardSerial())
    return;

  // Mostrar el UID de la tarjeta
  Serial.print("UID de la tarjeta en ");
  Serial.print(lector);
  Serial.print(": ");
  for (byte i = 0; i < rfid.uid.size; i++)
  {
    Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(rfid.uid.uidByte[i], HEX);
  }
  Serial.println();

  // Detener la comunicación con la tarjeta
  rfid.PICC_HaltA();
  rfid.PCD_StopCrypto1();
}

void loop()
{
  // Leer cada lector RFID
  readRFID(rfid1, "Lector 1");
  readRFID(rfid2, "Lector 2");
  readRFID(rfid3, "Lector 3");
  readRFID(rfid4, "Lector 4");
  readRFID(rfid5, "Lector 5");
  readRFID(rfid6, "Lector 6");

  // Imprimir algo cada 10 segundos
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval)
  {
    previousMillis = currentMillis;
    Serial.println("Han pasado 10 segundos.");
  }

  delay(1000); // Retardo para evitar lecturas rápidas consecutivas
}

i dont care about using ethernet , i don t need ethernet;   please tell me how to address the pins to use MOSI MISO SCLK AND CS required for  MFRC522 library

thanks a lot


RE: RFID reader - diegoruales@gmail.com - 07-31-2024

This is the reader

https://esphome.io/components/binary_sensor/rc522


RE: RFID reader - admin - 08-01-2024

KC868-A8 no gpio from SPI bus. I suggest integrate your RFID Reader by i2c bus.


RE: RFID reader - diegoruales@gmail.com - 08-01-2024

just for try;
would be posible to use spi bus using wires connected to ethernet port?


RE: RFID reader - admin - 08-01-2024

no, it's not suitable.


RE: RFID reader - diegoruales@gmail.com - 08-01-2024

one more question; do you have any other board model with spi bus available to use?


RE: RFID reader - admin - 08-01-2024

KC868-A6 have SPI socket: https://www.kincony.com/esp32-6-channel-relay-module-kc868-a6.html