Frage:
Fingerabdrucksensor kann nicht in Raspberry Pi2 integriert werden
Sahil Arora
2016-05-06 01:54:26 UTC
view on stackexchange narkive permalink

Ich versuche, einen R305 v1.6-Fingerabdruckscanner mit meinem Raspberry Pi2-Modell B zu verbinden.

Sensor: http://www.sunrom.com/p/finger-print- sensor-r305

Ich verwende das pyfingerprint -Modul, das den ZFM-20-Fingerabdruckscanner unterstützt.

Bibliothek: https: // github.com/bastianraschke/pyfingerprint

Nach erfolgreicher Installation, wenn ich das Beispiel ausführe, heißt es

Der Fingerabdrucksensor konnte nicht initialisiert werden!

Ausnahmemeldung: Der Fingerabdrucksensor-Port "/ dev / ttyUSB0" wurde nicht gefunden!

Ich habe versucht, die tty -Ports mit dem Befehl dmesg | grep tty , und dies ist die Ausgabe, die ich erhalte, wenn der Sensor angeschlossen ist:

  [0.000000] Kernel-Befehlszeile: dma.dmachans = 0x7f35 bcm2708_fb.fbwidth = 656 bcm2708_fb.fbheight = 416 bcm2709.boardrev = 0xa21041 bcm2709.serial = 0x2377eadd smsc95xx.macaddr = B8: 27: EB: 77: EA: DD bcm2708_fb.fbswap = 1 bcm2709.uart_clock = 3000000 bcm2709.disk_led_gpio__m___ 0x3dc00000 vc_mem.mem_size = 0x3f000000 dwc_otg.lpm_enable = 0 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 liftator = Deadline fsck.repair = yes rootwait [0.001458] console [tty1] aktiviert [0.097500] 0x3f201000 (irq = 83, base_baud = 0) ist ein PL011 rev2 [2.061340] systemd [1]: System-getty.slice wird gestartet. [2.065794] systemd [1]: Slice system-getty.slice erstellt.  

Ich kann nicht erkennen, wo der Fehler liegt. Ist es so, dass die Bibliothek mit diesem Fingerabdruckmodul nicht unterstützt wird, oder liegt ein anderer Fehler vor.

PS - Ich habe auch die Anmeldeshell über seriell deaktiviert, wie ich in diesem Tutorial gesehen habe: http: //www.instructables.com/id/Read-and-write-from-serial-port-with-Raspberry-Pi/

Update 1 : Ich verbinde den Fingerabdruckscanner über die GPIO-Pins Ground, 5V, TDX und RX, da er über die serielle TTL kommuniziert. Während ich die Erdungs- und 5-V-Pins an den Scanner anschließe, blinken die Scannerlichter. Dies ist die einzige Aktivität, die auf dem Scanner angezeigt wird. Ich habe auch einen anderen Scanner ausprobiert, und auch dies führt bei der Integration zu demselben Problem.

Wie verbinden Sie den Fingerabdrucksensor mit dem Pi?
@joan Ich schließe es mit den GPIO-Pins Ground, 5V, TXD und RXD an. Wenn ich Masse und 5 V verbinde, blinkt das Licht des Fingerabdrucksensors etwa eine halbe Sekunde lang. Ich habe auch die Fragenbeschreibung aktualisiert.
Das Programm, mit dem Sie den Sensor lesen, geht davon aus, dass es sich um einen seriellen USB-Dongle unter / dev / ttyUSB0 handelt. Sie müssen dem Programm mitteilen, dass der Sensor an / dev / ttyAMA0 (den an den GPIO angeschlossenen UART) angeschlossen ist.
Beachten Sie auch, dass der GPIO des Pi nur 3V3 ist. Es ist nicht sicher, sie 5 V auszusetzen. Sie müssen überprüfen, ob der Sensor keine 5 V in den Pi RX GPIO einspeist.
@joan Vielen Dank Mann. Es funktionierte! Aber es ist nicht in der Lage, den Finger zu erkennen, eine Idee, wo man sich ändern soll?
@joan Okay, ich werde die Spannungsspezifikationen des Scanners im Handbuch überprüfen.
@joan Sahil Arorai verwendet auch den gleichen Sensor sunrom r305 und versucht, ihn mit Himbeer-Pi 2 zu verwenden. Aber ich bin neu in all dem. Könnten Sie mir mit einigen Anweisungen helfen?
@Utsav Ich werde bald eine Antwort auf die Frage schreiben. Bitte bleiben Sie in Verbindung.
@SahilArora Ich habe das gleiche Problem. Wann können Sie mit Antwort aktualisieren?
@Utsav Antwort hinzugefügt.
@GauravDave Antwort hinzugefügt.
Zwei antworten:
Sahil Arora
2016-05-18 17:35:11 UTC
view on stackexchange narkive permalink

Vielen Dank an Joan für die Lösung des Problems.

In erster Linie benötigen Sie eine Bibliothek, um Ihren Fingerabdrucksensor auszuführen. Ich habe hier eine gefunden: https://github.com/bastianraschke/ pyfingerprint

Befolgen Sie die Anweisungen zum Installieren der Bibliothek in Ihrem pi. Schließen Sie dann Ihren Fingerabdruckscanner über die GPIO-Anschlüsse an die Himbeere an. Welche Anschlüsse welchen entsprechen, finden Sie im Handbuch des Fingerabdrucksensors. In meinem Fall habe ich einen Sunrom R305-Fingerabdruckscanner verwendet.

Das Handbuch hierzu finden Sie hier: http://www.sunrom.com/p/finger-print-sensor- r305

Als Nächstes deaktivieren Sie die Anmeldeshell über die serielle Schnittstelle. Hier finden Sie alle Schritte für dasselbe: http://www.instructables.com/id/Read-and-write-from-serial-port-with-Raspberry-Pi/

Sie sind fast fertig. Der obige Link löst fast alle Probleme. Als nächstes überprüfen Sie die serielle Schnittstelle, die mit Ihrem pi verfügbar ist. Setzen Sie diesen Befehl auf das Terminal Ihres pi: dmesg | grep tty .

Sie erhalten eine Meldung wie die folgende:

  [0.000000] Kernel-Befehlszeile: dma.dmachans = 0x7f35 bcm2708_fb.fbwidth = 656 bcm2708_fb.fbheight = 416 bcm2709.boardrev = 0xa21041 bcm2709.serial = 0x2377eadd smsc95xx.macaddr = B8: 27: EB: 77: EA: DD bcm2708_fb.fbswap = 1 bcm2709.uart_clock = 300002_ vc_mem.mem_base = 0x3dc00000 vc_mem.mem_size = 0x3f000000 dwc_otg.lpm_enable = 0 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 Fahrstuhl = Deadline fsck.repair = yes rootwait [0.001451] : ttyAMA0 bei MMIO 0x3f201000 (irq = 83, base_baud = 0) ist ein PL011 rev2 [2.061340] systemd [1]: Starten von system-getty.slice. [2.065794] systemd [1]: Erstelltes Slice system-getty.slice.  

Hier wird angezeigt, dass mein Port ttyAMA0 ist. Ihre kann etwas anderes sein. Wechseln Sie zu diesem Ordner in Ihrer Bibliothek: / usr / share / doc / python-fingerprint / examples / .

Es enthält alle Dateien zum Ausführen des Fingerabdruckscanners. Öffnen Sie eine Datei, zum Beispiel example_search.py ​​. In jeder Datei befindet sich ein try -Block, etwa so:

  try: f = PyFingerprint ('/ dev / ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword () == False): Erhöhen Sie ValueError ('Das angegebene Passwort für den Fingerabdrucksensor ist falsch!')  

Dieser Code versucht im Grunde, eine Verbindung zu Ihrem Fingerabdruckscanner herzustellen. Es wird davon ausgegangen, dass der von Ihnen verwendete Port / dev / ttyUSB0 ist. In meinem Fall war der Port / dev / ttyAMA0 . Sie müssen also nur / dev / ttyUSB0 in allen Python-Codes durch / dev / tty **** ersetzen, wobei **** ist Ihr Port (in meinem Fall AMA0 ). Speichern Sie dann die Datei und führen Sie sie aus. Sie sollte funktionieren.

Genialer Mann, können Sie auch eine Verbindung hinzufügen, die Sie mit GPIO hergestellt haben? [Bild wäre schön]
@GauravDave Sie können das Sunrom-Handbuch unter dem angegebenen Link aufrufen. Es hat ein Bild mit den Ports, welcher Draht welchem ​​Port entspricht. Verbinden Sie dann das gleiche mit Himbeer-Pi-GPIO-Ports. Auf Google-Bildern finden Sie, welche Pins für welche geeignet sind. Es würde reichen. Hoffentlich hilft das.
Ich habe auch einen R305, aber er hat insgesamt 6 Pins und im Link gibt es nur 4. Also bin ich etwas verwirrt.
@GauravDave Der R305, den ich habe, sieht genauso aus wie im Handbuch. Meins ist v1.6. Überprüfen Sie das Handbuch, wenn auch Ihr Handbuch gleich aussieht (oder Version 1.6 ist). Vielleicht ist es eine neuere Version des R305. Auf jeden Fall finden Sie das Handbuch immer noch, da Unternehmen solche Komponenten nicht ohne Handbuch herstellen.
Meins ist ZFM60_BAK_V1.4
Verbinden Sie diese Kabel direkt über GPIO? Ich habe die Verbindung ausprobiert, aber sie gibt mir immer noch eine Anfrage, die nicht mit gültigen Headern beginnt. Können Sie die Verbindung teilen, die Sie hergestellt haben? Ich habe viel gesucht, aber immer noch nicht funktioniert.
user3280238
2017-02-08 01:27:29 UTC
view on stackexchange narkive permalink

Ich habe es mit einem Seriell-zu-USB-Konverter (CP2102) verwendet. Das Python-Skript erkennt den Port / dev / ttyUSBx als gültig.

Ja, es erkennt es dann als USB-Gerät. Da ich keine serielle zu USB hatte, musste ich den Port auf AMA ändern.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...