RFID Türöffner mit LCD Display

Auf einen Wunsch hin möchte ich noch einmal auf das Thema RFID eingehen. In diesem Beispiel soll eine Tür geöffnet werden indem eine bestimmte RFID Karte eingescannt wird. Zusätzlich gibt es ein LCD Display, welches Informationen anzeigt.

Möchtet Ihr dem diesem Beispiel Schritt für Schritt folgen, so müssen der Raspberry, das LCD Display und der RFID Reader wie auf dem Schaltplan zu sehen angeschlossen werden.
Ebenfalls empfehle ich die Hardware zu nutzen, die ich in diesem Beispiel verwendet habe.
LCD Display:  Amazon Link – Als Display kann jedes 16×2 LCD mit einem HD44780 Controller verwendet werden. e
RFID Reader:  Seeedstudio oder Amazon
RFID Karten: Amazon

Die Hardware:

Anschlussplan

Anschlussplan

Zu erwähnen wäre hier folgendes:

Pin 15 des LCD Moduls ist die Anode der Hintergrundbeleuchtungs LED. Diese wird sicherheitshalber über einem Widerstand versorgt, damit nicht unkontrolliert Strom aus dem Pi gezogen wird. Sehr wichtig ist auch, dass Pin 5 (R/W) auf GND liegt.  Dieser Pin erlaubt es, dass Display in einen Read bzw. Write Mode zu setzen. Allerdings würde das Display mit einem 5V Pegel “reden”. Dies ist auf jedenfall zu unterbinden, da die GPIO Pins des Pi nicht 5V tolerant sind und es evtl den Pi zerstören könnte! Das wird unterbunden indem der Pin 5 dauerhaft auf GND gelegt wird!

Die komplette Pinbelegung des LCD Displays:

  1. GND
  2. VCC 5V
  3. Kontrast
  4. Register Select
  5. Read/Write
  6. Enable
  7. Bit 0
  8. Bit 1
  9. Bit 2
  10. Bit 3
  11. Bit 4
  12. Bit 5
  13. Bit 6
  14. Bit 7
  15. Hintergrundbeleuchtung Anode (+)
  16. Hintergrundbeleuchtung Kathode (-)

Der RFID Reader wird mit 3 Pins angeschlossen.
GND, 5V und RxD.
Wie das Modul angeschlossen wird, habe ich bereits in diesem Beitrag erklärt. Auch hier wieder den Spannungsteiler beachten!

Die Tür die per RFID Tag geöffnet werden soll, wird in dem Schaltplan durch eine LED dargestellt, welche an Pin 13 (GPIO 21) angeschlossen ist.

Die Software

Gesteuert wird das Ganze über Python. Wir benötigen 3 Teilprogramme / Funktionen.

Funktion 1: RFID Tag einlesen
Funktion 2: LCD ansteuern
Funktion 3: Hauptprogramm und Tür öffnen

Um die RFID Tags auszulesen, habe ich den Code aus dem oben verlinkten Beitrag als Funktion definiert.
Mit der Logik zur Ansteuerung des Displays geschieht das selbe. Beide Funktionen werden in der Datei “funktionen.py” (Download unten) definiert. Dies vereinfacht das Hauptprogramm.

Hauptprogramm rfid_door.ry

#!/usr/bin/python
from sys import exit
import RPi.GPIO as GPIO
from time import sleep, clock
from funktionen import *

userdict = {53877037723976: "Christoph", 53877041643557:"Hans",} #Hier die erlaubten Nutzer eintragen

opentime = 5 # Zeit in der die Tuer geoeffnet bleibt

while True:

    lcd ("Karte","einscannen") # Syntax: lcd("Zeile 1 max 16 Zeichen", "Zeile 2 max 16 Zeichen")
    user  = rfid() 

    if user in userdict:  
        lcd ("Guten Tag",userdict[user])
        sleep(1)
        lcd ("Tuer offen", "fuer "+str(opentime)+" Sek")
        GPIO.setwarnings(False)
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(21,GPIO.OUT)
        GPIO.output(21, True)
        sleep (opentime)
        GPIO.output(21, False)
        lcd ("Tuer wieder", "verriegelt")
        sleep(1)

    else:    
        lcd("Karte nicht","erlaubt!")
        continue

GPIO.cleanup()

Das Hauptprogramm definiert die Karten denen es erlaubt ist die Tür zu öffnen.
Mit dem Befehl

GPIO.output(21,False/True)

 

wird die Tür, durch das Relais, was an GPIO 21 hängt, geöffnet bzw. geschlossen.
Verändert werden können die “Zutrittsberechtigten” und die Zeit der geöffneten Tür.

Um das Programm fehlerfrei zu starten ist es nötig die beiden Dateien in einen Ordner zu kopieren. Zum Start des Hauptprogramms wird in den entsprechenden Ordner gewechselt und das Programm gestartet mit:

$ python rfid_door.py

 

Download
funktionen.py und rfid_door.py im .rar Archiv

In Aktion sieht das kleine Projekt dann so aus:
Die Tür denkt man sich nun einfach dazu 😉

51 Gedanken zu “RFID Türöffner mit LCD Display

  1. Hi! Exactly this kinda NFC solution I've been looking to use with my Raspberry Pi for my project:-) Would be great if you could make a step by step video guide (wiring & stuff), as I'm totally new to this kind of stuff. Thanks!

  2. Hi,

    Thanks for the reply! Didn't expect such a quick reply :-) English (a bit more thorough) guides would be nice, sure. I have ordered my RFID reader and yet to receive it. And one more request, if it's possible, could you please do the exact same project with an NFC reader like this one: http://www.ebay.co.uk/itm/Serial-13-56MHZ-RFID-Re

    Thanks for the great work! Much appreciated:-)

  3. Also erstmal Gratulation zu diesem System.
    Mich würde dieses System in einer umgewandelten Version interessieren.
    Zu meinem Problem. Bei uns in der Firma werden durchschnittlich im Monat bei 500 Kaffee getrunken (normaler 400 € Vollautomat) allerdings werden nur ca. 200 Striche auf der Liste gemacht. Ist es möglich diese Karten mit einem Guthaben zu Programmieren und dann wenn sich jemand einen Kaffee runterlässt diese dann über das System abzubuchen. Oder ein Programm das mitzählt und die Ergebnisse auf der SD Karte speichert. Praktisch wie die großen Automaten nur halt im kleineren. lg

    • Hey,
      also es gibt Karten die auch beschrieben werden können.
      Allerdings habe ich da keine Erfahrung mit.
      Ich würde alle Karten lokal in einer Datenbank hinterlegen und dort mitzählen. Schreib mir mal ne Mail, das sollte sich recht schnell mit Python lösen lassen.
      Gruß
      Christoph

  4. Pingback: Mit Python in MySQL Datenbanken arbeiten - elektronX

  5. Klasse Idee mit der Kaffeemaschine!! Bin gerade dabei mir eine Stechuhr (später mit Türöffner) mit Pi und RFID Reader zu basteln und würde auch gerne das Kaffeemaschinenprojekt nutzen ( selbe Konstellation :-) jede Menge Kaffeetrinker) wenn es dann an den Start geht. Bitte um Info!!!
    Vielen Dank im voraus,

    Andreas

  6. Hi,
    super Projekt, echt klasse!
    Ich habe mit gerade die RFID-Reader, welche du verlinkt hast, angesehen.
    So wie es aussieht ist dieser Reader"discontinued". Welchen RID-Reader würdest du als Alternative emfehlen?
    Danke schon mal im Voraus für deine Antwort!
    Franz

    • Hey,

      ja die verlinkten Reader sind öfter mal ausverkauft, kamen aber in der Vergangenheit immer wieder 😉

      Bei Amazon würde dieser hier wohl noch klappen. Ist aber teuer.

      Ansonsten schau mal bei ebay nach "RFID UART". Dort findest Du den Reader für ca 10€. (z.B. Artikelnr: 380792420801) Viel falsch machen kannst du nicht. Wichtig ist, dass der Reader über UART kommunizieren kann. Dann kannst Du die Daten mit dem Raspberry auslesen.

      Gruß

      Christoph

  7. Hallo
    ich habe so einige probleme mit der umsetzung meines RFID projektes.
    Ich will einfach nur eine Türe öffnen und die Ereignisse abspeichern.
    Doch leider bekomme ich keine verbindung denke ich zwischen Reader und Pi.
    Ich bekomme immer verschidenste fehlermeldungen.
    Gibt es irgendwo ei komplettes image zum downloaden ?
    So das man es nurnoch auf die Karte packt und dann wenigstens schomal Tag´s auslesen kann ?
    MfG Dennis

  8. Hi
    finde das Projekt sehr interessant da ich gerade dabei bin einen alten Getränkeautomaten mit deinem Zahlsystem auszustatten
    wie bei der kaffemaschine gibts auch bei uns mit der ehrlichkeit einige probleme.
    Da ich aber erst seit kurzem mit phyton und Raspberry Pi arbeite, komm ich mit einigen Codeteilen nicht ganz zuerecht
    was zum beispiel bewirkt diese Zeile :
    Startflag = "x02"
    Endflag = "x03"

    • Hey,
      find ich cool, dass meine Theorie tatsächlich mal umgesetzt wird :-)

      Die Python Zeilen definieren Start und Endflag. Das bedeutet, dass der Reader das Startflag sendet, dann die wichtigen Infos (z.B KartenNr.) und danach das Endflag. Nur wenn du beide Flags mitgelesen hast, kannst du dir sicher sein, dass Du die komplette Nachricht empfangen hast, von Anfang bis Ende.
      Diese beiden Flags werden im weiteren Verlauf des Programmes aber wieder "rausgekürzt", so dass am Ende nur die Nr übrig bleibt.

      Schau mal hier: http://www.seeedstudio.com/wiki/index.php?title=E

      Dort sind unter "Data output format" das Start und Endflag mit 0x02 und 0x03 definiert. Daher kommen die genannten Python Zeilen.

      Gruß
      Christoph

  9. Hallo ich will einen Getränkeautomat damit steuern das heist richtige karte ranhalten servo betätigen für das fach (es ist noch ein alter mechanischer Automat) und so das er dann eine txt. Datei anlegt wo die einzelne Namen aufgelistet sind mit der Stückzahl der Getränke und wenn möglich sobald man einen USB stick hinein steckt er eine Kopie der txt. schreibt könnte mir jemand damit helfen bin Neuling habe gerade das rfid Modul 10 karten bestell

    Mfg Fabian93

  10. Hallo,

    ich bin derzeit mit dem Raspberry und dem RFID-Reader am experimentieren.

    Ich habe das System auch am Laufen und mit einer Datenbank (SQLite3) versehen. Das sollte für kleinere Anwendungen locker ausreichen und sorgt dafür, dass nicht die gesamte Zeit ein SQL-Dienst im Hintergrund laufen muss.

    Das Problem an der gesamten Anwendung ist allerdings folgendes:

    Wenn ich einen Tag länger als nur einen kurzen Moment an den Reader halte wird dieser Tag mehrmals nacheinander eingelesen. So kann es passieren, dass sich ein Benutzer beispielsweise mehrere Male nacheinander registriert, obwohl die Karte schon längst nicht mehr am Reader hängt. Der Ausleseteil des Programmes stimmt grundsätzlich mit dem auf dieser Homepage verwendeten überein. Auch mit dem oben veröffentlichten und angepassten Programm zum Download tritt dieser Fehler auf.

    Hat vielleicht jemand eine Lösung für das auftretende Problem? Mir scheint es so, als würden eventuelle time.sleep() bzw sleep()-Befehle nicht recht beachtet und im Hintergrund weiterhin die Tags eingelesen werden.

  11. Hallo,

    ich hab ein kleines Problem.

    Das Ziel ist es nicht das Türschloss über einen GPIO zu steuren sondern einen befehl an ein anderes System (FHEM auf einem anderem RPI, gleiche Umgebung) zu senden.
    http://ip.FHEM…. schalter "xy" an/aus

    Wie kann ich dies umschreiben?

    Neben bei, welches OS verwendet ihr eigentlich für diese ganze ausführung?

    Vielen Dank

  12. Hey,

    for i in range(1):

    user = rfid()

    if user = Irgendein RFID-Tag

    Hier_dein_Befehl()

    In etwa so? 😉

    Ich muss zugeben, dass das die Auslesefunktion mit der for-Schleife nicht ideal ist. Ich habe eine bessere Version (auch für mein Buch) erstellt. Ich update am Wochenende einmal diesen Code. Vielleicht hilft dir das dann auch ein wenig weiter, weil es etwas übersichtlicher ist.

    Gruß

    Christoph

      • Erstmal TAUSEND DANK!!!

        Ihr helft mir gerade extrem.

        Also mein Prinzip ist dieses.

        Ich möchte den RPI + FHEM + COC-Modul (FS20) als Zentrale.

        Eine HomeMatic Lan Konfigurator kümmert sich um die Steuerung von HM. Bei HM gibt es das Funk-Türschloss.

        Dieses soll die Türe dann öffnen und dann nach einigen Minuten wieder verriegeln. Veriegelung funktioniert.

        Ich werde insgesammt 3 Zentralen betreiben müssen die sich alle Syncronisieren und die Erlaubten CODES (RFID-ID) haben. Die 3 Zentralen sind alle mit mehreren hundert kilometern getrennt, jedoch verbunden über eine VPN. Prinzipiel will ich einen Schlüssel der sie alle öffnet 😉

        FHEM finde ich für solch eine Zentrale sehr gut geeignet, weil man einfach so viel selber noch zufügen kann.

        Dann habe ich das hier gefunden und MUSSTE dies haben, genau so etwas fehlte immer.

        Einfach genial was ihr macht, macht weiter so!

  13. Hallo ,

    ich würde im Display gerne die Uhrzeit anzeigen und aktualisieren.

    Die Funktion & das Hauptprogramm habe ich erstmal zusammengeführt

    aber ich finde nicht die Stelle wo eine Aktualisierung ohne Karte funktioniert.

    Wo kann ich diese Zeilen unterbringen ?

    zeidat = time.strftime("%d.%m – %H:%M:%S")

    lcd ("Karte einscannen",zeidat)

    Danke

  14. Hallo Karl,

    koenntest Du Deine Konfiguration etwas genauer dokumentieren?

    Genau so etwas (na ja fast 😉 vorerst nur eine Tuere, kein VPN, aber FHEM, HomeMatic Tuerschloss an HMLAN-Adapter) will ich bei mir auch realisieren.

    Insbesondere interessieren wuerde mich die Anbindung an FHEM, Steuerung der Keymatic, Datenhaltung der RFID-Tags (Datenbank?).

    Ich habe zuerst mit RFID-Lesern wie dem AD2000 (http://www.amazon.de/gp/product/B009PZND1O?psc=1&redirect=true&ref_=oh_aui_detailpage_o03_s00) experimentiert.

    Dies ist aber fuer eine Zutrittssicherung nicht sicher genug, da die ganze Logik im RFID-Modul untergebracht ist und durch Ausbau umgangen werden kann.

    Der hier verwendeten Leser ist fuer den Ausseneinsatz leider nur bedingt geeignet, da ein Gehaeuse fehlt … Ich habe aber noch nichts (bezahlbares), besseres gefunden. Die Sebury-Leser sind halt schon heftig teuer.

    Vielen Dank schon mal im Vorfeld!

    Christoph H.

  15. Moin!

    Ich bin grade auf der Suche nach einer Möglichkeit einen Taster sozusagen parallel zum RFID einlesen zu betreiben.

    Also entweder wird die Tür mit RFID geöffnet oder alternativ mit nem Taster.

    Hat da jemand eine Idee, oder Lösung?

    Gruß Christian

  16. Guten Tag,

    Ich finde deine Seite und die Projekte sehr interessant.

    Ich habe schonmal ein Projekt mit diesem RFID Leser (http://www.elv.de/usb-rfid-interface-komplettbausatz.html) und der Software eventghost umgesetzt.

    Das funktioniert so lala.

    Jetzt hatte ich die Idee, den RFID Reader an einen Raspberry anzuschließen. Sinn soll es sein, eine Art Zutrittskontrolle zu realisieren. Das ganze dient der Zeiterfassung.

    Die Frage ist, lässt sich das für jemanden, der kaum bis keine Erfahrung hat realisieren? Bzw. ist die Hardware dafür geeignet?

    Danke & Grüße

    Nils

  17. Hallo,

    Wenn ich die RFID Tags mit dem Programm wie hier beschrieben auslese sehe ich dass meine Tags auch Zeichen von "A-F" enthalten. –> http://www.elektronx.de/tutorials/rfid-tags-ausle

    z.B.: 8500BD200018

    Wenn ich diesen Sting dann bei "userdict" im Hauptprogramm eintrage erhalte ich folgende Fehlermeldung.

    Eingetragene Zeile:

    userdict = {8500BD200018: "Christoph", 53877041643557:"Hans",}

    Fehlermeldung:

    root@rfidpi:/home/pi/rfid# python rfid_door.py

    File "rfid_door.py", line 9

    userdict = {8500BD200018: "Christoph", 53877041643557:"Hans",}

    ^

    SyntaxError: invalid syntax

    ich Bitte um Hilfe. Danke. LG

  18. Hallo Eletronx

    Hab deine Anleitung als sehr gut empfunden. Bin zur zeit dran mit dem nxppy nxppy.Mifare() Befehl dran. leider mit mässigem Erfolg. Da ich das ganze über NFC lösen möchte. :-) Bei Aliexpress hab ich für ein paar eure NFC-Ringe und das kombiniert mit einem Raspi-Relais-NFC-Türöffner wäre einfach perfekt.

    hast du dich auch schon mal mit dem nxppy beschäftigt?

    gruss aus der Schweiz

  19. Hallo,

    Das ist ein super Projekt!!

    Ich möchte für meine Schüler im Schülerheim ein solches System basteln mit welchem wir wissen ob ein Schüler im Haus ist oder nicht. Das benötigen wir damit wir bei einem Feueralarm immer wissen wie viele Schüler wir im Haus haben. Die Schüler bekommen einen RFID Anhänger und melden sich an wenn Sie im Haus sind. Das wäre Toll wenn man diese Daten in eine Mysql Datenbank senden könnte wo ich die abfragen kann. Könnten Sie mir dabei helfen?

    lg

    Vernes

  20. Hallo,

    sehr gutes und nützliches Tutorial. Kann man dies vielleicht noch um zwei Sachen erweitern:

    1.) Jede Karte ist nur einmal Benutzbar, d. h. nachdem Sie benutzt wurde hat Sie keine Berrechtigung mehr die Tür zu öffnen.

    2.) das man z.B. über ein kleines Windows Programm die karten Nummern per Lan oder WLAN an das Programm im Raspberry überträgt. Ich möchte den Raspberry so verbauen das man nicht mehr dran kommt und man einfach per Windows PC im Netzwerk die Karten hinzufügen oder löschen kann.

    Das würde mich echt weiterbringen

    Vielen Dank

  21. Hallo,

    ich finde diesen Aufbau echt Klasse. Mich würde interessieren ob man diese noch um ein paar Funktionen erweitern kann?

    1. Das die eingegebene Katennummer nach dem gebrauch aus dem Programm raus gelöscht wird. Um jemanden nur einmal Zutritt zu gewähren.

    2. Ob es eine Möglichkeit gibt, die Kartennummern automatisch in das Programm zu lesen. Man öffnet das Progamm RFID read und automatisch wird diese Kartennummer in das Türöffnerprogramm geschrieben, so das man keine Kartennummern mehr Manuell eingeben muss?

    Das wäre Super. Vielen Dank.

    Gruß

    Manuel Ibsch

    • Hey,
      ja das ist möglich auf mehreren Wegen. Du solltest aber eine Datenbank im Hintergrund nutzen.
      Wie das mit MySQL funktioniert, habe ich hier beschrieben: (http://www.elektronx.de/mit-python-in-mysql-datenbank-arbeiten/)
      Entweder löscht du den Eintrag mit dem Delete-Befehl (http://www.w3schools.com/sql/sql_delete.asp).
      Oder Du fügst eine zusätzliche Spalte in die Tabelle ein. z.B. "benutzt". Dieser Spalte fügst du dann z.B. True oder False ein.
      Beim Öffnen der Tür kannst du die Zeile dann abfragen, indem du im SELECT-Befehl die Suchbedingungen mit AND verknüpfst und die neue Spalte ebenfalls abfragst. Im SQL-Beitrag findest du auch eine Leseprobe aus dem "umfassenden Handbuch". Dort ist ein Türöffner-System mit SQL-Datenbank beschrieben. In dem Kapitel in der Leseprobe findest du ebenfalls ein kleines Programm, welches automatisch Karten einliest, ihr einen Namen zuweist und in der Datenbank speichert.

      Gruß
      Christoph

  22. Hallo,

    ich bekomme die Sache einfach nicht zum laufen.

    Was ich gemacht habe:

    – Raspberry Pi2 Model B

    – Remoteverbindung aud Windows PC ( durch apt-get install xrdp )

    – inittab – letzte Zeile vorne ein # eingefügt

    Pyserial 2.7 installiert

    Was funktioniert:

    – Starte RFID Tag auslesen Programm mit Python 2, ich kann die RFID Karten auslesen

    – habe die beiden Dateien Funktion und rfid_py in einen Ordner gpackt

    – wenn ich jetzt über die Konsole sudo python rfid_door.py ausführe sind beide Zeilen des Displays voll an und schwach wird ein wirres Zeug angezeigt. ( von der Deite zu erkennen (n `FR dann irgendwelche Formen ))

    Fehler nach Start:

    Traceback (most recent call last):

    File "rfid_door.py", line 18, in

    user = rfid()

    File "/home/pi/RFID/Funktionen.py", line 134, in rfid

    UART.open()

    File "user/local/lib/python2.7/dist-packages/Serial/serialposix.py", line 285, in open

    raise SerialException("Port is already open")

    Serial.serialutil.SerialException: Port is already open.

    root@raspberrry: /home…

    Gibt es vorher irgendetwas was ich an Programmen oder Voreinstellungen vergessen habe??

    Danke für die Hilfe.

      • Hallo,

        hatte vergessen die cmdline.txt zu ändern, habe ich jetzt nachgeholt und rebootet.

        Trotzdem bleibt der Fehler bestehen. Wie gesagt:

        Das einzelne Programm zu auslesen des RFID Tags funktioniert. Er liest und gibt die Nummer aus.

        Habe ich noch etwas vergessen ein Programm ( brauche ich z.B. wiringpi oder so…???)

        Bin noch sehr unsicher, ist mein erster Pi.

        Vielen Dank, und super schneller Support. Daumen hoch!

        Gruß

        Manuel

        • Hey,
          nein, also etwas weiteres musst du nicht installieren.
          Ich verstehe wohl nicht ganz das Problem 😉
          Also, dein eigentliches Problem ist die Anzeige im Display?
          Aber die Fehlermeldung passt nicht dazu. Die sieht eher nach einem UART-Problem aus.
          Ich muss dazu gestehen, dass ich das Programm lange nicht mehr angepackt habe und es wirklich verbesserungswürdig ist.
          Ich habe jetzt gerade allerdings 2 kleine Änderungen in den beiden Dateien vorgenommen. Lad bitte noch einmal beide Dateien am Ende der Seite herunter und probier es noch einmal.

          "Port already in use".. hm, du hast nicht zufällig noch das erste Python-Programm (zum reinen Auslesen) im zweiten Terminalfenster laufen?

          Ansonsten schick mir mal deinen Code, per Mail und ich versuche die Tage den Aufbau noch einmal zu wiederholen, dann probier ich selbst noch einmal aus. (Kann aber ein paar Tage dauern)

          Gruß
          Christoph

  23. Hallo,

    habe mir die zwei Dateien geladen und direkt ausprobiert. Jetzt startet das Programm. So sieht es jetzt aus:

    – Das Display zeigt immer noch alle Pixel an, so das man die Buchstaben nur leicht oder von der Seite betrachtet lesen kann.

    – Es wird abwechselnd verschieden Zeichen oder die Wörter "Karte einscannen angezeigt"

    – Wenn ich mit einer Karte über den Leser gehe wechselt er ebenfalls mal zu irgend einer anderen Buchstabenanordnung oder er zeigt auch ab und zu mal "Karte nicht erlaubt".

    – Auch habe ich mal eine Karte in das Programm eingetragen, natürlich vorher auf 10 Dezimal umgewandelt. Leider ohne Erfolg, er sagt trotzdem Karte nicht gültig.

    Als Code nehme ich beide Dateien von dir, ich habe nichts verändert, bis auf eine Karten ID.

    Das Programm wird ja aus der Konsole mit "sudo python rfid_door.py" gestartet. Rasbian hat aber zwei verschiedene Python Programme ( 2.7 und 3.xx). Wird das Programm automatisch mit dem richtigen gestartet? Wie gesagt bin neu in der Sache.

    Danke für die Mühen, Daumen hoch.

    Wäre echt dankbar wenn wir das zum, laufen bringen würden.

    Gruß

    Manuel

    • Hi,
      zuerst einmal zu Python.
      Solang du nichts manuell umstellst startest du mit "python test.py" Python 2.x und mit "python3 test.py" Python 3.
      Python 3 sollte jedoch bei meinem Code meckern, d.h. du würdest es merken.

      Das Auslesen der Tags scheint nun auch zu klappen. Bleibt noch das Displayproblem.
      Du hast das von mir verlinkte Display?
      Die Verkabelung hast du schon überprüft?
      Erstell mal ein kleines Programm, importiere "funktionen.py" (from funktionen import *) und rufe einfach nur folgende Funktion auf:
      lcd ("Test1", "Test2")

      Steht nun auf deinem Display, vernüftig lesbar "Test1/Test2"?
      Damit kannst du schonmal testen ob das Display überhaupt richtig funktioniert.

      Gruß
      Christoph

  24. Hallo,

    habe übers Wochenende nochmal etwas getestet: Habe ein Testprogramm für das Display bei einer Website geladen. Text wird Fehlerfrei dargestellt. LCD funktioniert also bis auf, das dort auch alle Pixel immer noch an bleiben und man die Schrift nur schwach oder von der Seite lesen kann. Auch bei dem Testprogramm.

    Auf dieser Webseite wurde dieser Pixelfehler auch beschrieben: Und zwar lag es da am Netzteil. Leichte Überspg. Ich habe das Berry-Netzteil jetzt gegen ein MeanWell Netzteil mit Feineinstellung ausgetauscht und die Spg. auf genau 5V eingestellt. Fehler bleibt trotzdem.

    Pixel Fehler beseitigt: Poti an Display PIN3 für Kontrast. 500 Ohm ( +5V / Pin3 / GND )

    Ja, ich habe das von dir beschriebene Display genommen.

    Manchmal steht ja auch alles richtig da: z.B. Karte einscannen oder Karte nicht berechtigt, aber beim nächsten mal einscannen stehen schon wieder wirre Zeichen. Obwohl die wirren Zeichen bei den jeweiligen Zuständen immer gleich aussehen.

    Verkabelung habe ich zweimal gecheckt und habe jetzt schon das dritte Display ausprobiert. Fehler bleibt.

    Muss auf dem Display noch etwas verändert werden? Lötjumper o.Ä.

    Zweite Fehler:

    Karte ID mit Programm ausgelesen, von 16 Hex nach 10 Dez umgewandelt und eingetragen. Trotzdem schaltet das Relais nicht. Karte wird nicht akzeptiert.

    Habe den Ausgabe Port noch auf GPIO 27 geändert, da der 21 bei dem Pi 2 ja auf PIN 40 liegt und nicht auf Pin 13. Passt mir von der Verkabelung besser.

    Ich bin Fieberhaft am Testen, da ich die Schaltung dringend benötige. Habe mir auch schon das unten aufgeführte Buch bestellt.

    Für die Hilfe nochmal Danke.

    Gruß

    Manuel

  25. Hallo,

    habe die Schaltung aus dem Buch Raspberry Pi "Das umfassende Handbuch" mit Datenbank aufgebaut, geht super. Jetzt fehlt mir nur noch die Ausgabe über das LCD. Vielleicht könntest du mir da noch einmal helfen?

    Die Programme sind alle in Python3 programmiert. Dann steht im Buch LCD statt bash Ausgabe: Leiten Sie einfach die Print-Ausgaben in eine Funktion für ein LC-Display um. Dies wurde im Kapitel 17 auch beschrieben und zwar mit Adafruit, welches aber nur mit python2 läuft. Raaaaatlos?

    Weis da jemand bescheid???

    • In der Tat, da muss ich dir Recht geben. Das kleine Detail hatten wir wohl übersehen. Echt ärgerlich :-(
      Hm.. vielleicht ist RPLCD eine Lösung für dich: https://github.com/dbrgn/RPLCD
      Funktioniert ähnlich simpel und auch und Python 3.

      Tut mir wirklich leid. Bei einem Nachdruck werden wir das ausbessern und eine Lösung finden.

      Die Doku von RPLCD ist wirklich gut, habe es selber aber noch nicht getestet.

      Wenn du mir ein paar Tage gibst werd ich schauen, dass ich ein Programm mit RPLCD zusammenbaue.

      Gruß
      Christoph

  26. Hallo,
    ich habe versucht die “Chips” die ich habe in dein Script einzusetzen. Leider bekomme ich dann eine Fehlermeldung “invalid token” wenn ich die nullen davor wegnehme, startet zwar das Script, aber das Display gibt die Meldung, das die Karte nicht erlaubt ist. Ich habe z.b. einen Chip 0001711xxx (die letzten drei Stellen habe ich durch x ersetzt. Wir kann ich nun die Chips richtig anlegen im Script?

    Gruß
    Rainer

  27. Hi,
    leider scheint das Projekt ein paar Probleme mit der neuen wheezy Version jessie zu haben. Zeilen können nicht gelesen werden und auf dem Display stehen nur undefinierbare Wörter. Ich hoffe es funktioniert mit einer Version aus 2013. Da ich noch wenig über python weiß könntest du mir sollte es nun nicht funktionieren ein wenig Hilfestellung beim beseitigen der fehlerhaften Zeilen geben?

    Mfg

    Benjamin Langer

    • Hi,
      kannst du mir vllt per Mail einmal die Fehlermeldungen und die betroffenen Zeilen schicken?
      Habe es noch nicht unter Jessie probiert. Daher würde ich gern mal sehen, was hier schief läuft.
      Danke

  28. Das gleiche hatte ich auch und bin daher zu Wheezy zurück. Ich bekam bzw. bekomme wie im Kommentar davor auch keine HEX Codes eingegeben. Daher nun was anderes geschraubt mit Hilfe des großen Raspi Buches :-D.

  29. Moin,

    ich habe nun eine ältere Version aufgespielt, die serielle Schnittstelle aktiviert und feststellen müssen das noch python serial fehlte. Danach konnte ich via sudo das Projekt starten. Das Display zeigt an Karte einscannen. Lege ich jetzt eine Karte auf den reader *Asiawill RDM6300 125Khz EM4100 RFID Reader Zutrittskontrollsystem…* tut sich am Display nichts. Das Display habe ich auf 2 Zeilen mit 16 Zeichen geprüft und für gut befunden. Als Karte benutze ich *10 x RFID Chipschlüssel EM Karte, 125KHz, white Cute*. Da ich die Codes noch nicht geändert habe müsste diese ja abgelehnt werden. Auf der Karte ist ein 10 stelliger code vermerkt mit einer für mich unerklärlichen folgenden Kommazahl nach einem Absatz 143,29658. Liegt der Fehler nun am rfid reader oder an der Karte. Der rfid ist eine neuere Version (2.0) mit neuer Pin Belegung. Pin 5 5v, Pin 4 Masse und Pin 2 RX. Die grüne leuchte am rfid ist aktiv und somit ist zumindest die Spannungsversorgung i.O.

    Schonmal vielen Dank für die Unterstützung

  30. Hi. Erst mal super Idee. Leider finde ich nur noch Jessie. Damit bekomme ich es absolut nicht zum laufen. Wäre klasse, wenn ihr das zum laufen bringt. Ich verwende zur Zeit einen RFID Leser mit Atmel als Türöffner. Leider ist der trotz eigenem Code doch sehr eingeschränkt. Deswegen wurde mich diese Lösung sehr interessieren.
    Ich hoffe mal und versuche weiter….
    Vlt kann ich jawas dazu beitragen..

  31. Moin !
    Vielen Dank für das tolle Tutorial ! Ich habe mir das oben erwähnte Buch gekauft für mehr Informationen habe aber dennoch ein Problem das ich nicht lösen kann. Kannst du mir eventuell helfen ?
    Ich habe alles soweit nachgebaut bekomme aber keine Rückmeldung von meinem RFID Leser. Das Python Script scheint nichts einzulesen.
    Über libnfc und nfc-poll bekomme ich eine Ausgabe und meine RFID Tags werden auch erkannt. Was mache ich falsch ?

    Hier die Ausgabe des nfc-poll :

    nfc-poll uses libnfc 1.7.1
    NFC reader: pn532_uart:/dev/ttyAMA0 opened
    NFC device will poll during 30000 ms (20 pollings of 300 ms for 5 modulations)
    ISO/IEC 14443A (106 kbps) target:
    ….

    Besten Dank !

    Grüße
    Thomas

Kommentar verfassen