from_fingerprint.py

  • Wie im Thread Fingerabdrucksensor bereits besprochen, gab es den Bedarf nach einem Keyboard für einen Fingerabdruck-Sensor. Also anbei eine Anleitung:

    Unterstützt werden unter anderem folgende Sensoren:

    ZhianTec ZFM-20, ZFM-60, ZFM-70, ZFM-100

    GROW R302, R303, R305, R306, R307, R551

    FPM10A


    pyFingerprint installieren (über apt-get)

    Zuerst müsst ihr das PM Codeworks repository hinzufügen:

    Code
    1. ~$ echo "deb http://apt.pm-codeworks.de wheezy main" | sudo tee -a /etc/apt/sources.list
    2. ~$ wget -O - http://apt.pm-codeworks.de/pm-codeworks.de.gpg | sudo apt-key add -

    Nachdem man nun die lokale Repository Liste updated, kann das pyFingerprint Packet installiert werden:

    Code
    1. ~$ sudo apt-get update
    2. ~$ sudo apt-get install python-fingerprint

    Wenn ihr den Sensor über einen Serial/USB-Konverter angeschlossen habt, sollte dieser beim Raspberry Pi unter /dev/ttyUSB0 jetzt ansprechbar sein.


    Fingerabdrücke verwalten

    Wechselt ins Verzeichnis des Paketes

    Code
    1. cd /usr/share/doc/python-fingerprint/examples/

    Dort finden sich ein paar Programme, die mit dem pyFingerprint-Paket mitgeliefert werden.


    • example_enroll.py: Damit lässt sich ein neuer Fingerabdruck auf dem Sensor registrieren (hier bitte die Position notieren!)
    • example_search.py: Damit lässt sich nach einem registrierten Finger suchen und man bekommt dessen Position, falls man diese beim registrieren nicht notiert hat.
    • example_delete.py: Damit lässt sich ein Fingerabdruck wieder vom Sensor löschen


    Keyboard installieren

    Jenachdem wo ihr eure DoorPi installation habt, können die Pfade natürlich abweichen, meist solltet ihr das DoorPi Verzeichnis aber etwa hier finden:

    /usr/local/lib/python2.7/dist-packages/DoorPi2.x/


    Dort wechselt dann in das Verzeichnis doorpi/keyboard/ und legt die Datei from_fingerprint.py mit folgendem Inhalt an:

    Jetzt solltet ihr - nachdem ihr DoorPi neu gestartet habt - ein funktionierendes Keyboard für Fingerabdrucksensoren haben.


    Konfiguration

    Zum einen, müsst ihr euch entscheiden in welchem Modus ihr den Sensor betreiben wollt. Es besteht die Möglichkeit, den Sensor im dauerhaft auszulesen, was beim Testen aber zu Problemen führte oder auf ein Event hin. Als Beispiel für letzteres käme ein Bewegungssensor oder beim ZFM-70 der Capacitiv Touch Sensor (d.h. wenn das Sensorglas berührt wird) in Betracht.

    Falls ihr keinen Dauerbetrieb wollt, müsst ihr einen Output-Pin für das Keyboard definieren. Über diesen und die Aktion "out" könnt ihr den Sensor dann für eine bestimmte Zeit anschalten. Wenn kein Output-Pin definiert ist, geht der Sensor in den Dauerbetrieb.


    Beispiel für eine Konfiguration (hier nicht im Dauerbetrieb) (Kommentarzeilen bitte entfernen, sonst wird DoorPi meckern)

    Zusätzlich kann noch die Baudrate und das Passwort sowie die Adresse des Sensors definiert werden.


    Wenn man nun, wie eingangs erwähnt z.B. auf einen Bewegungsmelder reagieren will (onboardpins muss natürlich als Keyboard, zB. piface registriert sein):

    Code
    1. # Input 0 als Bewegungsmelder zuweisen und als solchen (input) definieren
    2. [onboardpins_InputPins]
    3. 0 = Bewegungsmelder
    4. # auf Bewegung für 30sec den Fingerabdrucksensor anschalten
    5. [onboardpins_InputPins.Bewegungsmelder]
    6. 10 = out:FingerprintAn,30

    Zusätzlich sind noch die Events OnFingerprintFoundKnown und OnFingerprintFoundUnknown registiert, falls egal ist um welchen Finger es sich jetzt genau handelt bzw. falls man jemanden darauf hinweisen möchte, dass ihm der Zutritt verwehrt wird.


    Eine Integration in die Weboberfläche habe ich noch nicht vorgenommen, könnt ihr aber gerne beitragen :)