Da es in unserem Hq ein kleines Schlüsselproblem gab, haben wir uns überlegt die Tür elektronisch aufzuschließen. Ein Magnetschloß war schon vorhanden jetzt fehlte nur noch die Ansteuerung des Schlosses.
Wir entschieden uns erstmal einen Wlan-Router zu nehmen, da jeder eigentlich immer ein Gerät mit Wlan dabei hat.
Als Wlan Router nahmen wir den Fonera (v.1), glücklicherweise wurden bei dem Fonera die GPIO Pins schon freigelegt, d.h. sie waren auf der Platine frei zugänglich.
Die Belegung der Pins fanden wir [http://mobileaccess.de/fonera/gpio/pinout.txt hier.] GND nahmen wir vom Seriellen Port (wie man auf dem Bildern sehen kann) es ist der 2. Pin rechts oben, wenn der Wlan Chip in eure Richtung zeigt.
Jetzt galt es das Schloss anzusteuern. Die Spannung der GPIO Pins konnten wir nicht nutzen weil die Spannung und der Strom einfach zu schwach für den Schaltmoment des Schlossen waren. Deshalb musste eine Transistor her. Die Transistorschaltung die wir haben wollten sollte quasi als Schalter dienen. Wir bauten eine einfache kleine Emitterschlatung mit einem BC137. Der Kollektor wurde durch eine Diode und einen Elko gegen Selbstinduktion des Schlosses geschützt (im Schloß befinden sich Magnete die bei Stromdurchfluß in sich einen Strom in entgegengesetzte Richtung induzieren).
Ein paar Werte:
*Ausgangsspannung des GPIO-Pins -> 3,3V
*Versorgungsspannung Transistor -> ca. 12V / ca. 2A
Weil das Schloß soviel Spannung/Strom braucht haben wir somit 2 Netzteile, 1x Router, 1x Transistor.
Ok als nächstes mussten wir den Fonera sagen er solle den Pin an dem wir das Schloß angeschlossen haben, schalten.
Auf dem Fonera ist OpenWRT installiert, das erleichterte uns einiges. Die erste Hürde war herauszufinden wie die GPIO Pins geschaltet werden, wir stießen da auf dieses kleine Tool [http://www.daemon-systems.org/man/gpioctl.8.html gpioctl] welches auch schon installiert war.
Die zweite Hürde war herauszufinden welcher Hardware Pin zu welchen Software Pin gehört. Nach einigen Versuchen gelang es uns das Schloß schalten zu lassen, und wir schrieben sofort ein kleines Skript was 3 sek. lang das Schloß öffnet und wieder schließt.
* Der Token besteht jeweils aus einer Base64 kodierten Zufallszahl mit insgesamt 164 Zeichen. Die ersten 4 davon sind als Präfix definiert der bei den folgenden Token wieder dabei ist.
* Abgelaufene Token werden noch eine Weile aufgehoben (Admins können verfifizieren das Token abgelaufen ist wenn neuer beantragt wird, unterscheidbar zu verloren und weitergegeben)
* Der Admin kann einen PGP Schlüssel einem Prefix zuordnen, mit dem den Nutzer seinen Schlüssel wiederherstellen kann, falls er ihn kaputt gespielt hat oder mehrere Geräte zum Aufschließen benutzen möchte. Die Anonymität des Prefix geht dabei jedoch verloren.
* listusers -- gibt eine Liste aller User zurück die jemals einen Token erhalten haben und die Anzahl, wieoft sie schon einen neuen Token erhalten haben (fängt bei eins an :3)
* statistic -- gibt an wieviele User, gültige und abgelaufene Token das System kennt