Weil´s sein musste … Thema Fingerprint

Begonnen von Papa Romeo, 21 August 2024, 23:56:23

Vorheriges Thema - Nächstes Thema

Papa Romeo

Bei uns war es nun soweit, dass es erforderlich war die Haustüre auszutauschen. Nach 32 Jahren entsprach die Türe
in Punkto ,,Sicherheit" und vor allem auch im Punkt ,,Dichtigkeit" einfach nicht mehr den heutigen Anforderungen.

Die bisherige Tür hatte, bei uns ein so genanntes ,,Kläpple, Hebale oder auch Riegale", das ermöglichte den Schließriegel an der Türe freizugeben, so dass die Türe auch ohne Schlüssel oder ohne dass jemand den Türöffner betätigten musste, geöffnet werden konnte, wenn man z.B. nur mal kurz den Müll rausbrachte oder den Briefkasten leerte.

Die neue Tür sollte Dieses also ebenso haben, da wir nicht unbedingt einen Fingerprint oder ähnliches in der Tür haben wollten. Dies wurde uns auch so bestätigt, dass das natürlich auch bei der neuen Tür möglich ist. Was uns aber dann irgendwie entging war, dass wir uns am Ende auf eine Sicherheitstechnik in der Tür geeinigt haben, die zwar dem neusten Standard der Technik entsprach aber eine Integration unseres ,,Kläpples" unweigerlich ausschloss.

Also musste doch eine ,,Öffnungstechnik" her. Und zwar eine mit der die Tür ohne weiter Hilfsmittel geöffnet werden konnte. Für mich blieb da nur Fingerprint oder Gesichtserkennung. Da ich mit beiden schon einiges herumexperimentiert habe, fiel die Entscheidung dann auf den Fingerprint. Mit der Gesichtserkennung ist das bei Dunkelheit immer so eine Sache mit der Reaktionszeit und es kommt immer irgendwie blöd rüber, wenn man 10 Sekunden oder länger vor der Haustüre rumtanzen muss, bis die Türe aufgeht.
Da sich direkt neben der Haustüre meine Siedle-Sprechanlage befindet und sich da auch noch ein freies Modulfeld befand und die Sprechanlage auch die erforderliche Versorgungspannung zur Verfügung stellt, war auch schon der Ort für den Fingerprint festgelegt.

Im Fingerprintmodul befindet sich der Fingerprint-Sensor (R503) ein Buzzer, eine 3.5mm Stereo-Klinkenbuchse und nicht sichtbar ein REED-Kontakt. Der Buzzer meldet über Tonsequenzen und Tonhöhen, parallel zu den Farbringen des R503, bestimmte Ereignisse. So z.B. hoher Ton erfolgreiches Scanergebnis, tiefer Ton Finger nicht akzeptiert. Über die 3.5mm Klinkenbuchse erhält man über einen USB-Anschluss und ein serielles Terminalprogramm Zugriff auf das Programm und kann Finger registrieren, löschen oder auch die komplette Database löschen. Der serielle Zugriff ist aber nur möglich, wenn dieser vorher von einem der beiden registrierten Masterfinger freigeschaltet wurde. Es können Fingerprints mit der ID1 bis ID99 gespeichert werden. Frei verfügbar sind 97 IDs, da zwei für die Masterfinger benötigt werden. Über den REED-Kontakt kann mit Hilfe eines Magnetes ein RESET des Moduls erzwungen werden, sollte es sich mal aufhängen und nicht mehr reagieren. Mit diesem RESET wird nichts gelöscht.
Bei erfolgreichem Scan sendet das Modul über MQTT einen Schaltbefehl an einen weiteren MQTT-Client, der dann den Öffnungsmechanismus der Tür auslöst.

Die WLan-, Client-, MQTT-Server Daten usw. werden in der config.h festgelegt.

Schaltplan, Bilder vom Aufbau, Sketch, usw. sind im Anhang zu finden.

Da der Öffnungsmechanismus auch nicht so angesteuert wurde wie mir das erklärt wurde, musste ich hier auch umdisponieren und habe mir, da ich mir nicht unbedingt einen Shelly-Mini zulegen wollte, einen ,,Tasmomini" gebaut, der als MQTT-Client die Ansteuerung der Öffnungsmechanik der Türe übernommen hat. Er besteht aus 10 Bauteilen und ist Flächen massig gerade mal ein bisschen größer als ein 2 Euro Stück. Auch diese Bilder und der Schaltplan in Anhang.


LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Prof. Dr. Peter Henning

Schön, gibt es auch ein Bild vom fertigen Aufbau (wegen des WAF)?

LG

pah

Papa Romeo

#2
Zitat von: Prof. Dr. Peter Henning am 22 August 2024, 17:59:15Schön, gibt es auch ein Bild vom fertigen Aufbau (wegen des WAF)?

oooh ja ... WAF ... gaaanz wichtig ... was hab ich das Blindmodul geputzt, weil es nicht "neu" war ...  ::)  :-\

... klar ... wollte ich eigentlich auch einstellen ... aber irgendwie vergessen ... Alzheimer lässt grüssen  :-\  ;D  ;)

... hole es morgen nach ...

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

UweH

Cool, den R503 habe ich gleich mal bestellt, den hatte ich nicht auf dem Schirm. Ich habe es bisher mit zwei Sensoren von DFRobot (hier einer davon) versucht, aber beide versagen bei den zarten Fingern meiner Frau. Und der Kommentar: "dann kann ich auch den Schlüssel rausholen" ist dann auch nicht hilfreich...(s. WAF...)
Gibt's Erfahrungswerte bzgl. der Empfindlichkeit bzw. Reproduzierbarkeit?

Und ich kann die zip-Datei des Sketches nicht öffnen, Passwort...Habe ich das irgendwo überlesen?

Danke und Gruß
Uwe

Papa Romeo

#5
Hallo Uwe,

zu Empfindlichkeit kann ich nur folgendes sagen. Ich hab die Finger anders herum registriert, wie der Sensor jetzt verbaut ist.
(Modul steht im eingebauten Zustand sozusagen auf dem Kopf) und die Erkennung funktioniert tadellos.

Ein Tip vielleicht zur Finger-Registrierung. Ich mache es so, dass ich einen Finger mehrfach registriere, aber dabei darauf achte, dass ich den Finger "nicht" immer gleich positioniere.
So habe ich eine höhere Chance, dass der Finger erkannt wird.

LG
Papa Romeo

PS: ... du hast Post
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

Vielleicht noch ein Hinweis zum "Tasmomini". Da meine Tür zum Öffnen nur einen kurzen Stromimpuls benötigt,
habe ich in TASMOTA die Tasterfunktion aktiviert und spare mit dadurch den MQTT-Befehl zum Abschalten des Ausgangs.

Für die Aktivierung sind in der Konsole folgende Befehle erforderlich:

- savedata 1
- setoption14 1
- pulsetime 10   --> gibt an wie lange des Ausgang "ON" ist und entspricht hier einer Sekunde
- savedata 0

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

betateilchen

Falls jemand beim Kompilieren des Codes mit der Fehlermeldung

Compilation error: control reaches end of non-void function
scheitert:

Die Funktionen getFingerprintEnroll() und deleteFingerprint() sind als uint8_t definiert, liefern aber jeweils in einer der Fallunterscheidungen keinen Rückgabewert zurück, wenn die Funktion beendet wird.

Beste Lösung: Papa Romeo fixt das in seinem Code.

Zweitbeste Lösung: man fügt am Ende der beiden Funktionen die Zeile "assert(false);" ein.

Drittbeste Lösung: man passt die Compiler-Optionen an, damit Warnungen nicht mehr als Fehler gehandhabt werden und zum Abbruch führen. Aber dazu würde ich nicht wirklich raten.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Papa Romeo

Hallo betateilchen,

danke für die Info.

Nur ist das so, dass ich an den Compiler-Optionen noch nie was angepasst habe. Wüsste nicht mal was ich da ändern müsste.
Ich habe die IDE`s einfach runtergeladen, entpackt und als Portable "installiert".

Auf meinem Laptop den ich für die Sketche nutze habe ich die IDE´s von der Version 1.8.09 bis zur Version 1.8.19 drauf
und Spasses halber mal alle den Sketch kompilieren lassen.
Bei allen ist er ohne Probleme durchgelaufen.

Aber egal ich hab´s Uwe.H auch schon geschrieben, wenn ich mit den zusätzlichen Zeilen Probleme bei anderen Usern verhindern kann und der Sketch trotzdem läuft, sehe ich keine Grund warum ich die Zeilen nicht einfügen sollte.

Aber sooo viele werden keine Probleme haben ... Uwe.H ist bisher der Einzige der den Sketch haben wollte ...

LG
Papa Romeo

...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

betateilchen

Die bessere Option als assert(false) sind die beiden mit ++ markierten Zeilen.

Wobei es ja generell so ist, dass der Rückgabewert der beiden Funktionen überhaupt nirgends ausgewertet wird.

  if (p == FINGERPRINT_OK) {
    Serial.println();
    Serial.println("... Abdruck registriert und gespeichert!");
    Serial.println();
    finger.LEDcontrol(FINGERPRINT_LED_OFF, 0, FINGERPRINT_LED_PURPLE);
    finger.begin(57600);
++    return -1;


und

  if (p == FINGERPRINT_OK) {
    Serial.println();
    Serial.print("ID ");
    Serial.print(id);
    Serial.println(" geloescht !");
    Serial.println();
++    return p;

Zitat von: Papa Romeo am 25 August 2024, 18:56:17Auf meinem Laptop den ich für die Sketche nutze habe ich die IDE´s von der Version 1.8.09 bis zur Version 1.8.19 drauf

Kann sein, dass in der Version 1.8 noch andere Optionen gesetzt waren.
Bei mir läuft die IDE in Version 2, und bei Uwe, soweit ich weiß, auch.

Zitat von: Papa Romeo am 25 August 2024, 18:56:17Uwe.H ist bisher der Einzige der den Sketch haben wollte

Das habe ich schon fast vermutet 8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Papa Romeo

Zitat von: Papa Romeo am 25 August 2024, 18:56:17... sehe ich keine Grund warum ich die Zeilen nicht einfügen sollte.

... na das war wohl nix ...

Wir werden wohl auf die zweitbeste Lösung ausweichen müssen. Der, der Probleme hat fügt die Zeilen einfach ein.

Wenn ich das mache, bekomme ich bei diesen beiden Zeilen einen Kompilierungsfehler.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

betateilchen

Siehe meinen letzten Beitrag - sorge einfach dafür, dass immer ein return mit einem Wert erfolgt. Der Wert ist völlig egal.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Papa Romeo

Zitat von: betateilchen am 25 August 2024, 19:11:09Siehe meinen letzten Beitrag - sorge einfach dafür, dass immer ein return mit einem Wert erfolgt. Der Wert ist völlig egal.

... schon erledigt. Das mit den return´s hat funktioniert. Habe den Sketch schon ausgetauscht.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

rabehd

Zitat von: Papa Romeo am 25 August 2024, 18:56:17Uwe.H ist bisher der Einzige der den Sketch haben wollte
Ich finde die Idee/Lösung interessant und habe mir ein Lesezeichen gesetzt.
Der Rest ist was für den Winter....
Auch funktionierende Lösungen kann man hinterfragen.

TomLee

Hallo,

mich würde interessieren, wie Du das mit dem Access-Point gelöst hast, der aufgemacht wird wenn die WLAN-Verbindung nicht mehr aktiv ist ?
Hast du den dann deaktiviert oder kann man bei Tasmota die AP-Oberfläche (wie bei den Shellys) mit User/Passwort absichern ?


Gruß Thomas