NEWS
Fingerprint an einem ESP8266
-
YEAH!
Nun funktionierts. Ich habe nun D1 und D2 also GPIO5 und GPIO4 genommen mit folgender Zeile:
SoftwareSerial mySerial(5, 4);Will ich aber HardwareSerial nehmen (wobei ich da recht leidenschaftslos bin, aber wohl auch nur, weil ich den Unterschied nicht kenne ), nehme ich doch nach der Pinbelegung RX und TX, also GPIO3 und GPIO1, oder? Dann die Zeile mit "SoftwareSerial" durch "#define mySerial Serial1" ersetzen, aber das funktioniert nicht.
Vielleicht könnt ihr dazu noch ein paar Informationen schreiben, damit ich das besser verstehe?
Bis dahin aber erstmal vielen Dank, dass es nun überhaupt funktioniert.
-
Hmm..ein bisschen zu früh gefreut. Ich komme zwar nun weiter, aber nach Eingabe der ID (enroll-Skript), um einen Fingerabdruck zu speichern, kommt "Communication error".
Aus folgendem Codeabschnitt kommt der error.Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.println("."); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); break; default: Serial.println("Unknown error"); break; } }
Lege ich den Finger direkt schon drauf und und gebe dann eine Zahl ein, liest er das erste mal den Finger ein, doch dann soll ich den Finger ja wegtun und wieder hinmachen, aber so schnell kann ja keiner sein...
Hat der Fingerprint-Sensor vielleicht wirklich einen Defekt? Ich kann es mir nicht so richtig vorstellen.
Ich hoffe, es hat noch einer eine Idee, was ich probieren kann.
-
@tööö sagte in Fingerprint an einem ESP8266:
Wegen den 5V, das habe ich zum Beispiel hier...
Nunja, er könnte jetzt trotzdem defekt sein. Bei deinem Ali-Link steht eindeutig 3.3V, bei dem Link wo du es mit 5V gelesen hast: The sensor, I received, was only 5V compatible...
Deswegen nahm der auch dort die 5V.Zum Hardware-Seriel (braucht halt keine weiteren Treiber):
Gelb --> RX
Weiß -- TX
wären mit Spannungsversorgung also genau die vier "Eckpins". Der Sketch sähe dann so aus:// On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white // uncomment this line: #define mySerial Serial1 // For UNO and others without hardware serial, we must use software serial... // pin #2 is IN from sensor (GREEN wire) // pin #3 is OUT from arduino (WHITE wire) // comment these two lines if using hardware serial //#SoftwareSerial mySerial(2, 3); ...
Leider habe ich nirgends etwas zur Datentransferrate des Sensors gefunden. Das würde deinen "Communiction Error" erklären. Spiele ev. damit nochmal rum
finger.begin(57600);
(9600, 19200, 28800, 38400, 48000, 57600, 67200 usw.)...und ich wüsste nicht warum er am ESP nicht funktionieren sollte, außer du hast den Sensor ev. doch "gegrillt".
-
Ich glaub nun wirklich, ich habe ihn gegrillt.
Zum Hardware-Seriel (braucht halt keine weiteren Treiber):
Gelb --> RX
Weiß -- TX
wären mit Spannungsversorgung also genau die vier "Eckpins".Bei dieser Konstellation bringt er wieder "did not find fingerprint"
Leider habe ich nirgends etwas zur Datentransferrate des Sensors gefunden. Das würde deinen "Communiction Error" erklären. Spiele ev. damit nochmal rum
finger.begin(57600);
(9600, 19200, 28800, 38400, 48000, 57600, 67200 usw.)Mit den verschiedenen Baudraten habe ich auch probiert. Die einzige, wo er halbwegs zuverlässig zumindest den Fingerprint findet, ist die 57600, nur da kommt dann eben der Communication Error.
Ich werde mir mal einen neuen bestellen und diesmal nicht an 5V probieren.
Danke für deine Unterstützung.
-
Das ist nun alles sehr merkwürdig. Ich habe von einem Kollegen ein Arduino Nano bekommen, damit klappt der Fingerprint-Sensor wunderbar ohne Communication Error. Wieso bei meinem ESP8266 der Error kommt, kann ich mir beim besten Willen nicht erklären.
-
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
Das scheint ja ein Empfangsfehler des ESP zu sein.
Versorge mal den Fingerprint mit Externer Spannung nicht über den ESP.
Zur Not Oskar dran, Daten vom Arduino haste ja und vergleichen.
Schweben ist nie gut.
Würde auf GPIO 1 und 3 für RX TX bleiben.
57600 scheint ja richtig zu sein. -
Sorry, bin noch recht neu in dem Gebiet.
Wie soll ich denn den Fingerprint mit Strom versorgen? Der braucht ja 3,3V, also kann ich da auch nicht so einfach ein USB-Kabel dranlöten, oder?
Und was ist Oskar? Bzw. welche Daten soll ich vergleichen?
Sorry, wäre super, wenn du mir das genauer erklären kannst, damit ich das mal ausprobieren kann.
-
Sorry, bin noch recht neu in dem Gebiet.
Ich auch.
Grundsätzlich sollte jedes Bauteil eine ausreichende Spannungsversorgung haben.
Das wäre hier zu viel um das zu erklären.
USB geht ja wenn das Netzteil genug Ampere liefert.
Das geht per Spannungsteiler oder Spannungsregler etc.
Über die NodeMCU last zu ziehen geht nicht wirklich.Der Konflikt wird aber sein das du vom Fingerprint 5 Volt ( Arduino 5 Volt ) RX TX auf ESP 3,3 Volt RX TX möchtest.
Denke mal du brauchst einen Pegelwandler. -
@Ralla66 sagte in Fingerprint an einem ESP8266:
Der Konflikt wird aber sein das du vom Fingerprint 5 Volt ( Arduino 5 Volt ) RX TX auf ESP 3,3 Volt RX TX möchtest.
Denke mal du brauchst einen Pegelwandler.Am Arduino geht der Fingerprint mit 3,3Volt, wieso geht er dann am ESP mit 3,3Volt nicht? Das sollte doch keinen Unterschied machen, oder? Dafür habe ich ja am ESP die verschiedenen Anschlüsse.
Für 5 Volt ist der Fingerprint laut Beschreibung nicht ausgelegt.
-
Welches Datasheet zum Fingerprint ?
Was liefert der Arduino oder der ESP bei 3,3 Volt den an Ampere.
Warum bleibst du nicht auf GPIO 1 und 3 für RX TX mit 57600 ?
Oskar == Oszilloskop -
Hier ist der Link zum Fingerprint, da steht unten in der Beschreibung 3,3Volt.
Auf GPIO 1 und 3 erkennt er den Fingerprint nicht. Da kommt ja dann immer „did not find fingerprint“.
@Ralla66 sagte in [Fingerprint an einem ESP8266](/post/274947
Was liefert der Arduino oder der ESP bei 3,3 Volt den an Ampere.
Das kann ich leider nicht beantworten. Ich habe leider kein Messgerät, noch kenne ich mich damit aus. Meinst, da stimmt was mit den Ampere nicht beim ESP?
-
Nö, der braucht im Peak 150mA, dass schafft der ESP. Adafruit betreibt ihn auch direkt am ESP: PDF
Allerdings schreiben sie auch, dass es beim ESP mittels SoftwareSerial nur am GPIO 4+5 läuft. Sie bevorzugen aber eher HardwareSerial (sieht man auch als Beispiel in der PDF).
Das bezieht sich aber auf den Adafruit, zu deinem habe ich so nichts schlüssiges gefunden. Wenn es mit dem Nano geht, könnte man auch notgedrungen dort einen ESP-01 dranhängen, wenn WLAN nötig ist. Oder versucht mal einen Wemos D1 mini... -
Vielleicht sollten wir einfach mal versuchen, die technischen Voraussetzungen zu checken :
- Welche Stromversorgung nimmst du für den ESP?
- Hängt der Sensor an der gleichen Stromversorgung?
- Welchen Arduino meinst du denn, wenn du sagst, an dem geht es?
Ich vermute, du hast ein Spannungsversorgungsproblem.
Für den ESP wird eine Spannungsversorgung mit stabilen 500mA angeraten.
Dein Sensor zieht im max. 150mA.Wenn du den ganzen Kram über einen USB Seriell Wandler betreibst, und den auf 3,3V gestellt hast, dann vermute ich, dir bricht bei einigen Aktionen einfach die Spannung kurz ein und das führt dann zu Kommunikationsproblemen....
Ohne genauere Hardware details ist da letztlich alles Glaskugel lesen
Grüße
Tom -
-
Der hängt am USB vom Rechner, damit ich auch den Sketch direkt übertragen kann.
-
Ja, also der Sensor hängt am ESP und somit auch über das USB-Kabel am Rechner.
-
Der Arduino Nano mit einem Atmega168 Chip ist das, wo der Sensor funktioniert.
Wenn ich daheim bin, spiele ich damit nochmal rum. Evtl. auch mal Pin 4 und 5 probieren am ESP, wie es in der verlinkten pdf steht.
Liebe Grüße
Thomas -
-
Ich habe nun rumprobiert, bis zum Erbrechen, aber es will am ESP einfach nicht laufen. Weder am GPIO4+5 (erkennen ja, aber eben der Communication Error), noch am HardwareSerial (noch nicht mal erkennen).
Wenn es mit dem Nano geht, könnte man auch notgedrungen dort einen ESP-01 dranhängen, wenn WLAN nötig ist.
Kann ich da auch meinen ESP8266Mod mit verbinden? Was muss ich dafür denn genau machen, damit der Nano dann WLAN hat. Das wäre ja auch eine Lösung.
Der ESP8266Mod klingt vielleicht nun zu groß für dieses Vorhaben, aber da ich dort später noch mehr Sensoren dranhängen will, würde ich den dafür auch nehmen, außerdem hab ich davon noch ne Menge hier rumliegen.
Liebe Grüße
Thomas -
Ja, du brauchst nur zwei freie GPIOs und läuft dann auch per SoftwareSerial
z.B. Nano mit WLAN
Allerdings ist das ein böses Gefrickel bis der Sketch läuft. Ich war damals dann heilfroh als es die größeren ESP-Module gab. -
Super, vielen Dank.
Dann spiele ich damit mal rum. Und falls ich gar nicht klarkommen sollte, muss vielleicht ein anderer Fingerprint her.
-
@tööö sagte in Fingerprint an einem ESP8266:
Hier ist der Link zum Fingerprint, da steht unten in der Beschreibung 3,3Volt.
Auf GPIO 1 und 3 erkennt er den Fingerprint nicht. Da kommt ja dann immer „did not find fingerprint“.
@Ralla66 sagte in [Fingerprint an einem ESP8266](/post/274947
Was liefert der Arduino oder der ESP bei 3,3 Volt den an Ampere.
Das kann ich leider nicht beantworten. Ich habe leider kein Messgerät, noch kenne ich mich damit aus. Meinst, da stimmt was mit den Ampere nicht beim ESP?
Das kann so aber nicht sein
Wenn der Sensor über 1/3 angeschlossen ist und darüber kommunizieren
soll, kannst Du gar keine Fehlermeldungen sehen, da RX/TX dem Sensor gehören.
Wenn Du parallel einen Serial Monitor laufen lässt, ist das in der Tat ein Communication Error.
Daher Sensor an Software Serial und über RX/TX debugen, oder umgekehrt.
Denn Sketch musst Du aber in jedem Fall dahingehend anpassen.Happy Fingerprinting
Christian -
@tööö sagte in Fingerprint an einem ESP8266:
Ich glaub nun wirklich, ich habe ihn gegrillt.
Zum Hardware-Seriel (braucht halt keine weiteren Treiber):
Gelb --> RX
Weiß -- TX
wären mit Spannungsversorgung also genau die vier "Eckpins".Bei dieser Konstellation bringt er wieder "did not find fingerprint"
Leider habe ich nirgends etwas zur Datentransferrate des Sensors gefunden. Das würde deinen "Communiction Error" erklären. Spiele ev. damit nochmal rum
finger.begin(57600);
(9600, 19200, 28800, 38400, 48000, 57600, 67200 usw.)Mit den verschiedenen Baudraten habe ich auch probiert. Die einzige, wo er halbwegs zuverlässig zumindest den Fingerprint findet, ist die 57600, nur da kommt dann eben der Communication Error.
Ich werde mir mal einen neuen bestellen und diesmal nicht an 5V probieren.
Danke für deine Unterstützung.
Das kann so aber nicht sein
Wenn der Sensor über 1/3 angeschlossen ist und darüber kommunizieren
soll, kannst Du gar keine Fehlermeldungen sehen, da RX/TX dem Sensor gehören.
Wenn Du parallel einen Serial Monitor laufen lässt, ist das in der Tat ein Communication Error.
Daher Sensor an Software Serial und über RX/TX debugen, oder umgekehrt.
Denn Sketch musst Du aber in jedem Fall dahingehend anpassen.Happy Fingerprinting
Christian -
Ich habe halt den Monitor offen, um die Ausgabe zu sehen, welche mit „Serial.print“ geschrieben werden. Wenn diese Konstellation den Error auslösen, ist das aber schlecht, oder? Aber dann verstehe ich nicht, warum das mit dem Arduino Nano dann geht.