Zuul

Aus Hackerspace Bielefeld Wiki
Zur Navigation springen Zur Suche springen

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

tauli, xanderio

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.
  • Alternativen finden. Dabei darauf achten, dass zum schalten des Türöffners eine höhere Spannung als 5V (12V oder 24V ???) benötigt wird und eine einfach Pi-USV vmtl. nicht ausreichend sein wird.

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.

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

Links

  • Software Repository Github (nicht die aktuelle Version, Software wird erst nach erreichen einer ausgereiften Version und nach vereinsinternem Audit veröffentlicht)
  • C-Bibliotheken NFC Tools