YR8001 RFID-Leser

320
Siddhant Sethi

Ich mache ein Projekt zum passiven RFID-System mit dem YR8001-RFID-Lesegerät. Ich bin Anfänger und weiß nicht viel darüber. Nachdem ich verschiedene Artikel und Blogs gelesen hatte, erfuhr ich, dass die meisten Leser dem Benutzer die Verwendung von RS232 gestatten (YR 8001 auch). RS232 und TTL arbeiten auf zwei verschiedenen Spannungsstufen. Wenn jemand das Lesegerät über einen Mikrocontroller an einen Computer anschließen möchte, benötigen Sie einen RS232-TLL-Konverter (ich verwende dafür MAX232).

Die Seite, von der ich das Teil bestellt habe, gibt dem Produkt eine Software, die Ihnen beim Interagieren mit dem Lesegerät hilft, aber es gibt keine Möglichkeit, die Ausgabe an den Mikrocontroller zu senden. Ich muss das RFID-Tag lesen und sollte es an den Mikrocontroller ausgeben. Daher versuche ich mein eigenes Programm mit Arduino zu erstellen.

Um zu überprüfen, ob mein Lesegerät an meinen PC angeschlossen ist, verwende ich coolTerm (eine serielle Kommunikationssoftware). Ich kann es zwar durch Klicken auf die Schaltfläche "Verbinden" in coolTerm erfolgreich verbinden, bin mir jedoch nicht sicher, ob es tatsächlich eine Verbindung herstellt, da ich auf dem Bildschirm "Serial Monitor" nichts sehen kann und nach meinem Verständnis nach dem Lesen verschiedener Blogs der Leser etwas davon senden sollte Sie erhalten eine Benachrichtigung, dass Ihr Computer mit dem Lesegerät verbunden ist. Beide können jetzt miteinander kommunizieren.

Irgendwelche Hinweise auf das, was ich tun sollte, wäre für mich eine große Hilfe, da ich festgefahren bin und mir nicht vorstellen kann, wie ich jetzt vorgehen soll.

0

1 Antwort auf die Frage

0
Hector Guerrero

Dies ist ein Beispiel, dass ich vor einigen Monaten gearbeitet habe. Ich denke es funktioniert gut. Das Programm setzt die Antenne zurück, setzt die Arbeitsantenne und arbeitet dann als Echtzeitinventar. Wenn Sie etwas über Arduino wissen, können Sie den Code lesen. (Es hat einige spanische Kommentare, weil ich in Mexiko bin)

#include <SPI.h> #include <SD.h>  File myFile;  byte reset_Message[] = ; byte set_WorkingAntenna[] = ; byte real_TimeInventory[] = ;  int cont = 0; int contSD = 1; byte tag_ID[21]; String tag_IDInt="";  unsigned long previousMillis = 0; // will store last time LED was updated  // constants won't change : const long interval = 100; // interval at which to blink (milliseconds)  boolean found = false;  void setup() { // initialize both serial ports: Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial2.begin(115200); Serial.print("Inicializando Memoria SD..."); if (!SD.begin(4)) { Serial.println("Inicializacion Fallida!"); return; } Serial.println("Inicializacion Correcta."); delay(100); Serial2.write(reset_Message, sizeof(reset_Message)); delay(500); Serial2.write(set_WorkingAntenna, sizeof(set_WorkingAntenna)); delay(50); Serial2.write(real_TimeInventory, sizeof(real_TimeInventory));  tag_IDInt.reserve(200); }  void loop() { unsigned long currentMillis = millis();  if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; Serial2.write(set_WorkingAntenna, sizeof(set_WorkingAntenna)); delay(50); Serial2.write(real_TimeInventory, sizeof(real_TimeInventory)); }  // read from port 2, send to port 0: if (Serial2.available()) { byte inByte = (byte)Serial2.read(); tag_ID [cont] = inByte; //Serial.write(inByte); cont++; if (cont == 6 && tag_ID[3] == 116){ cont = 0;} if (cont == 12 && tag_ID[4] == 0 ){ cont = 0;} if (cont == 21){ for (int i=7; i<19; i++){ tag_IDInt += String(tag_ID[i],HEX); //Serial.print(tag_ID[i], HEX); //Serial.print(" "); } tag_IDInt += (char)'\r'; Serial.print("Tu ID es: "); Serial.print(tag_IDInt); if (lookForID(tag_IDInt)){ Serial.println(", Acceso Permitido"); }else{ Serial.println(", Acceso Denegado"); } found = false; tag_IDInt = ""; cont = 0; } } }  boolean lookForID(String read_ID){ // open the file. note that only one file can be open at a time, // so you have to close this one before opening another. myFile = SD.open("TAGIDS.csv", FILE_WRITE);  // re-open the file for reading: myFile = SD.open("TAGIDS.csv"); if (myFile) { // read from the file until there's nothing else in it: while (myFile.available() && !found) { String line = myFile.readStringUntil('\n');  if (line == read_ID){  //Serial.print(" Found in Line "); //Serial.print(contSD); found = true; contSD = 1; return true; } else contSD++; } // close the file: myFile.close(); if(!found){ contSD = 1; return false; } } else { // if the file didn't open, print an error: Serial.println("Error Abriendo TAGIDS.csv"); } }