Zuul
Das Projekt Zuul ist als neue Version der RFID basierten Türöffnung des Hackerspace geplant. Der Name ist eine Anspielung auf den Torwächter aus dem Film Ghostbusters.
Ansprechpartner
Hardware
Als Rechnerbasis setzen wir einen RaspberryPi mit Raspbian ein. Dieser Kommuniziert mit einer PN532-basierten RFID-Platine, sowie mit einem Mikrocontroller der das Relais für den Türöffner ansteuert.
Stromversorgung
Aktuell über Steckernetzteile an einer 230V-USV. ToDo:
Effizienz der aktuellen USV bestimmen.(Ist miserabel. Das Netzteil der Türsteuerung zieht nur 5W, die USV aber 45W)Alternativen finden. Dabei darauf achten, dass zum schalten des Türöffners eine Spannung von 12V benötigt und eine einfache Pi-USV vmtl. nicht ausreichend sein wird.Wir haben eine PowerWalker DC UPS 12V besorgt. Ein Recom Spannungsregler auf 5V wurde bereits gespendet.- Neue Platine mit Spannungsregler und Leitungen für USV-Überwachung bauen.
Platinenaufbau
Aktuell ist eine Platine mit improvisiertem Layout im Einsatz. Auf dieser befinden sich bereits alle Anschlüsse und Komponenten. Trotzdem besteht der Plan, eine zweite Version der Platine anzufertigen, sobald die Anforderungen final fest stehen. (Es ist aktuell noch ungeklärt ob die Anzeige an der Tür über Anschlüsse auf der RFID-Platine angesteuert werden kann, oder ob dies von Pi oder ATTiny erfolgen muss) Aufgrund der geringen Anzahl an notwendigen Komponenten wird eine Umsetzung auf einer Prototypenplatine im Format eines RaspberryPi Shield angestrebt.
Bezeichnung | Quelle | Anzahl | Preis |
---|---|---|---|
Prototyp-Platine +Kontaktleiste+Distanzbolzen | ebay | 1 | 4,00€ |
ATTiny 13A | Bereits vorhanden | 1 | -,--€ |
Sockel für ATTiny 13A | Bereits vorhanden | 1 | -,--€ |
Relais (mit 5V schaltbar) | Elektronik Fuchs | 1 | ?,??€ |
Sockel für Realis | Bereits vorhanden | 1 | -,--€ |
Spannungsregler OKI 78SR-Serie 8W, 5V DC | Reichelt | 1 | 5,35€ |
Schraubklemmen | Bereits vorhanden | viele | -,--€ |
RFID reader
Als Reader kommt eine Platine auf Basis des PN532 zum Einsatz. Diese ist sowohl mit den MIFARE DESfire als auch den alten MIFARE Classic kompatibel. Die Kommunikation mit dem Pi geschieht per SPI.
Auf der RFID-Platine wird eine externe Antenne über U.FL Buchse angeschlossen, da sich die PCB-Antenne als nicht optimal für die Verwendung von EV1 RFIDs herausgestellt hat. Die neue Antenne besteht aus kreisförmig gewickeltem Kupferlackdraht (Luftspule) mit vier Wicklungen mit einem Durchmesser von etwa 35mm. Um eine möglichst hohe Sendeleistung ohne extra Verstärker zu erreichen, sollte darauf geachtet werden, die Länge der Zuleitung so kurz wie möglich zu halten. In der Praxis hat sich zum fixieren der Luftspule Gewebeklebeband (aka Panzerband, Duct Tape) bewährt.
Nachfolgende Pinbelegung für Anschluss per SPI:
RPi Pin 2 (5V) ↔ PN532 5V RPi Pin 6 (GND) ↔ PN532 GND RPi GPIO Pin 8 (SPI/CE0) ↔ PN532 SSEL/SCL/RX RPi GPIO Pin 10 (SPI/MOSI) ↔ PN532 MOSI RPi GPIO Pin 9 (SPI/MISO) ↔ PN532 MISO RPi GPIO Pin 11 (SPI/SCKL) ↔ PN532 SCK
Mikrocontroller
Aktuell kommt noch ein Arduino Nano zum Einsatz. In der finalen Version wird dieser vmtl. durch einen billigeren und weniger Strom verbrauchenden ATTiny 13A ersetzt.
Türöffner
Der bisher genutzte Türöffner kann weiter verwendet werden.
Software
Die Software wird in zwei Komponenten aufgeteilt:
- Zuul: ein in C geschriebener Daemon der unter Zuhilfenahme der von http://nfc-tools.org bezogenen Bibliotheken über die RFID-Platine mit der eigentlichen RFID kommuniziert und über den µC den Türöffner auslöst
- Vinz: ein in Go geschriebener Daemon der die individuellen Token-Schlüssel chached und Zuul bei bedarf zur Verfügung stellt.
Die Architektur wird so gestaltet, dass Zuul und Vinz in Folgeprojekten auch über das Netzwerk kommunizieren können.
Raspbian
in der raspi-config darauf achten, dass SPI aktiviert ist.
benötigte Raspbian Pakete
Für die nfc-tools.org Bibliotheken wiringPi
libusb-dev libpcsclite-dev libssl-dev
Für die aktuelle Version (entfällt in Zukunft vermutlich) von Zuul außerdem:
sqlite3 libsqlite3-dev
nfc-tools.org Bibliotheken
Schritte zur installation:
- libnfc und libfreefare von nfc-tools.org beziehen.
- libnfc entpacken und compilieren
./configure --prefix=/usr --sysconfdir=/etc make sudo make install
- Folgende Werte in
/etc/nfc/libnfc.conf
setzen:
device.name = "PN532 on SPI" device.connstring = "pn532_spi:/dev/spidev0.0:1000"
- libfreefare entpacken und compilieren
./configure --prefix=/usr --sysconfdir=/etc make sudo make install
Bezugsquellen für Tokens
- DESfire Tokens (Keyfob und Karten) nfc-tag.de
- Desfire Tokens (nur Karten aber billiger) Lanz