RFID Reader PN532 für DoorPi den Raspberry Pi 2 und 3
Vielen dank an @pula für die Erstellung des PN532 Keyboards!
a.) Für den Pi2 und für den Pi3 (siehe unten)
Quelle:
https://learn.adafruit.com/ada…pberry-pi/building-libnfc
Als erstes kopieren wir die library von github auf unseren Pi.
Dann erstellen wir noch 2 Verzeichnisse die benötigt werden und kopieren noch eine Datei.
cd libnfc
sudo mkdir /etc/nfc
sudo mkdir /etc/nfc/devices.d
sudo cp contrib/libnfc/pn532_uart_on_rpi.conf.sample /etc/nfc/devices.d/pn532_uart_on_rpi.conf
Wir öffnen die Datei mit dem Editor nano.
Hier hängt man den untenstehenden Eintrag einfach an das Ende der Datei an und speichert diese.
allow_intrusive_scan = true
Es müssen hier noch weitere Programme installiert werde.
sudo apt-get install autoconf
sudo apt-get install libtool
sudo apt-get install libpcsclite-dev libusb-dev
sudo autoreconf -vis
sudo ./configure --with-drivers=pn532_uart --sysconfdir=/etc --prefix=/usr
sudo make clean sudo make install all
Alles anzeigen
Ab hier wird dann zwingend die Installation von pip vorausgesetzt, falls nicht schon von der DoorPi Installation vorhanden.
Hier hängt man den untenstehenden Eintrag einfach an das Ende der Datei an und speichert diese.
enable_uart=1
Danach abspeichern und einen Neustart machen.
Zum testen ob der Reader gefunden wird einfach folgenden Befehl in die Konsole eingeben.
und/oder
Den Ordner nfc kopieren mit folgendem Befehl nach: (Wird benötigt für das DoorPi Keyboard):
Das Keyboard PN532 ist ab DoorPi Version 2.4.0.4 enthalten und muss somit nicht mehr manuell eingefügt werden!
____________________________________________________________________________________________________________________________
Diese Datei ist das DoorPi Keyboard. Diese wird benötigt damit eine Kommunikation zwischen dem Reader und DoorPi funktioniert.
Die Datei im Anhang downloaden, entpacken und in folgendes Verzeichnis verschieben oder kopieren.
/usr/local/lib/python2.7/dist-packages/doorpi/keyboard/
____________________________________________________________________________________________________________________________
Achtung dies ist wichtig da sonst die UART Schnittstelle nicht funktioniert!!
Wir öffnen zuerst die Datei mit nano:
und überprüfen ob folgendes nicht in der cmdline.txt steht:
console=serial1,115200
Sollte dies oder ähnliches da drin stehen bitte entfernen da ansonsten die Serielle Konsole Antwortet und nicht der reader!
So sollte die cmdline.txt aussehen:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Nun können wir das erste mal überprüfen ob der reader vom Pi erreichbar ist, hier geben wir folgenden Befehl ein:
Es sollte nun folgende Ausgabe auf der Konsole zu sehen sein:
pi@DoorPi:~ $ /home/pi/libnfc/utils/nfc-list
/home/pi/libnfc/utils/.libs/lt-nfc-list uses libnfc 1.7.1
NFC device: PN532 board via UART opened
Nach diesem Aufruf ist der reader bereit für das Auslesen einer ID.
Nun einen tag button oder andere RFID Key´s an den reader heben. Nun sollte die ID des tag angezeigt werden in der Konsole.
Das sollte dann so aussehen:
pi@DoorPi:~ $ python /home/pi/libnfc/trunk/examples/tagtool.py --device tty:AMA0:pn532
[nfc.clf] searching for reader on path tty:AMA0:pn532
[nfc.clf] using PN532v1.6 at /dev/ttyAMA0
** waiting for a tag **
Type2Tag ID=12345678
Nun nur noch dieses in die doorpi.ini eintragen damit DoorPi auch weiß das hier ein neues keyboard vorhanden ist und was damit gemacht werden soll wenn eine ID oder "tag" ausgelesen wird.
Eintrag in die doorpi.ini
[keyboards]
nfcreader = pn532
[nfcreader_keyboard]
device = tty:AMA0:pn532
[nfcreader_InputPins]
12345678 = call:**622
[EVENT_OnKeyPressed_nfcreader.12345678]
10 = call:**622
Die ID 12345678 ersetzen mit der ID aus dem ausgelesenem tag. Natürlich könnt ihr hier andere Befehle wie einen call eintragen zb. 10 = out:oeffner,1,0,3 oder auch ein os-execute.
b.) Für den Pi3 noch zusätzlich:
Leider gibt es hier aktuell noch Probleme mit dem RaspberryPi3 und der UART Schnittstelle. Grundsätzlich funktioniert DoorPi mit dem Reader doch bei einem Reboot oder neustart von DoorPi hängt sich der PN532 anscheinend auf und kann erst wieder zur Arbeit überredet werden wenn man das Modul kurz Spannungslos macht.Sollten sich hier bezüglich der UART Problematik noch neue Erkenntnisse ergeben werde ich diese hier/Euch mitteilen.
Aktuell sind die Probleme gelöst worden durch eine kleine Modifikation des keyboards. Danke hier wieder einmal an @pula
Im Anhang ist das leicht modifizierte keyboard von pula zu finden das ab der Version 2.4.0.4 von DoorPi nicht mehr manuell eingefügt werden muss.
Folgenden Befehl eingeben:
Wir öffnen mit nano die config.txt:
Und tragen ganz unten folgendes ein und speichern die Datei, danach, wieder ab.
dtoverlay=pi3-miniuart-bt
force_turbo=1
Hier wird die Adresse des Bluetooth Module mit der Seriellen Schnittstelle getauscht:
Ersetze ttyAMA0 mit ttyS0
bzw.
Ersetze serial1 mit ttyS0
Damit ist die Bluetooth die Adresse ttyS0 und die des UART ttyAMA0
Quelle: http://www.briandorey.com/post…3-UART-Overlay-Workaround