Pubblicato il

Modulo Arduino Lettore e Scrittura RFID UHF RS485 UART USB senza Contatto

Premessa: MODULO RFID UHF-RS485 , questo lettore di tag RFID è un modulo di lettura e scrittura remoto della scheda IC che utilizza la tecnologia UHF senza contatto.Può essere ampiamente utilizzato nel campo del monitoraggio dei veicoli, del controllo remoto, del sistema di allarme domestico, della lettura dei contatori wireless, dell’accesso sistema di controllo, sistema di acquisizione dati industriale, tag wireless, identificazione, scheda RF senza contatto, piccoli terminali dati wireless, sistemi antincendio, sistema di controllo remoto wireless, acquisizione di segnali biologici, monitoraggio idrologico e meteorologico, controllo robot, ecc. Il MODULO RFID UHF-RS485, un modulo lettore di tag RFID remoto lanciato da DFRobot, può essere facilmente integrato nell’attuale rete wireless, allo stesso tempo il modulo ha un’altra versione con interfaccia UART che i produttori possono facilmente comunicare con altri.

CARATTERISTICHE TECNICHE:

  • Interfaccia: RS485
  • Corrente di lavoro massima: 200 mA
  • Potenza massima in uscita: 24dBm
  • Portata effettiva: 50 cm (i tag RFID in arrivo potrebbero essere rilevati entro 30 cm, la portata effettiva sarebbe influenzata dal tag dell’antenna e dall’ambiente)
  • Sensibilità: -102dBm, almeno -98dBm
  • Baud rate di supporto: 9600, 19200, 38400, 57600, 115200 (bps)
  • Protocollo di supporto: ISO18000-6C (EPC G2)
  • Tempo di risposta: lettura: meno di 10 ms per 8 byte, scrittura: meno di 20 ms per byte
  • Temperatura ambiente: -20 ℃ ~ + 65
  • Dimensioni: 155 mm * 100 mm
  • rosso: ingresso 7V/2A
  • nero: GND
  • verde: una fine
  • giallo: fine B

LISTA MATERIALI:

TUTORIAL:

MODULO RFID UHF-USB, il modulo lettore di tag RFID remoto, trasferisce il formato dati immobilizzato per ottenere lettura-scrittura.Esistono tre formati di frame di dati comuni.Ad esempio:

Il frame di comando è il frame di dati per il funzionamento del lettore, il trasferimento dei dati dall’host allo slave e il formato come segue.

Tipo di pacchetto Lunghezza Codice di comando Numero del dispositivo Dati di comando … Dati di comando Dati di comando Checksum
0xa0 n+3 1 byte 1 byte Byte 1 Byte n-1 Numero di byte cc

Il tipo di pacchetto è un dominio di tipo pacchetto, il tipo di pacchetto del frame di comando è fissato a 0xa0;
Length è un dominio di lunghezza del pacchetto, che rappresenta il numero di byte del frame dopo Length;
Command Code è un dominio del codice di comando;
Il numero del dispositivo è un dominio del numero del dispositivo, quando il codice utente, il numero del dispositivo, è 00, questi dati verranno inviati al gruppo;
Command Data è il dominio dei parametri del frame di comando;
Il checksum è un dominio di checksum, le disposizioni dell’intervallo di checksum vanno dal dominio del tipo di pacchetto all’ultimo byte del dominio del parametro. È necessario calcolare il checksum per rilevare l’errore dopo che il modulo riceve il frame di comando.

Il frame di risposta del completamento del comando del lettore è il frame di dati con lunghezza immobilizzata, il trasferimento dei dati dallo slave all’host e il formato come segue

Tipo di pacchetto Lunghezza Codice di comando Numero del dispositivo Stato Checksum
0xe4 0x04 1 byte 1 byte 1 byte cc

Lo stato è il campo di stato, mostra lo stato o il risultato dopo che il lettore ha completato il comando tramite PC, la descrizione come segue;

SN. valore nome descrizione
1 0x00 ERR_NONE Comando completato
2 0x02 CRC_ERROR Errore di controllo CRC
3 0x10 COMMAND_ERROR Comando illegale
4 0x01 OTHER_ERROR Altro errore

Il frame di informazioni è il frame di dati inviato all’host, ad esempio utilizzato per inviare un tag all’host, il trasferimento dei dati dallo slave all’host e il formato come segue:

Tipo di pacchetto Lunghezza Codice di risposta Numero del dispositivo Dati di risposta … Dati di risposta Checksum
0xe0 n+3 1 byte 1 byte Byte 1 Numero di byte cc

Response Code è il campo del codice delle informazioni, la selezione del valore determina il tipo di informazioni, Response Data è il campo del parametro nei frame di informazioni;

Di seguito sono riportati alcuni comandi comuni dall’host e ulteriori informazioni e dettagli fare riferimento alla documentazione tecnica del MODULO RFID UHF.

Leggi i tag Uccidi i tag Smetti di leggere i tag riavviare la funzione di identificazione del tag BUZZER di controllo
A0 06 80 00 01 02 01 D6 A0 08 86 00 00 12 34 56 78 BE A0 03 A8 00 B5 A0 03 FC 00 61 A0 04 B0 00 00 (chiuso) AC
A0 04 B0 00 01 (aperto) AC

Quando il modulo lettore di tag RFID si accende e dopo un breve “beep”, il modulo entrerà in modalità di lettura continua della carta. Metti il ​​​​tag sopra il modulo, il modulo inizierà a leggere le carte. Ad esempio, puoi fermarti la lettura della tessera invia un dato tramite la porta seriale (il dato di fine lettura è A0 03 50 00 D) e se questa operazione va a buon fine il modulo restituirà E4 04 50 00 00 C8. Se fallisce, restituisce i dati E4 04 50 00 (altro valore) C8.

N.B: Il modulo ha distrutto, bloccato e altre funzioni speciali. Se una volta che il tag viene distrutto, il tag non potrà mai più essere utilizzato. Quindi, usa queste funzioni con cautela!

APPLICAZIONE:

Questo esempio mostra che usa Arduino per controllare lo scambio di stato tra “Interrompi lettura tag” e “Riavvia funzione identificazione tag”. E quando lo facciamo, abbiamo bisogno di un convertitore (come Multi USB/RS232/RS485/TTL Converter ) per cambiare RS485 in TTL.

CODICE DI ESEMPIO:

unsigned char StopReadCode[5] = {0xa0,0x03,0xa8,0x00,0xb5};//Stop reading the label code
unsigned char ResetCode[5]={0xa0,0x03,0x65,0x00,0xf8};//Reset code
unsigned char StopReadCodeCB[6]={0xe0,0x04,0xa8,0x00,0x00,0x74};//Stop reading code success and return the value
unsigned char ResetCodeCB[6]={0xe4,0x04,0x65,0x00,0x00,0xb3};//Reset code success and return the value
unsigned char data[6]={};
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  int i;
  int n=1;
  delay(2000);
  while(n)
  {
    Serial.write(StopReadCode,5);
    delay(200);
    if(Serial.available())
    {
      for(i=0;i<6;i++)
      {
        data[i]=Serial.read();
        delay(1);
      }
      for(i=0;i<6;i++)
      {
        if(data[i]==StopReadCodeCB[i])
          n=0;
        else
          n=1;
      }
    }
    delay(500);
  }
  n=1;
  while(n)
  {
    Serial.write(ResetCode,5);
    delay(200);
    if(Serial.available())
    {
      for(i=0;i<6;i++)
      {
        data[i]=Serial.read();
        delay(1);
      }
      for(i=0;i<6;i++)
      {
        if(data[i]==ResetCodeCB[i])
          n=0;
        else
          n=1;
      }
    }
    delay(500);
  }

}

Questo esempio mostra che usa il PC per impostare il modulo. Abbiamo ancora bisogno di un convertitore (come Multi USB/RS232/RS485/TTL Converter) per cambiare RS485 in USB.

In questa applicazione, utilizziamo il monitor seriale per aiutarci a inviare e ricevere comandi in modo più comodo. Leggendo il comando tag, possiamo scoprire che il modulo RFID esegue la risposta e restituisce il nome del tag. Quindi continuiamo a provare a utilizzare altri comandi.

Buon progetto.