Mehrere RFID Reader auswerten

  • Hallo zusammen,

    ich habe den Auftrag in unserem "Lernlabor" ein RFID geführtes Auftragstracking einzuführen.

    Es gibt 7 Station, welche alle verbunden werden wollen. Die Reader sollen auf den Pufferflächen vor jeder Station (Bohren, Biegen, Kleben etc.) installiert werden, sodass man genau weiß, wo die Box (Bzw. der Auftrag) derzeit ist. (Weitere Vorteile: Messung Anlagenstillstand, Messung Taktzeit etc.)

    Industrielösungen sind super teuer (Oder lehrt mich eines besseren), sodass ich nun versuchen möchte auf die "Frickellösung" Raspberry zu gehen.

    Ich würde mich über Input von folgender Idee freuen:

    1. RDM6300 Reader installieren (7x)

    2. Verbinden mit einem PL2303 USB to RS232 Converter (7x)

    3. Alles in einem USB-Hub zusammenführen (1x)

    4. USB-Hub mit Raspberry Pi verbinden (1x)

    5. Über /dev/ttyUSB[xyz] ansteuern?!

    Gerade Punkt 5 ist mir noch ein wenig Unklar.

    Kann ich die Daten dann in "Echtzeit" abgreifen und zB. in eine Excel weiter verarbeiten ? (Z.B. visuell als Dashboard weiter darstellen?) Auch wäre das Abgreifen der Tags zB nach Schichtende auch okay, um eine Auswertung zu fahren. Aber hier bin ich noch nicht im Thema...

    Ich bin auch einer WLAN-Lösung offen. Dabei sei gesagt, dass die Arbeitsstationen kreisförmig aufgebaut sind, sodass die ein oder andere USB-Verbindung vom Reader an den HUB 4-5 Meter betragen kann. (Problem?)

    Ich brauche unbedingt eine Sicherheit, dass das auch alles geht, bevor ich anfangen und am letzten Punkt scheiter - Ich bin auf eure Ansätze gespannt. Mir reichen auch Stichpunkte als Hilfestellung, um mich weiter ein zu lesen.

    :danke_ATDE:

    Einmal editiert, zuletzt von HenrioO (25. April 2018 um 14:05)

  • Hallo HenrioO,

    ich habe eine Zutrittskontrolle per RFID gebastelt, nicht 100%ig ausgereift und leider in einer "funktionierenden" Version stehengeblieben, die allerdings noch fehlerbehaftet ist. Bin aber nicht mehr dazu gekommen das zu überarbeiten, das System läuft aber jetzt seit 1 Jahr (eben mit einem Fehler) ansonsten stabil und fehlerfrei.

    Zur Hardware habe ich 3 RFID Lesegeräte für 125khz, aber Achtung da gibt es etliche verschiedene Versionen. Ich finde leider gerade den Shop nicht mehr wo ich die gekauft habe, es gibt diese mit einer etwas größeren Antenne die dünn gewickelt ist, und eine ~1cm kleinere Antenne die dick gewickelt ist. Die kleinere Dicke hat bei mir eine höhere Reichweite erzielt, aber welche Version des RDM6300 Board das gerade war, keine Ahnung.

    Zusätzlich habe ich 3x RS232 USB Adapter, Typ PL2303HX, die im Pi stecken. Daran habe ich die Lesegeräte angeschlossen + Spannungsversorgung natürlich, mit einem Cat7 Kabel.

    Dann kann ich über /dev/ttyUSB1 etc. die USB Ports abfragen. Dazu muss man vorher aber ein bisschen Einstellungssachen betreiben, die ich irgendwo hier im Forum erfragt und dokumentiert hatte aber auf Anhieb auch nicht zu finden. Das Problem ist, dass die Chips alle die gleichen IDs haben und nicht zu unterscheiden sind für das Linux-System. Somit konnte ich mit meinen Sticks nicht einstellen, welcher Stick zu welchem Lesegerät gehört. Die Lesegeräte geben ja nur die ID des Tags aus, ohne sonstige Kennung über den Leser. Du musst aber ja später unterscheiden können, war das jetzt Station 1, 2, 3 usw. Somit habe ich das bei mir gelöst, dass ich bei Boot festlege, dass z.B. der obere linke USB-Steckplatz, automatisch /dev/USB1 ist, der daneben /dev/USB2 etc. Wie das jetzt bei einem USB-Hub aussieht, keine Ahnung. Da müsste der Pi ja wissen, an welchem Steckplatz welcher Stick und somit welche Leseeinheit ist, vielleicht weiß jemand dazu mehr.

    Ansonsten ist es dann ganz einfach, die Schnittstellen werden dauerhaft abgefragt, wenn etwas kommt wird die ID ausgewertet und ab dann wieder abgefragt. Bei mir kommt es zu Fehlauslesungen, immer 1x am Tag. Das Gerät hängt irgendwie und das Script stürzt dann bei Chiplesung ab. Da ich das als automatischen Neustart definiert habe, geht das Script wieder an und nach 3 Sekunden geht wieder alles für den Tag. Das ist das Problem welches ich nie behoben habe, weil die Zeit einfach nicht da war.

    Wenn du also 7 Sticks betrieben bekommst und eine eindeutige Zuordnung am Pi damit hinbekommst, sollte dem Projekt nichts im Wege stehen. Was du danach mit den IDs machst, ob in eine Datenbank, ein Dashboard, usw. steht dir ja alles frei. Hier ist noch ein Link wo ein paar Codeteile von mir drin sind (wo die Probleme bestehen), falls dir das irgendwie weiterhilft. Klick hier :)

    Gruß

    JumpY

    EDIT: Bei mir liegt die weiteste Enfernung von Antenne zu USB-Stick ca. 15 Meter. Kein Problem mit einem geschirmten Netzwerkkabel, warscheinlich geht noch deutlich mehr. Die USB Sticks würde ich so wenig wie möglich verlängern, aber die "Datenleitung" der Antenne an den USB-Stick kannst du lang nehmen.

  • Hallo Jumpy,

    vielen lieben Dank für deine sehr ausführliche Beschreibung!

    Das mit dem Hub macht mir ein wenig Sorgen...vll. ist es besser einen Arduino nano nach zu schalten ? Würde die weitere Programmierung dann einfacher sein ?

  • Ich habe leider keinen aktiven oder passiven USB-Hub hier um das mal nachzusehen, vielleicht weiß aber einer der Profis hier wie das abläuft? Vielleicht kann man das ja doch irgendwie auseinander halten.

    Bezüglich Kommunikation zwischen Arduino + Raspberry PI hatte ich auch mal versucht, das Projekt ist allerdings auch nie richtig zuende geführt worden.

    Ich weiß nicht ob das über UART funktioniert, oder wie man das am besten macht. Wenn der Arduino die Nummer des Chips ausgibt, eine Kennung von sich selber mitsendet und der Pi die empfängt ist das ja kein Problem. Beispiel: Station 1 sendet die gelesene Nummer als Dezimal oder Hexwert an den Pi, setzt dabei dann eine 01 davor um die Station zu filtern. Der Pi entschlüsselt quasi rückwärts und nimmt die 01 als Kennung und den Rest als UID. Dann weißt du welcher Chip sich gerade an welcher Station befindet.


    Programmiertechnisch sollte das keine Probleme geben, wenn die Kommunikation funktioniert.


    EDIT: Ich hatte irgendwie was durcheinander geworfen. Bei so kurzer Verbindung für der I2C Bus oder UART wohl auch gehen, ich habe es damals mit RS485 getestet. In der Forensuche habe ich dann nochmal jemanden gefunden, der auf meiner Basis weitergemacht hat und eine Anleitung geschrieben hat. Dazu müssen dann allerdings noch Spannungswandler und Bus-Bausteine beschafft werden, scheint aber zu funktionieren.
    Ich lese mal noch was weiter zum USB-Hub, vielleicht finde ich ja noch was (einfachste Möglichkeit). Andere Möglichkeit wären auch 2 PIs, über Netzwerk oder was auch immer :)

    Hier der Link von damals, keine Ahnung inwiefern die Libs noch aktuell sind: RS485 Kommunikation Raspi <-> Arduino V2

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!