Workshop – RFID Car Routing

In Kürze werde ich einige Zeit haben mich um das Routen von Wagons mittels RFID-Tags zu kümmern. Ich verwende dafür recht kleine 180 Byte Midas NTAG213 Klebe-Tags mit 12x19mm Abmessung (100 Stück ca. 38 EEuro bei NFC-Tag Shop. Als Lesegeräte kommen RFID-RC522 (Amazon-Link) für etwa 5 Euro das Stück zum Einsatz.

Liste der Versuchswagons

#

Rep.Mk.

L ft

Typ

Farbe

Tag-ID

Bemerkung

01 BCN 50211 45 Cov.Hopper gelb 04:44:65:F2:59:66:81 3DP
02 BCN 50442 45 Cov.Hopper grau 04:04:65:F2:59:66:81 3DP
03 ABOX 51001 52 Box Car gelb 04:E2:65:F2:59:66:80  
04 GM&O 56199 52 Box Car oliv 04:25:65:F2:59:66:81  
05 SOU 1228 45 Gondola grau 04:03:65:F2:59:66:81  
06 B&A 9125 52 Box Car bwr 04:49:70:F2:59:66:81 bwr = blau, weiss, rot
07 B&A 9128 52 Box Car bwr 04:88:70:F2:59:66:81 bwr = blau, weiss, rot
09 GM&O 1108 54 Alco RS-1 maroon noTag Lok

Unter anderem plane ich mehr als zwei Lesegeräte einzusetzen, womit bereits mehr als ein Arduino in JMRI sinnvoll ist. aus diesem Grund ist ein Bussystem für die Kommunikation nötig. Siehe auch hier.

Da auch für DCC++ mittlerweile ein aktueller Maintainer Weiterentwicklungen pflegt, steht zudem der Wechsel zu DCC++EX an. Dieses Projekt hebe ich mir allerdings für den Winter auf. Die Kommunikation der RFID-Reporter ist ein eigenständiges subsystem, das im ersten Step nur Switch-Listen generieren soll. Später bindet hoffentlich JMRI’s Operations-Konzept die Daten mit ein.

First things first. Ein Testlayout, eine analoge Lok und einige Wagons werden mich begleiten. Dazu neben meinem Laptop ein paar elektronische Komponenten, RFID-Hardware, Displays, Breadboards, mehrere Arduino-Boards, ein RaspberryPi 3b und ein kleiner TV (den müsste ich sonst ohnehin vor ort leihen).

XtrkCAD-Plan

Und hier sind die sechs Grundplatten ausgelegt (105x60cm)

XtrkCAD 1:1 Ausdruck

Anbei nochmal der XtrkCAD-Plan als Ausdruck direkt aus der Software, falls jemand diesen für siene Gleisplandatenbank herunterladen will (bitte Creative Commons Lizenz beachten, siehe Impressum)

Funktionsprinzip

Ich stelle mir vor das ein ganzer Zug über den RFID-Reader fahren kann und dabei als ganzes erfasst wird. Das dies technisch möglich ist zeigt der folgende Videoclip.

Der Versuchszug fährt über den RFID-Leser, ID-Anzeige auf dem Display

Wie man erkennen kann werden einige Labels doppelt eingelesen. Das sollte der Sketch also verarbeiten können.

Ich stelle mir vor, dass die eingelesenen IDs in eine Variablenliste (Array) geschrieben werden und dann als Block an das Backend übergeben werden. Im ersten Step denke ich darüber nach alles in eine MySQL-Datenbank auf dem RaspberryPi mit der JMRI-Installation zu schreiben.

Eine weitere Funktion könnte falls erforderlich später die Datenbankeinträge mit dem JMRI-Roster abgleichen (oder bereits auf dem Arduino) das befüllte Array sequentiell an den Reporter in JMRI übergeben.

Das Ziel soll eine automatische Generierung eines Zuges in OperationsPro sein. JMRI übernimmt daraufhin das Car Routing und das generieren von Rangierlisten anhand der Regeln in OperationsPro.