Izan lecina webㅤㅤ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎  

Desenvolupament de prototip (arduino)

Per reduir la despesa del prototip, hem optat per crear el nostre propi lector RFID amb Arduino en lloc de comprar-ne un de prefabricat. Està connectat directament a la web i disposa d’un brunzidor que emet un senyal quan detecta un objecte, facilitant així la interacció amb l’usuari.

Funciona mediant les llibreries LiquidCrystal I2C i MFRC522  

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

#define RST_PIN         9          // Pin para el Reset
#define SS_PIN          10         // Pin para el SDA (Select)
#define BUZZER_PIN      8          // Pin para el zumbador

// Creamos el objeto para el lector
MFRC522 rfid(SS_PIN, RST_PIN); 

void setup() {
  Serial.begin(115200);   // Iniciamos el puerto serie (¡Igual que en tu C#!)
  SPI.begin();            // Iniciamos el bus SPI
  rfid.PCD_Init();        // Iniciamos el módulo MFRC522
  
  pinMode(BUZZER_PIN, OUTPUT);
}

void loop() {
  // 1. Revisar si hay una nueva tarjeta presente
  if (!rfid.PICC_IsNewCardPresent()) {
    return;
  }

  // 2. Revisar si podemos leer la tarjeta
  if (!rfid.PICC_ReadCardSerial()) {
    return;
  }

  // 3. Extraer el código único (UID) de la tarjeta y convertirlo a texto
  String uidString = "";
  for (byte i = 0; i < rfid.uid.size; i++) {
    // Convertimos cada parte a formato hexadecimal
    if(rfid.uid.uidByte[i] < 0x10) {
      uidString += "0";
    }
    uidString += String(rfid.uid.uidByte[i], HEX);
  }
  
  // Convertimos a mayúsculas para que quede bonito (ej: "A1B2C3D4")
  uidString.toUpperCase();

  // 4. Enviar el código al ordenador por el cable USB
  Serial.println(uidString);

  // 5. Hacer sonar el pitido de éxito
  tone(BUZZER_PIN, 2000); 
  delay(150);             
  noTone(BUZZER_PIN);     

  // 6. Detener la lectura actual para no leer el mismo chip 100 veces por segundo
  rfid.PICC_HaltA();
  
  // Retardo de seguridad extra
  delay(500);
}
GDPR Cookie Consent with Real Cookie Banner