Idee, Projektorganisation:   Andreas Döpkens
(ein großer Dank an Martin von Löwis für die technische Beratung zur Realisierung dieses Projektes)
Software-Assistenz für die Abschlussarbeiten an diesem Projekt:  Brian Schüler

Betreuer der Abschlussarbeiten (Bachelor/Master) für acaLoan-Raspi:    Prof. Dr. Christian Forler

 

Im Rahmen von Laborübungen im Studiengang Technische Informatik werden zu den im PSE-Labor stattfindenden Übungsveranstaltungen Raspberry Pi Minicomputer (kurz: Raspi) an die Studierenden verliehen (loan). Genau genommen sind es immer Paare von Raspis, die gemeinsam als 2er-Set auf einem Plexiglas-Trägerboard montiert sind. Es existieren derzeit 16 dieser durchnummerierten Raspi Loan-Boards, die in einem Schrank in einem kleinen Lagerraum des PSE-Labors aufbewahrt werden. Von diesen 16 Loan-Boards werden für eine Laborübung, die in Gruppen von zwei Studierenden stattfinden, 11 Lab-Boards (1-11) verliehen. Die anderen 5 Loan-Boards können als Home-Boards (12-16) außerplanmäßig von Studierenden ausgeliehen und auch mit nach Hause (home-loan) genommen werden.

Zu Beginn einer Laborübung werden von den Mitarbeitern oder der die Übung betreuenden Lehrkraft die Raspi Lab-Boards an die Studierenden herausgegeben, und am Ende der Laborübung wieder zurückgenommen. Das hört sich nicht nach viel Arbeit an, ist aber erfahrungsgemäß mit einem nicht zu unterschätzenden Aufwand verbunden. Das liegt nicht zuletzt daran, dass immer wieder Studierende (auch nach mehreren Wochen) ihre am Semesteranfang zugewiesene Gruppennummer nicht kennen und sich deshalb ein Lab-Board mit einer falschen Registriernummer geben lassen. Oder eine Gruppe bekommt versehentlich ein falsches Raspi Lab-Board ausgehändigt und merkt das nicht. Und und und.

Hinzu kommt der Verwaltungsaufwand für die ausleihbaren Home-Boards, die von den Studierenden für jeweils eine Woche mit nach Hause genommen werden können.

Wir haben uns deshalb entschlossen, das Verleihprozedere für die Loan-Boards (Lab und Home) mit modernen Mitteln der Technischen Informatik für uns zum Vorteil zu automatisieren. Aber wir wollen das nicht selbst tun, sondern gerne als Abschlussarbeit von einem oder einer Studierenden machen lassen.

Wenn zwar das Thema für die acaLoan-Abschlussarbeit beinhaltet, dass eine Datenbank zur Ausleihverwaltung geschrieben werden soll, so besteht die Arbeit insgesamt jedoch aus mehreren Teilen, die - wenn auch nur minimal - über das Schreiben der Datenbank hinausgehen und auch eine gewisse Hardwarenähe haben. 

Wir hätten gerne eine Server-Client-Anwendung, bestehend aus
- zwei Clients: 1. an einem uComputer (=Register-Client, z.B. realisiert mit einem Raspberry Pi) ist ein RFID-Reader angeschlossen, und 2. ein Display-Client (z.B. ein Android/iOS-Tablett), in dem in einem Browser-Fenster die aktuelle Server-Kommunikation angezeigt wird
- ein Web-Server für die Datenbank-Applikation. Dieser kann z.B. mit einem Web-Framework wie Django erstellt werden

Zunächst müssen die 16 für die Ausleihe zur Verfügung stehenden Raspi Loan-Boards mit einem geeigneten RFID-Tag ausgestattet werden. Das kann (ein großer Dank an Martin von Löwis für die Recherche) z.B. der bei Amazon erhältliche "NFC Tag Sticker NTAG216" oder der "NTAG213" sein. Desweiteren soll an dem oben genannten Register-Client der dort angeschlossene RFID Chip-Kartenleser über geeignete Software in Betrieb genommen und die eingelesenen Daten an den Server übermittelt werden. Erfolgreich getestet wurde schon der ebenfalls bei Amazon erhältliche "Reiner SCT cyberJack". Dieser Reader unterstützt - diese Anforderung ist für die vorliegende Abschlussarbeit wichtig - die MIFARE-Transponder (s. Wiki) Produktspezifikation im 13,561 MHz Funkbereich. Auch die Studierenden-Ausweise der Beuth können mit dieser Technologie gelesen werden.

Das wesentliche Arbeitsprinzip für die vorliegende Abschlussarbeit ist damit klar: Studierende in den Räumen des PSE-Labors dürfen und sollen sich fortan die Raspi Loan-Boards für die Übungen und auch für den längeren Home-Loan selbst aus dem Aufbewahrungsschrank nehmen. Der Studierende muss das Raspi-Board aber registrieren (tut er das nicht, wird diese Handlung von uns als Diebstahlsversuch verstanden). Für die Registration sind zwei Schritte erforderlich, die den oben genannten Register-Clientbetreffen:

1. Der RFID-Tag des zu verleihenden Raspi-Boards muss an den Kartenleser gehalten werden. Anhand des RFID-Codes, das sind die assoziierten Zahlen 1 bis 11 bzw. 12 bis 16, erkennt das System, ob es sich um ein Ausleihgerät für die kurzzeitige Verwendung im Labor (z.B. Laborübung oder "freies Üben") oder den längerfristigen Home-Loan handelt.

2. Der Ausleiher muss sich mit einem gültigen Studierenden-Ausweis registrieren. Dieser Ausweis wird dazu ebenfalls in die Nähe des Kartenlesers gebracht.

Es soll jedoch möglich sein, dass einem Studierenden die Home-Loan-Absicht eines Boards (12-16) verweigert wird (loan-denial). Leider haben wir in der Vergangenheit wiederholt sehr unangenehme Erfahrungen mit Studierenden gemacht, die sich entweder gänzlich geweigert haben, uns ein Ausleihgerät nach Ablauf der Frist überhaupt zurückzugeben, oder wir haben das Gerät in einem sehr üblen Zustand der Verschmutzung oder Zerstörung zurückerhalten - immer mit der Bemerkung des Studierenden: "Das habe ich schon so von euch bekommen". Ein weiterer Sperrgrund für die Ausleihe eines Home-Boards an einen Studierenden ist die aktuelle Buchungszeit. Ein Studierender, der ein Home-Board (12-16) gerade zurückgegeben hat, darf nicht am selben Tag nochmal eines ausleihen (möglicherweise auch noch genau das Board, welches er gerade "als zurückgegeben" immer noch in den Händen hält). Damit soll vermieden werden, dass ein Studierender zu einem Dauerausleiher wird und somit andere Studierende überhaupt keine Möglichkeit für eine Ausleihe bekommen. Denn letztlich können wir nur die Boards ausleihen, die physisch vorort im Schrank liegen. (Eine Alternative wäre die Führung einer Warteliste, aber auf eine solche möchten wir aus Gründen der Komplexität zunächst noch verzichten.)

 

Der Display-Client, das ist das o.g. Android-Display im Browser-Modus, soll die getätigten Schritte des Studierenden mit Angabe der Uhrzeit dokumentieren. Also z.B. ob der Studierende das bestimmte Raspi Loan-Board gerade ausleiht (nur zusammen mit Studierenden-Ausweis möglich) oder zurückgibt (hierfür ist kein Ausweis erforderlich). Im Falle eines Loan-Denial soll ebenfalls eine Anzeige erfolgen, wie z.B. "Ausleihe nicht möglich, sprich bitte mit der Lehrkraft oder einem Labor-Mitarbeiter".

 

Der zu guter Letzt mit einem Administrator-Password zugängige Web-Server soll folgende Features haben:

Die Ausleih-Verwaltung der Raspi Boards geschieht immer semesterweise, z.B. SoSe2020. Vom acaLoan-Administrator wird eine Liste der Teilnehmer mit folgenden Einträgen angelegt:

Name ("Mustermann")
First Name  ("Max")
Matr. No. ("12345")
HRZ-Id. ("98765")
Group-No. ("10")
Group-Branch A/B ("A")  
future Home-Loan denied ("no")
Lab-Board <Group-No> lent ("yes") on date ("2020-01-11") at time ("12:53")
Lab-Board returned ("yes") on date ("2020-01-11") at time ("12:53")
any Home-Board lent ("14")
Home-Board returned ("yes") on date ("2020-01-11") at time ("14:56")

Auf Wunsch soll dem Admin eine Liste aller Raspi Loan-Boards zur Verfügung gestellt werden mit der Angabe, ob ein Board verfügbar (nicht verliehen) ist und sich demnach im Verwahrungsschrank befinden müsste.

Es wäre sinnvoll, wenn vom Admin eine Liste der verfügbaren Lab- und Home-Boards angelegt und auch erweitert werden könnte, falls z.B. aufgrund steigender Nachfrage in der Zukunft noch weitere Home-Boards hinzukommen sollten.