EduCard - Spindschloss

Werbung
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Diplomarbeit
gemäß Prüfungsverordnung BMHS und Bildungsanstalten
§2 (4) und §7 (1)
Thema:
EduCard - Spindschloss
HOLUB Max
SOP Stefan
Knr: 10
Knr: 19
Verfasser:
Unterschrift:.............................
Unterschrift:.............................
Betreuer:
Prof. Ernst Joksch
Korrektur durchgeführt: ........................................................................
Datum
Schuljahr: 2015/16
Jahrgang: 5AHET
Unterschrift
Wien, am 08.04.2016
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
EIDESSTATTLICHE ERKLÄRUNG
Ich erkläre an Eides statt, dass ich die vorliegende Diplomarbeit
selbständig und ohne fremde Hilfe verfasst, andere als die angegebenen
Quellen und Hilfsmittel nicht benutzt und die den benutzten Quellen
wörtlich und inhaltlich entnommenen
Stellen als solche erkenntlich gemacht habe.
Wien, am 08.04.2016
Verfasser:
_____________________
Max HOLUB
_____________________
Stefan SOP
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 2 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
ERKLÄRUNG DER KANDIDATEN ÜBER DIE THEMENWAHL
GEMÄSS SCHUG §34
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 3 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
INHALTSVERZEICHNIS
EIDESSTATTLICHE ERKLÄRUNG ............................................................... 2
s
ERKLÄRUNG DER KANDIDATEN ÜBER DIE THEMENWAHL GEMÄSS SCHUG
§34 ........................................................................................................ 3
DANKSAGUNG ....................................................................................... 7
1.PROJEKTIDEE ....................................................................................... 8
2. ZUSAMMENFASSUNG DES PROJEKTS .................................................. 9
2.1 ABSTRACT GEMÄß PRÜFUNGSORDNUNG BHMS UND BILDUNGSANSTALTEN §8 (5)
............................................................................................................... 10
3. ABLAUFBESCHREIBUNG EINER SPINDÖFFNUNG ................................ 11
3.1 PROCESS DOCUMENTATION OF A LOCKER OPENING ...................................... 12
3.2 ABLAUFDIAGRAMM/ EXPIRATION CHART .................................................... 13
4. EINLEITUNG ...................................................................................... 14
5. EINSTIEG IN DAS PROJEKT ................................................................. 15
5.1 EDU.CARD ............................................................................................ 16
5.2 AUFBAU .............................................................................................. 17
5.3 NFC ................................................................................................... 17
5.3.1 NFC Kartenleser Sunfounder PN532 ............................................ 18
5.4 RASPBERRY PI 2 .................................................................................... 22
5.4.1 Beschreibung .............................................................................. 23
5.4.2 (GPIO-) Pins des Raspberry Pi 2 ................................................... 24
5.4.3 Blockschaltdiagramm des Raspberry Pi 2 ................................... 27
6. DATENBANK ..................................................................................... 29
6.1 SQLITE ................................................................................................ 29
6.1.1 Verschiedene Datentypen ........................................................... 30
7. ERSTE SCHRITTE DER UMSETZUNG .................................................... 31
7.1 RASPBERRY PI – PN532 VERBINDUNG ...................................................... 32
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 4 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
7.1.1 Unsere Wahl ............................................................................... 33
7.1.2 Inbetriebnahme des Kartenlesers ............................................... 35
8. UNSER PROGRAMM ......................................................................... 39
8.1 WARUM C? ......................................................................................... 39
8.1.1 Was ist C? ................................................................................... 40
8.2 WARUM DEV-C++? .............................................................................. 40
8.3 EINBINDUNG DER BIBLIOTHEKEN INS PROGRAMM........................................ 41
8.3.1 Was sind Bibliotheken? ............................................................... 41
8.4 ERSTER ANLAUF .................................................................................... 42
8.5 DATENBANK ANSPRECHEN ....................................................................... 43
8.6 SELECT-BEFEHL ................................................................................... 45
8.7 RÜCKMELDUNGEN ................................................................................. 47
8.8 VERIFIZIERUNG ..................................................................................... 48
8.8.1 Durchführung& Einlesen der UID ................................................ 49
8.9 ANSTEUERUNG DER GPIO-PINS ............................................................... 50
8.9.1 WiringPi ...................................................................................... 50
8.10 EINBINDUNG DER GPIO-PINS INS PROGRAMM ......................................... 52
8.11 KOMPLETTES PROGRAMM..................................................................... 54
9. ERSTE ANGESPROCHENE LED ............................................................ 59
10. PLATINE .......................................................................................... 60
11. MÖGLICHER AUSBAU ...................................................................... 63
12. BEGLEITPROTOKOLL GEMÄß PRÜFUNGSORDNUNG BMHS UND
BILDUNGSANSTALTEN §9 (2) ................................................................ 64
ALLE VORANGEGANGENEN ARBEITEN WURDEN VON BEIDEN
PROJEKTKANDIDATEN IM TEAM DURCHGEFÜHRT. ................................. 67
13. QUELLENVERZEICHNIS .................................................................... 68
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 5 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
ABBILDUNGSVERZEICHNIS
Abbildung 1: Ablaufdiagrammm................................................................ 13
Abbildung 2: edu.card: Ansicht von vorne (links) und hinten (rechts) ....... 16
Abbildung 3: Blockschaltdiagramm des Projekts ....................................... 17
Abbildung 4: PN532 NFC Kartenleser ........................................................ 18
Abbildung 5: Raspberry Pi 2 ...................................................................... 22
Abbildung 6: Pinbelegung am Raspberry Pi 2 ............................................ 25
Abbildung 7: Liste aller Pins inkl. Diverse Bezeichnungen ......................... 26
Abbildung 8: Blockschaltbild des Raspberry Pi 2 ....................................... 27
Abbildung 9: Grafik der UART Verbindung zwischen PN532 und Raspberry
.................................................................................................................. 33
Abbildung 10: Raspberry Pi Konfigurationsmenü ...................................... 35
Abbildung 11: Grafik des PN532 mit Hauptaugenmerk auf die beiden
Schalter Set0 und Set1 .............................................................................. 37
Abbildung 12: Ausgabe nach Einlesen einer edu.card ............................... 38
Abbildung 13: Logo Dev-C++ ..................................................................... 39
Abbildung 14: Programm des ersten Anlaufs ............................................ 42
Abbildung 15: Programmteil zum Ansprechen der Datenbank ................. 44
Abbildung 16: Bestandteile eines SELECT-Befehls ..................................... 45
Abbildung 17: Programmabschnitt mit dem SELECT-Befehl ...................... 46
Abbildung 18: Ausgabe des Programms .................................................... 47
Abbildung 19: Verifizierung der edu.card, Einlesen der UID ...................... 49
Abbildung 20: Tabelle der verwendeten Pins mit Pinnamen ..................... 50
Abbildung 21: Ansteuerung der GPIO-Pins ................................................ 51
Abbildung 22: Variablenvereinbarung von g_spindnr ............................... 52
Abbildung 23: Generieren des Binärcodes ................................................ 53
Abbildung 24: Unser Programm ................................................................ 57
Abbildung 25: Generieren eines zweiten Binärcodes ................................ 58
Abbildung 26: Schaltplan der Platine......................................................... 61
Abbildung 27: Bestückungsplan ................................................................ 61
Abbildung 28: Bohrplan ............................................................................. 62
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 6 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Danksagung
Wir, Max Holub und Stefan Sop, möchten uns zuerst einmal bei allen
Lehrkräften bedanken, die uns bei unserem Diplomprojekt unterstützt
haben, indem sie uns ihr Fachwissen zur Verfügung gestellt und uns immer
bei unseren Problemen geholfen haben.
Dann möchten wir unserem Projektleiter Herrn Prof. Joksch für seine
Unterstützung und Begleitung durch das Projekt danken.
Besonderer Dank gebührt Herrn Prof. Dombacher, der uns trotz einiger
Schwierigkeiten immer unterstützend zur Seite gestanden hat. Vielen Dank
für die Zeit und Mühen!
Außerdem danken wir Herrn Pühringer, der uns viele wertvolle Tipps für
die Umsetzung unseres Projekts geben konnte.
Weiters möchten wir unserer Klassenvorständin Frau Prof. Süßenbacher,
sowie unseren Familien und Freunden, die uns all die Jahre immer aufs
Neue motiviert und unterstützt haben unseren Dank aussprechen.
Zu guter Letzt danken wir auch unseren Klassenkameraden, die uns so gut
es ging bei einigen Problemen geholfen haben.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 7 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
1.Projektidee
Das Abschlussprojekt war schon längere Zeit ein großes Thema für uns.
Nach langem Überlegen wurden unser Interesse und unsere Begeisterung
für NFC-Technik in Verbindung mit Spinden während eines Besuchs in
unserem Fitness Center geweckt.
In einem Gespräch mit unserem Abteilungsvortand sind wir zu dem
Entschluss gekommen an der Idee, Spinde über die edu.card zu steuern,
festzuhalten.
Als alles mit dem Abteilungsvorstand abgeklärt war, haben wir uns auf die
Suche nach Lehrern begeben, die uns in unserer Idee unterstützen können
und möchten.
Nach Zustimmung unseres Projektleiters haben wir zusammen den
Umfang unseres Projektes besprochen und was in Bezug auf die zur
Verfügung stehenden Zeit im Bereich des Möglichen liegt.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 8 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
2. Zusammenfassung des Projekts
Mit unserem Projekt ist es möglich, dafür vorgesehene Spinde mittels NFCTechnik zu öffnen.
Der Aufbau ist so realisiert, dass ein kompakter Minirechner, genannt
Raspberry Pi 2, das Bindeglied zwischen einem NFC Kartenleser und den zu
öffnenden Spinden darstellt. An diesem Raspberry Pi 2 ist der NFC
Kartenleser auf Grundlage einer seriellen UART (oder auch RS232)
Schnittstelle angeschlossen.
Den größten Teil der erforderlichen Intelligenz stellt der Raspberry Pi 2
dar. Er enthält das von uns in der Programmiersprache C programmierte
Hauptprogramm des Projekts sowie sämtliche Bibliotheken und Treiber,
die wir extra installieren mussten.
Die Spinde, die wir vorerst durch LEDs ersetzt haben, werden über sechs
Leitungen an die GPIO Pins des Raspberry Pi 2 angeschlossen. Durch
jeweilig verschiedenes Beschalten dieser Leitungen wird ein binärer Code
generiert, durch den immer genau ein bestimmter Spind angesteuert und
geöffnet wird.
Außerdem haben wir eine SQLite - Datenbank erstellt, in der die einzelnen
Spindnummern mit den zugehörigen IDs der edu.cards, die zum
Öffnungsvorgang verwendet werden, verknüpft sind.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 9 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
2.1 Abstract gemäß Prüfungsordnung BHMS und
Bildungsanstalten §8 (5)
The aim of our project work is to automatically open specially constructed
lockers using only a chip card.
A compact minicomputer, named Raspberry Pi 2, represents the tie
between a NFC - card reader and the lockers that we want to open. The
NFC – card reader is attached to the Raspberry Pi 2 by a serial UART
connection between two RS232 interfaces.
The main part of the necessary intelligence is the Raspberry Pi 2. It
contains our self-designed main program (programmed in C) and several
libraries and drivers that we have installed.
The lockers that we have for the beginning replaced by simple LEDs are
connected to the GPIO pins of the Raspberry Pi 2 by 6 conductors. By
varied coupling of these conductors binary codes get generated. This
makes sure that always only one particular locker gets triggered and
opened.
Furthermore we provided a SQLite database, which contains the several
numbers of the lockers plus the different corresponding IDs of the
edu.cards that are used for the opening process.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 10 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
3. Ablaufbeschreibung einer Spindöffnung
Theorie:
Hält man eine NFC fähige Edu.card an den Kartenleser, wird die UID dieser
Karte eingelesen. Andere Karten als die Edu.card werden vom System
nicht akzeptiert.
Anschließend öffnet das Programm die Datenbank und ermittelt durch
einen SQL SELECT – Befehl die dazugehörige Spindnummer.
Jeder dieser Spindnummern ist ein bestimmter Binärcode zugeordnet,
welcher in weiterer Folge an die GPIO Pins des Raspberry Pi 2 gelegt wird.
Durch diese bestimmte Codierung ist ganz genau definiert, welcher Spind
angesteuert bzw. geöffnet wird. Jeder Spind ist mit einer Stromversorgung
und einem Magnetschloss ausgestattet.
Praxis:
Der einzige Unterschied zwischen unserem Projekt und der Umsetzung in
die Realität besteht darin, dass wir die echten Spinde mit LEDs simulieren.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 11 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
3.1 Process documentation of a locker opening
Theory:
If you hold an NFC able edu.card to the card reader, the UID of this card
will be read. Other cards than edu.cards will not be accepted by the
system.
Then the program opens the database and identifies the corresponding
locker number by a SELECT - command.
Each locker number is assigned to a specific binary code, which is
subsequently applied to the GPIO pins of the Raspberry Pi 2.
By this specific encoding it is exactly defined which locker will be triggered
respectively opened. Each locker is equipped with a power supply and a
magnetic lock.
Practice:
The only difference between our project and the possible use in reality is
that we simulated the real lockers by LEDs.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 12 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
3.2 Ablaufdiagramm/ expiration chart
Abbildung 1: Ablaufdiagrammm
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 13 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
4. Einleitung
Aufgabenstellung
Die Spinde werden mit elektronischen Schlössern modifiziert. Jedes
Schloss wird über die edu.cards der Schüler geöffnet. Der Spind schließt
sobald er zugemacht wird automatisch. Wird die edu.card an den Sensor
gehalten, öffnet sich der Spind erneut. Die Spinde einer Klasse sind
miteinander vernetzt, somit wird verhindert, dass eine edu.card mehrere
Spinde gleichzeitig öffnen kann. Die Versorgung erfolgt über das örtliche
Stromnetz und wird dann auf die für die Schlösser erforderliche
Betriebsspannung heruntergeregelt. Im Falle eines Stromausfalles bleiben
alle Spinde geschlossen.
Zielsetzung
Ein elektronisch gesteuertes Magnetschloss soll an jedem Spind
angebracht werden. Der NFC Sensor erfasst die edu.card und das
Magnetschloss öffnet. Stromausfälle werden berücksichtigt und von uns
simuliert. Die Funktion von mehreren miteinander kommunizierenden
Spinden soll theoretisch durchgeplant, durchgeführt und getestet werden.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 14 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
5. Einstieg in das Projekt
Für den Einstieg in unser Projekt haben wir uns zuerst überlegt wie der
Aufbau aussehen kann und welche Komponenten zum Einsatz kommen
sollen.
Am Anfang des Jahres haben wir uns daher hauptsächlich mit
Recherchearbeiten beschäftigt, in denen wir mit Hilfe des Internets nach
möglichen Einstiegen in unser Projekt gesucht haben.
Sehr schnell sind wir auf die BHAK 10 Pernerstorfergasse gestoßen, die ein
ähnliches System in ihrem Schulhaus verwendet. Wir durften uns
freundlicherweise unter Führung von Herrn Prof. Hopfgartner eben jenes
etwas genauer ansehen.
Dieser gab uns den Rat eine Vergleichsstudie, anstelle eines
eigenständigen Projektes, durchzuführen.
Wir haben uns jedoch dagegen entschieden.
Nach unserem Besuch bei Herrn Prof. Hopfgartner haben wir uns
erkundigt wozu unsere Schülerausweise, so genannte edu.cards, fähig
sind. Unsere erste Anlaufstelle hierbei war Herr Prof. Pühringer, der uns
einige grundliegende Informationen dazu näher gebracht hat.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 15 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
5.1 edu.card
Die an unserer und noch anderen Schulen gebräuchlichen Schülerausweise
sind so genannte edu.cards. Jede edu.card ist mit einem Chip ausgestattet,
um z.B. Geld hinaufzuladen. Die neuen EDU-Cards sind sogar mit der NFCTechnologie ausgestattet, welche wir uns zu Nutzen machen.
Unsere EDU-Card verwendet Mifare Technologie in einem
Frequenzbereich von 13,56 MHz.
Mifare ist eine neue, immer beliebtere, Technologie um Datenaustausch
vorzunehmen und hat eine Reichweite von bis zu 10cm.
Die Geschwindigkeit bei NFC-Übertragungen beträgt maximal 424 KByte/s.
Jede EDU-Card hat, wie uns später beim Einlesen aufgefallen ist, eine
immer unterschiedliche „UID“, einen immer gleichbleibenden „ATQA“
Code und noch zwei zusätzliche Codes, die für uns jedoch ohne weitere
Bedeutung sind.
Für unser Projekt werden wir uns ausschließlich mit der „UID“ und dem
„ATQA“ Code auseinandersetzen.
Abbildung 2: edu.card: Ansicht von vorne (links) und hinten (rechts)
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 16 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
5.2 Aufbau
Aufgrund der gesammelten Informationen haben wir uns in weiterer Folge
dafür entschieden einen Raspberry Pi 2 als Hauptkomponente und einen
NFC Kartenleser für das Einlesen der edu.cards zu verwenden.
Unser erster Entwurf war folgendes Blockschaltdiagramm:
Abbildung 3: Blockschaltdiagramm des Projekts
Im nächsten Schritt haben wir nach einem passenden NFC Kartenleser
gesucht.
5.3 NFC
Die Nahfeldkommunikation (Near Field Communication, NFC) ist ein auf
der RFID-Technik basierender internationaler Übertragungsstandard zum
kontaktlosen Austausch von Daten per Funktechnik über kurze Strecken
von wenigen Zentimetern und einer Datenübertragungsrate von maximal
424 kBit/s. Bisher kommt diese Technik vor allem in Lösungen
für Micropayment zum Einsatz[1].
1
„Near Field Communication“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 17 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
5.3.1 NFC Kartenleser Sunfounder PN532
Unsere Wahl fiel letztendlich auf einen Sunfounder PN532, da dieser alle
notwendigen Eigenschaften mit sich brachte.
Der Sunfounder PN532 wurde extra für die Zusammenarbeit mit dem
Raspberry Pi entworfen.
Es gibt eine sehr detaillierte und gute Beschreibung zur Verbindung und
Inbetriebnahme des Kartenlesers mit einem Raspberry Pi.
Abbildung 4: PN532 NFC Kartenleser [2]
2
„sunfounder“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 18 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Datenblatt/Datasheet Sunfounder PN532 [3]
The PN532 is a highly integrated transceiver module for contactless communication at 13.56 MHz based on the
80C51 microcontroller core. It supports 6 different operating modes:
•
•
•
•
ISO/IEC 14443A/MIFARE Reader/Writer
FeliCa Reader/Writer
ISO/IEC 14443B Reader/Writer
ISO/IEC 14443A/MIFARE Card MIFARE Classic 1K or MIFARE Classic 4K card
emulation mode
• FeliCa Card emulation
• ISO/IEC 18092, ECMA 340 Peer-to-Peer
The PN532 implements a demodulator and decoder for signals from
ISO/IEC 14443A/MIFARE compatible cards and transponders. The PN532 handles the complete ISO/IEC 14443A
framing and error detection (Parity & CRC).
The PN532 supports MIFARE Classic 1K or MIFARE Classic 4K card emulation mode. The PN532 supports contactless
communication using MIFARE Higher transfer speeds up to 424 kbit/s in both directions.
The PN532 supports the following host interfaces:
• SPI
2
• I C
• High Speed UART (HSU)
An embedded low-dropout voltage regulator allows the device to be connected directly to a battery. In addition, a
power switch is included to supply power to a secure IC.
3
alldatasheet.com, „PN532 datasheet(2/27 Pages) NXP | Near Field Communication (NFC) controller“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 19 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Features and benefits
 80C51 microcontroller core with 40 KB ROM and 1 KB RAM
 Highly integrated demodulator and decoder
 Buffered output drivers to connect an antenna with minimum number of
external components
 Integrated RF level detector
 Integrated data mode detector
 Supports ISO/IEC 14443A/MIFARE
 Supports ISO/IEC 14443B (Reader/Writer mode only)
 Typical operating distance in Reader/Writer mode for communication to
ISO/IEC 14443A/MIFARE, ISO/IEC 14443B or FeliCa cards up to 50 mm depending on
antenna size and tuning
 Typical operating distance in NFCIP-1 mode up to 50 mm depending on antenna size,
tuning and power supply
 Typical operating distance in ISO/IEC 14443A/MIFARE or FeliCa card emulation mode
of approximately 100 mm depending on antenna size, tuning and external field
strength
 Supports MIFARE Classic 1K or MIFARE Classic 4K encryption in Reader/Writer mode
and MIFARE higher transfer speed communication at 212 kbit/s and 424 kbit/s
 Supports contactless communication according to the FeliCa protocol at 212 kbit/s and
424 kbit/s
 Integrated RF interface for NFCIP-1 up to 424 kbit/s
 Possibility to communicate on the RF interface above 424 kbit/s using external analog
components
 Supported host interfaces
 SPI interface
 I2C interface
 High-speed UART
 Dedicated host interrupts
 Low power modes
 Hard-Power-Down mode (1 A typical)
 Soft-Power-Down mode (22 A typical)
 Automatic wake-up on I2C, HSU and SPI interfaces when device is in Power-down
mode
 Programmable timers
 Crystal oscillator
 2.7 to 5.5 V power supply operating range
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 20 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
1.
NXP Semiconductors

Power switch for external secure companion chip

Integrated antenna detector for production tests


PN532/C1
Near Field Communication (NFC) controller
Dedicated IO ports for external device control
ECMA 373 NFC-WI interface to connect an external secure IC
2. Applications
Mobile and portable devices
 Consumer applications
3. Quick reference data
Table 1.
Quick reference data
Symbol Parameter
VBAT
Battery supply voltage
LDO output voltage
ICVDD
Conditions
VBAT > 3.4 V
VSS = 0 V
VSS = 0 V
Min
2.7
[1] 2.7
PVDD
Supply voltage
for host interface
SVDD
Output voltage
for secure IC interface
Hard-Power-Down
current consumption
VSS = 0 V
(SVDD Switch Enabled)
VBAT = 5 V
DVDD -0.5 -
DVDD V
-
-
2
A
ISPD
Soft-Power-Down
current consumption
VBAT = 5 V,
RF level detector on
-
-
45
A
IDVDD
Digital supply current
25
-
mA
ISVDD
SVDD load current
-
-
30
mA
IAVDD
Analog supply current
Transmitter supply
current
VBAT = 5 V,
SVDD switch off
VBAT = 5 V,
SVDD switch on
VBAT = 5 V
-
6
-
mA
[3]
150 [4] mA
-
0.5
W
-
+85
C
IHPD
ITVDD
Ptot
Continuous total
power dissipation
Tamb
Operating
temperature range
Datum
08.04.2016
Diplomarbeit:
1.6
Typ Max Unit
5.5 V
3
3.4 V
[1] -
During RF transmission,
VBAT = 5 V
[2] Tamb = -30 to +85 C
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
-30
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
-
60
3.6
Projektleiter
Prof. Joksch
Signum:
V
[1] DVDD, AVDD and
TVDD must always be at
the same supply voltage.
[2] The total current
consumption depends on
the firmware version
(different internal IC clock
speed)
[3] With an antenna
tuned at 50 at 13.56 MHz
[4] The antenna should
be tuned not to exceed
this current limit (the
detuning effect when
coupling with another
device must be taken into
account)
Seite 21 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
5.4 Raspberry Pi 2
Der Entschluss einen Raspberry als zentrale Recheneinheit zu verwenden
entstand nach einem Gespräch mit Herrn Prof. Pühringer.
Wir haben den Raspberry Pi 2 für unser Projekt ausgewählt, da dieser zum
damaligen Zeitpunkt das neueste Modell auf dem Markt und mit der
neuesten Technik ausgestattet war.
Abbildung 5: Raspberry Pi 2 [4]
4
„Raspberry Pi 2.pdf“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 22 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
5.4.1 Beschreibung
Der Raspberry Pi ist ein Einplatinencomputer, der von der britischen
Raspberry Pi Foundation entwickelt wurde.
Der Rechner enthält ein Ein-Chip-System von Broadcom mit einem ARMMikroprozessor, die Grundfläche der Platine entspricht etwa den
Abmessungen einer Kreditkarte. Der Raspberry Pi 2 wird mit einem auf
Linux basierendem Betriebssystem betreiben [5].
Xenon Empfindlichkeit
Der Raspberry Pi 2 Model B stürzt ab, wenn er mit einem XenonBlitz fotografiert wird. Die Raspberry Pi Foundation bestätigte dieses
Verhalten. Verursacht wird es durch ein Bauteil das für die interne
Spannungsversorgung zuständig ist. Dieses erzeugt aus den 5 V des MicroUSB-Anschlusses die intern benötigten Spannungen. Dazu wurde ein Chip
ohne Gehäuse gewählt und direkt auf die Platine gelötet. Wird der Chip
angeblitzt, bringt der im freiliegenden Silizium auftretende
photoelektrische Effekt die Spannungsregelung aus dem Takt. Die Folge ist
eine Spannungsschwankung, die zum Absturz des Raspberry Pi führt.
Problematisch ist dabei die durch einen Xenon-Blitz oder auch
einen Laserpointer hervorgerufene rapide Helligkeitsänderung und die
enorme Lichtmenge. Andere helle Lichtquellen bereiten keine Probleme[5].
Dieses Problem kann nichtig gemacht werden, indem man den Raspberry
Pi 2 mit einem Gehäuse versieht, das den Einfluss von Licht verhindert.
5
„Raspberry Pi“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 23 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
5.4.2 (GPIO-) Pins des Raspberry Pi 2
Um Spinde ansteuern zu können muss der Raspberry Pi Daten an den
jeweiligen Spind übermitteln. Für die Übertragung haben wir die GPIO-Pins
angesteuert.
Arten und Nutzen der Pins
Die verbauten Pins haben verschiedene Funktionen. Neben den allgemein
verwendbaren Kontakten (GPIO-Pins genannt) gibt es auch solche für die
Versorgungsspannung (3,3V bzw. 5V) wie auch Masse Pins (auch Ground
genannt; 0V).
Mit den, auf dem B+ und neueren Modell vorhandenen, 14 Zusatz-Pins
wurden weitere bislang nicht verfügbare Funktionen des System-on-a-Chip
(B+: BCM2835; 2 Model B: BCM2836) zugänglich.
Damit sind wir dabei, dass es Pins gibt, die vorkonfigurierte Funktionen
erfüllen. Alle Pins sind jedoch frei programmierbar, auch solche, die
eigentlich spezielle Eigenschaften haben[6].
6
„Raspberry Pi: GPIO-Schnittstelle erklärt » Jan Karres“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 24 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Anordnung der Pins:
Abbildung 6: Pinbelegung am Raspberry Pi 2 [7]
7
„Introducing the Raspberry Pi B+ » DesignSpark“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 25 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Tabelle aller Pins (mit verschiedenen Bezeichnungen)
WiringPi
Pin-Namen
–
+ 3,3 V
8
(SDA1) GPIO 2
9
(SCL1) GPIO 3
7
(GPIO_GCLK) GPIO 4
–
GND
0
(GPIO_GEN0) GPIO 17
2
(GPIO_GEN2) GPIO 27
3
(GPIO_GEN3) GPIO 22
–
+ 3,3 V
12
(SPI_MOSI) GPIO 10
13
(SPI_MISO) GPIO 9
14
(SPI_SLCK) GPIO 11
–
GND
30
(nur für I2C) ID_SD
21
GPIO 5
22
GPIO 6
23
GPIO 13
24
GPIO 19
25
GPIO 26
GND
Pin Pin
Pin-Namen
1 2 +5V
3 4 +5V
5 6 GND
7 8 GPIO 14 (TXD0)
9 10 GPIO 15 (RXD0)
11 12 GPIO 18 (GPIO_GEN1)
13 14 GND
15 16 GPIO 23 (GPIO_GEN4)
17 18 GPIO 24 (GPIO_GEN5)
19 20 GND
21 22 GPIO 25 (GPIO_GEN6)
23 24 GPIO 8 (SPI_CE0_N)
25 26 GPIO 7 (SPI_CE1_N)
27 28 ID_SC (nur für I2C)
29 30 GND
31 32 GPIO 12
33 34 GND
35 36 GPIO 16
37 38 GPIO 20
39 40 GPIO 21
Abbildung 7: Liste aller Pins inkl. Diverse Bezeichnungen [8]
8
WiringPi
–
–
–
15
16
1
–
4
5
–
6
10
11
31
26
27
28
29
„Raspberry Pi: GPIO-Schnittstelle erklärt » Jan Karres“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 26 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
5.4.3 Blockschaltdiagramm des Raspberry Pi 2
Abbildung 8: Blockschaltbild des Raspberry Pi 2 [9]
9
„Einplatinen-Computer: Raspberry Pi für Profi-Anwendungen - Seite 2 - crn.de“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 27 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Datenblatt/Datasheet Raspberry PI 2 Model B[10]
Product Name
Raspberry Pi 2, Model B
Product Description
The Raspberry Pi 2 delivers 6 times the processing capacity of previous
models. This second generation Raspberry Pi has an upgraded Broadcom
BCM2836 processor, which is a powerful ARM Cortex-A7 based quad-core
processor that runs at 900MHz. The board also features an increase in
memory capacity to 1Gbyte.
RS Part Number
832-6274
Specifications
Chip
Broadcom BCM2836 SoC
Memory
Operating System
Dimensions
Power
DMA infrastructure
1GB LPDDR2
Boots from Micro SD card, running a version of the Linux operating system
85 x 56 x 17mm
Micro USB socket 5V, 2A
Core architecture
CPU
GPU
Connectors:
Ethernet
Video Output
Audio Output
USB
GPIO Connector
Camera Connector
JTAG
Display Connector
Memory Card Slot
10
Quad-core ARM Cortex-A7
900 MHz
Dual Core VideoCore IV® Multimedia Co-Processor
Provides Open GL ES 2.0, hardware-accelerated OpenVG, and 1080p30
H.264 high-profile decode
Capable of 1Gpixel/s, 1.5Gtexel/s or 24GFLOPs with texture filtering and
10/100 BaseT Ethernet socket
HDMI (rev 1.3 & 1.4)
Composite RCA (PAL and NTSC)
3.5mm jack, HDMI
4 x USB 2.0 Connector
40-pin 2.54 mm (100 mil) expansion header: 2x20 strip
Providing 27 GPIO pins as well as +3.3 V, +5 V and GND supply lines
15-pin MIPI Camera Serial Interface (CSI-2)
Not populated
Display Serial Interface (DSI) 15 way flat flex cable connector
with two data lanes and a clock lane
Micro SDIO
„Raspberry Pi 2, Model B.pdf“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 28 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
6. Datenbank
Nachdem wir uns für den Sunfounder PN532 und den Raspberry PI2
entschieden haben, dachten wir über die Zuordnung der EDU-Card an die
Spinde nach. Wir kamen zu dem Entschluss eine Datenbank für diese
Organisation zu verwenden.
Eine Datenbank, auch Datenbanksystem (DBS) genannt, ist ein System zur
elektronischen Datenverwaltung.
Ein DBS besteht aus zwei Teilen: der Verwaltungssoftware und der Menge
der zu verwaltenden Daten. Zur Abfrage und Verwaltung der Daten bietet
ein Datenbanksystem eine Datenbanksprache an [11].
6.1 SQLite
Unsere Datenbank haben wir in SQLite realisiert. Dafür haben wir ein AddOn des Web-Browsers Mozilla Firefox verwendet.
SQLite ist eine Programmbibliothek, die ein relationales Datenbanksystem
enthält. SQLite unterstützt einen Großteil der im SQL-92-Standard
festgelegten SQL-Sprachbefehle. Unter anderem implementiert SQLite
Transaktionen, Unterabfragen (subselects), Sichten (views), Trigger und
benutzerdefinierte Funktionen. Das System ist vor allem für den Einsatz in
eingebetteten Datenbanksystemen entworfen, daher fehlen Funktionen
wie die Möglichkeit, Objektberechtigungen zu verwalten [12].
11
12
„Datenbank“.
„SQLite“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 29 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
6.1.1 Verschiedene Datentypen
Es gibt in der Informatik eine Reihe von Datentypen zwischen denen man
je nach Gebrauch wählen kann, wie z.B.: „Character“, „Integer“, „Float“,
„Varchar“ und viele mehr.
Wir haben uns in unserer Datenbank für die Datentypen „Character“ und
„Integer“ entschieden. Zu diesem Entschluss kamen wir jedoch erst, als wir
die erste edu.card eingelesen und gesehen haben, wie die Codes
aufgebaut sind.
Die IDs, die durch Hexadezimalcodes repräsentiert werden, haben wir als
Datentyp „Character“ (char, Zeichen) und die Spindnummern als „Integer“
(int, ganze Zahl) vereinbart.
a) Integer
Mit „Integer“ wird in der Informatik ein Datentyp bezeichnet, der
ganzzahlige Werte speichert. Der Wertebereich ist endlich.
Berechnungen mit Integern sind in der Regel exakt, lediglich ein
Überlauf kann durch Überschreiten des zulässigen Wertebereichs
auftreten. Als grundlegender arithmetischer Datentyp sind Integer in
der Hardware fast aller Rechenanlagen vorhanden und in nahezu
jeder Programmiersprache verfügbar [13].
13
„Integer (Datentyp)“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 30 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
b) Char
Char oder Character ist ein Datentyp für Datenbereiche/Felder,
deren Elemente jeweils ein Zeichen repräsentieren.
Char als Datentyp legt fest, dass die einzelnen Zeichen eines
Speicherbereichs aus je (i. d. R.) 8 Bits bestehen, die je ein
darstellbares Zeichen (Buchstabe, Ziffer, Sonderzeichen ...)
repräsentieren. Welches Zeichen dies ist, ergibt sich aus dem Inhalt
der Speicherstelle [14].
7. Erste Schritte der Umsetzung
Nachdem wir alle Einzelheiten geklärt haben, die Datenbank
funktionsfähig war, erste Testprogramme liefen und unsere Teile
angekommen waren, konnten wir mit dem Aufbau beginnen.
Nachdem wir den Raspberry Pi 2 erfolgreich mit dem mitgekauften
Touch-Display verbunden und es infolge darauf geschafft hatten einen
externen Bildschirm über HDMI anzuschließen, konnten wir uns um das
Anschließen des Kartenlesers kümmern.
14
„Char (Datentyp)“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 31 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
7.1 Raspberry Pi – PN532 Verbindung
Wie schon aus dem Datenblatt des Kartenlesers (PN532) herauszulesen ist,
hat man zum Anschließen drei verschiedene Varianten zur Auswahl:
1. UART (auch als serielle Schnittstelle RS-232 bekannt):
 Recht langsame Verbindung (115,2 kbps)
 Für die Verbindung mit dem Raspberry Pi werden vier
Leitungen benötigt
2. I²C:
 Etwas schnellere Verbindung (400 kbps)
 Für die Verbindung mit dem Raspberry Pi werden vier
Leitungen benötigt
3. SPI:
 Sehr schnelle Verbindung (>4 mbps)
 Für die Verbindung mit dem Raspberry Pi werden sechs
Leitungen benötigt
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 32 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
7.1.1 Unsere Wahl
Wir haben uns im Internet über Vor- und Nachteile der einzelnen
Verbindungen informiert und sind zum Entschluss gekommen, die UART
Verbindung zu verwenden.
Die SPI Verbindung wäre zwar die schnellste gewesen, hätte jedoch zwei
Leitungen mehr gefordert.
Da in unserem Projekt die Geschwindigkeit aber keine allzu große
Bedeutung hat, haben wir die UART Verbindung gewählt. Des Weiteren
zeigten Erfahrungsberichte[15], dass die I²C Verbindung nicht stabil mit
dem Raspberry Pi zusammenarbeitet.
Abbildung 9: Grafik der UART Verbindung zwischen PN532 und Raspberry [16]
15
16
„NFC auf Raspberry Pi: PN532 Breakout Board“.
„sunfounder“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 33 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
UART über RS-232
UART ist die Abkürzung für Universal Asynchronous Receiver Transmitter.
Die Besonderheit besteht darin, dass bei der asynchronen Betriebsweise
kein eigenes Taktsignal auf einer Übertragungsleitung verwendet wird.
Stattdessen synchronisiert sich der Empfänger über die Länge des
Rahmens, vermittelt durch die Schaltflanke von Start- und Stopp-Bit, sowie
die eingestellte Baudrate (welche in diesem Fall der Bitrate entspricht).
Da der Beginn einer Übertragung mit dem Start-Bit zu beliebigen
Zeitpunkten erfolgen kann, wird diese serielle Schnittstelle
als asynchron bezeichnet. Um eine Synchronisation gewährleisten zu
können, ist die Anzahl der übertragbaren Bits eingeschränkt. Bei einem
längeren Datenstrom könnte die Synchronisation verloren gehen, was zu
Fehlinterpretationen des Datenstromes und somit zu einer fehlerhaften
Übertragung führen kann.
Die asynchrone Übertragung findet in der Datenkommunikation bei der
RS-232-Schnittstelle Verwendung. Diese Schnittstelle weist eine
vergleichsweise große Verbreitung auf. Ein UART erzeugt die auf der RS232-Schnittstelle zu übertragenden Datenbits und den dazu notwendigen
Datenrahmen. Die eigentliche RS-232-Schnittstelle besteht zusätzlich noch
aus Pegelumsetzern und weiteren Bauelementen wie Steckern, welche
nicht mehr Teil eines UART sind [17].
17
„Universal Asynchronous Receiver Transmitter“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 34 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
7.1.2 Inbetriebnahme des Kartenlesers
Wie bereits erwähnt haben wir die RS232 Schnittstelle des Kartenlesers
verwendet, um eine Verbindung zum Raspberry Pi aufzubauen.
Um den Kartenleser verwenden zu können mussten wir vorerst einige
kurze Installationen und Konfigurationen am Rapsberry Pi vornehmen.
Die folgende Beschreibung zur Inbetriebnahme ist nur für die UART
Verbindung geeignet.
Während der Konfiguration des Raspberry Pi haben wir uns an die
Anleitung des Herstellers des Sunfounders PN532 (Kartenleser) gehalten.
Als erstes mussten wir den „Serial Port“ am Raspberry deaktivieren.
Dies haben wir über das Konfigurationsmenü erledigt.
Um in das Konfigurationsmenü zu gelangen war folgende Eingabe im
„Terminal“ notwendig: „sudo raspi-config“. Im Menü ist „Advanced Options“
auszuwählen, als nächstes der Punkt „Serial“ und dort dann „Disable“.
Abbildung 10: Raspberry Pi Konfigurationsmenü
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 35 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Um die Änderung zu übernehmen musste der Raspberry neugestartet
werden. Dies geschah über die Eingabe „sudo reboot“.
Im nächsten Schritt haben wir die benötigte Software heruntergeladen
und installiert. Die Installation von „autoconf“, „libtool“, „libpcsclite-dev“
und „libusb-dev“ erfolgt durch folgende Eingabe:
„sudo apt-get install autoconf libtool libpcsclite-dev libusb-dev autoreconf –vis”
Der letzte Schritt, der zur Installation notwendig bleibt, ist die Bibliothek
„libnfc”.
Diese erlangt man durch nachstehende Eingaben:
„cd ~
git clone https://github.com/nfc-tools/libnfc.git”
Die Installation und Konfiguration erfolgt folgendermaßen:
“ 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
sudo echo “allow_intrusive_scan = true” > /etc/nfc/devices.d/pn532_uart_on_rpi.conf ”
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 36 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Wenn alle Schritte abgeschlossen sind, kann nun die Konfiguration
durchgeführt werden:
“ ./configure --with-drivers=pn532_uart --sysconfdir=/etc --prefix=/usr ”
Die letzte Eingabe zur Fertigstellung sorgt für die Übernahme des
gesamten Vorgangs:
“ sudo make clean
sudo make install all
”
Nun können der Kartenleser und der Raspberry Pi über die RS-232
Schnittstelle, wie in der auf Seite 32 dargestellten Grafik, verbunden
werden.
Vor der Inbetriebnahme des Kartenlesers ist zu beachten, dass die beiden
Schalter Set0 und Set1 auf die Stellungen „L“ und „UART“ geschalten sind.
Abbildung 11: Grafik des PN532 mit Hauptaugenmerk auf die beiden Schalter Set0 und Set1
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 37 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Mit dem Befehl „sudo nfc-poll“ wird das Programm gestartet.
Wird nun eine NFC-fähige Karte an den Leser geführt, erscheinen im
„Terminal“ alle Daten, die die Karte preisgibt, z.B.: die UID.
Beispiel:
Abbildung 12: Ausgabe nach Einlesen einer edu.card
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 38 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8. Unser Programm
Für unser Programm, welches zur Ermittlung und zum Vergleich der ID mit
der Datenbank und zum Ansprechen des richtigen Spindes dient, haben
wir uns für die Programmsprache C entschieden. Geschrieben haben wir
das Ganze mit der Software „Dev-C++“ von „BloodshedSoftware [18]“.
Abbildung 13: Logo Dev-C++
8.1 Warum C?
Für die Programmiersprache C haben wir uns zum einen aufgrund von
Vorkenntnissen durch die Schule und zum anderen aufgrund unserer
Meinung, dass unser Projekt am besten mit C durchzuführen sei,
entschieden. Des Weiteren liegen in C alle Bibliotheken, alle Examples und
Programme vor, die wir in unserem Projekt verwendet haben. C ist
außerdem die Sprache für UNIX und da unser Raspberry Pi 2 auf UNIX
basiert, hatten wir auch viel weniger Probleme beim Kompilieren.
18
„Bloodshed Software - Dev-C++“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 39 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.1.1 Was ist C?
C ist eine imperative Programmiersprache, die der Informatiker Dennis
Ritchie in den frühen 1970er Jahren an den Bell Laboratories für
die Systemprogrammierung des Betriebssystems Unix entwickelte.
Seitdem ist sie auf vielen Computersystemen verbreitet.
Die Anwendungsbereiche von C sind sehr vielfältig. Sie wird zur Systemund Anwendungsprogrammierung eingesetzt. Die
grundlegenden Programme aller Unix-Systeme und
die Systemkernel vieler Betriebssysteme sind in C programmiert.
Zahlreiche Sprachen, wie C++, Objective-C, C#, D, Java, JavaScript, PHP,
Vala oder Perl orientieren sich an der Syntax und anderen Eigenschaften
von C [19].
8.2 Warum Dev-C++?
Dev-C++ haben wir gewählt, da wir in der Schule bereits öfters damit
gearbeitet haben. Ein weiterer Grund war die Tatsache dass es sich um
eine Freeware Software handelt.
19
„C (Programmiersprache)“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 40 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.3 Einbindung der Bibliotheken ins Programm
Der Erste Schritt in unserem Programm war das Einfügen sämtlicher
Bibliotheken die wir benötigten.
8.3.1 Was sind Bibliotheken?
In Bibliotheken stehen Funktionen für verschiedenste Bereiche.
Diese Funktionen sind schon vorprogrammiert und als Bibliothek
abgespeichert. Dadurch wird es dem Benutzer einfacher gemacht,
verschiedenste Funktionen zu verwenden, wie zum Beispiel
mathematische Aufgaben oder simple Ein-& Ausgaben.
Include
Die ersten Zeilen gehören zum sogenannten Rumpfprogramm und sind
wie bei jedem anderen in C geschriebenen Programm mit mehreren
„#include<……….>“-Befehlen gefüllt.
Diese Befehle bestimmen im Vorhinein welche Bibliotheken für das
aktuelle Programm verwendet werden.
In „Dev-C++“ sind bereits viele Bibliotheken vorinstalliert, jedoch gibt es
trotzdem einige, die man selbst installieren muss. In unserem Fall war das
die „sqlite3“ Bibliothek, die wir benötigen, um mit der Datenbank
kommunizieren zu können.
ist der Befehl, der vorgibt, dass bestimmte Bibliotheken
verwendet werden. Welche Bibliothek dabei verwendet wird steht
zwischen den eckigen Klammern (z.B.: #include<sqlite3.h>, hier ist „sqlite3.h“
der Name der verwendeten Bibliothek).
#include<>
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 41 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.4 Erster Anlauf
Da wir bis zu einem gewissen Zeitpunkt noch nicht im Besitz eines
Kartenlesers waren und auch noch keine Datenbank erstellt hatten, haben
wir als erstes einfache Textdokumente, welche unseren Kartenleser
vorerst ersetzten, verwendet.
In das Textdokument, welches unseren Kartenleser repräsentiert, wird vor
Programmstart eine ID hineingeschrieben. Im ersten Programmabschnitt
wird die Kommunikation zu dieser Datei hergestellt und der Inhalt in eine
Variable gespeichert.
Da wir zu dieser Zeit noch keinen Datenvergleich herstellen konnten,
haben wir den Wert dieser Variable direkt ausgeben lassen:
Abbildung 14: Programm des ersten Anlaufs
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 42 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.5 Datenbank ansprechen
Als wir unsere erste Datenbank zur Verfügung hatten, kümmerten wir uns
in unserem ersten Programmabschnitt darum, diese anzusprechen.
Mithilfe der von uns zusätzlich installierten Sqlite-Bibliothek ist dies nun
möglich.
Als erstes haben wir hierbei mit dem „include-Befehl“, die notwendigen
Bibliotheken hinzugefügt.
Die darauf folgenden Befehle sind Standardbefehle zur Herstellung einer
Verbindung zwischen Datenbank und Programm.
Wir haben uns dabei an die Anleitung [20] der Seite
www.tutorialspoint.com, gehalten.
Bei erfolgreicher Herstellung des Datenstromes zwischen unserem
Programm und der Datenbank, erhalten wir eine positive Rückmeldung:
„Opened database successfully“.
Gelingt dies nicht, erfolgt eine negative Rückmeldung:
„Can’t open database“.
20
tutorialspoint.com, „SQLite C/C++ Tutorial“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 43 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Abbildung 15: Programmteil zum Ansprechen der Datenbank
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 44 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.6 SELECT-Befehl
Nachdem dies erledigt war, haben wir unsere Aufmerksamkeit darauf
gerichtet, Daten aus der Datenbank abfragen zu können.
Mit einem einfachen „SELECT-Befehl“ werden jene Daten, die bestimmte
Eigenschaften aufweisen, herausgefiltert.
SELECT
[ DISTINCT | ALL ]
<select list>
FROM <table reference list>
[ <where clause> ]
[ <group by clause> ]
[ <having clause> ]
[ UNION [ALL] <query specification> ]
[ <order by clause> ]
Abbildung 16: Bestandteile eines SELECT-Befehls [21]
Diese Bestandteile setzen sich je nach Situation aus weiteren einfachen
oder komplexen Bestandteilen zusammen und werden in den folgenden
Abschnitten erläutert.
Unbedingt erforderlich sind:
 das Schlüsselwort SELECT
 eine Liste von Spalten
 das Schlüsselwort FROM mit einem oder mehreren Verweisen auf
Tabellen
Alle anderen Bestandteile sind optional, können also auch weggelassen
werden. Wenn sie benutzt werden, müssen sie in genau der genannten
Reihenfolge verwendet werden [21].
21
„Ausführliche SELECT-Struktur – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher“.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 45 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
In unserem Fall lautet der Befehl folgendermaßen:
"SELECT SpindNr from Spinde WHERE id = x“
x stellt in diesem Beispiel einen Platzhalter für die ID der eingelesenen
EDU-Card dar. In unserem Programm ist dies mit Einsatz von Variablen
gelöst worden.
Die Schwierigkeit hinter dem Ganzen lag darin, die Abfrage über unser
C-Programm durchzuführen.
Nach dem die Abfrage bezüglich der Datenbank erfolgt, wird ermittelt, ob
diese erfolgreich war oder gescheitert ist. Bei erfolgreicher Ausführung des
Befehls erhalten wir eine positive Rückmeldung: "Operation done successfully“.
Scheitert die Ausführung jedoch, erhalten wir eine standardisierte
negative Rückmeldung, die je nach dem welches Problem vorliegt anders
ausfällt.
Abbildung 17: Programmabschnitt mit dem SELECT-Befehl
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 46 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.7 Rückmeldungen
Abbildung 18: Ausgabe des Programms
Rückmeldung zum SELECT-Befehl.
Rückmeldung zum Ansprechen der Datenbank.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 47 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.8 Verifizierung
Das nächste Ziel, das wir uns gesetzt haben, lag darin, unser Programm so
anzupassen, dass das System nur edu.cards akzeptiert.
Es erschien uns wichtig nur edu.cards zuzulassen, da es passieren könnte,
dass irgendeine andere NFC-fähige Karte zufällig die gleiche ID wie die
edu.card eines Schülers vorweist.
Außerdem ist es theoretisch möglich mit bestimmten Kenntnissen eine
leere NFC-Karte mit einer beliebigen ID zu beschreiben.
Nach dem ersten Einlesen der edu.card ist uns aufgefallen, dass es nicht
nur eine ID, sondern noch drei weitere Codes, die die Karte liefert, gibt.
Für die Zuweisung der Spinde haben wir uns für die „UID“ der Karte
entschieden, da dies die beste und sinnvollste Möglichkeit ist, alle Karten
voneinander zu unterscheiden.
Um nun sicher zu stellen, dass nur edu.cards zur Öffnung der Spinde
verwendet werden können, haben wir uns den „ATQA“ - Code zu Nutzen
gemacht.
Dieser Code besteht aus vier Ziffern und zwei Leerstellen und ist bei jeder
edu.card identisch.
Noch bevor die UID eingelesen wird, vergleicht das Programm den ATQA Code der zugeführten Karte mit jenem in unserem Programm.
Erst wenn dieser Vorgang korrekt durchgeführt wurde, wird im Programm
der nächste Punkt abgearbeitet.
Werden andere Karten als edu.cards an den Leser gehalten, erscheint
folgende Fehlermeldung:
„Falsche Karte“
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 48 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.8.1 Durchführung& Einlesen der UID
Um nun die Verifizierung durchführen und letztendlich die UID einlesen zu
können, mussten wir die Länge der beim Einlesen der edu.card erhaltenen
Ausgabe abzählen.
Nachdem wir wussten wie viele Stellen vorhanden sind und an welcher
Stelle sich welches Zeichen der UID und des ATQA-Codes befinden,
konnten wir den ATQA - Code und die UID ganz einfach in Variablen
speichern.
Abbildung 19: Verifizierung der edu.card, Einlesen der UID
Ist der Wert der eingelesenen Karte an den Stellen 21,22 und 25 „0“ und
an der Stelle 26 „2“, dann stimmt der ATQA - Code überein und es handelt
sich um eine edu.card, welche vom System akzeptiert wird.
Befehl: „if (card[21] == '0' && card[22] == '0' && card[25] == '0' && card [26] == '2')”
In weiterer Folge werden dann 14 Werte ab der 50. Stelle (da die meisten
vorhergegangenen Stellen für unsere Spindöffnung nicht relevant sind) in
eine Variable „uid“ zwischengespeichert.
Befehl: „strncpy(uid,&card[50],14);“
Es sind 14 Werte, da die UID genau 14 Stellen (mit den Leerstellen) hat
und bei der Stelle 50 beginnt.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 49 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.9 Ansteuerung der GPIO-Pins
Wie schon zuvor ((GPIO-) Pins des Raspberry Pi 2) erwähnt, benötigen wir
die GPIO-Pins zur Ansteuerung der Spinde.
Um die Pins mit unserem Programm ansprechen zu können muss eine
weitere Bibliothek hinzugefügt werden, die „WiringPi“ Bibliothek.
8.9.1 WiringPi
WiringPi ist eine weitere Bibliothek, die zur einfacheren Ansteuerung und
Programmierung der GPIO-Pins dient.
Jedoch ist bei der Verwendung von WiringPi darauf zu achten, dass die
Nummern der einzelnen Pins sich dadurch ändern.
Wir haben die WiringPi – Bibliothek installiert, darum haben wir folgende
Pins für den ersten Probedurchlauf mit unserer LED verwendet:
Pin-Name
GPIO 5
GPIO 6
GPIO 13
GPIO 19
GPIO 26
GPIO 21
Pin
29
31
33
35
37
40
WiringPi
21
22
23
24
25
29
Abbildung 20: Tabelle der verwendeten Pins mit Pinnamen
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 50 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Nachdem die Bibliothek eingebunden ist können die Pins angesteuert
werden.
Die Pins werden über einen einfachen Befehl in C angesteuert.
Beispiel der Ansteuerung eines Pins:
#include <wiringPi.h>
#include<stdio.h>
int main()
if (wiringPiSetup() == -1)
return 1;
pinMode( 21, OUTPUT);
digitalWrite(21, 0);
Folgendes Bild zeigt den Programmabschnitt, der die Ansteuerung aller
von uns verwendeten Pins enthält:
Abbildung 21: Ansteuerung der GPIO-Pins
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 51 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.10 Einbindung der GPIO-Pins ins Programm
Die Ansteuerung der richtigen GPIO-Pins und somit die Ansteuerung der
jeweiligen Spinde, haben wir an das Ende unseres bisherigen Programmes
geschrieben.
Wir haben für die Ansteuerung eine neue Variable definiert „g_spindnr“.
In diese Variable wird nun die Spindnummer eingeschrieben, die nachdem
Einlesen der UID der edu.card von der Datenbank ausgegeben wird.
Abbildung 22: Variablenvereinbarung von g_spindnr
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 52 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Dies geschieht natürlich automatisch. Nachdem die Spindnummer in der
Variable steht, kann der Binärcode, der auf diese Spindnummer zutrifft, an
die GPIO-Pins gesendet werden. Dies haben wir über if-Abfragen realisiert.
Die GPIO-Pins werden nun angesprochen und der Spind öffnet (in unserem
Fall leuchtet die LED).
Abbildung 23: Generieren des Binärcodes
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 53 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
8.11 Komplettes Programm
Die Zusammenführung der einzelnen Teile gestaltete sich nicht ganz so
einfach wie erhofft.
Als allererstes mussten wir alle Bibliotheken, deren Notwendigkeit sich mit
den einzelnen Abschnitten angesammelt hat, einbinden.
Das eigentliche Programm hat durch den Aufbau einer Verbindung zur
Datenbank begonnen.
In diesem Programmabschnitt haben wir außerdem die Variable
„g_spindnr“ definiert.
Der nächste Abschnitt ist die Einbindung des Kartenlesers, der
Verifizierung und des Einlesens der UID.
Die Beendung der Kommunikation mit der Datenbank war der nächste
Schritt. Die Kommunikation mit der Datenbank darf erst beendet werden,
nachdem die Abfrage der Spindnummer für die eingelesene UID erfolgt ist.
Der letzte Schritt war es nun die GPIO-Pins des Raspberry Pi 2 richtig
anzusteuern.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 54 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Programm:
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 55 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 56 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Die Länge des „ATS“ wurde für die Darstellung verändert, ebenso wurden
einige Leerstellen entfernt um alles auf einer Seite darstellen zu können.
Abbildung 24: Unser Programm
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 57 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Der folgende und zugleich auch letzte Abschnitt, wiederholt sich je nach
Anzahl der Spinde. In unserem Fall haben wir uns für vier Wiederholungen
entschieden und können somit vier verschiedene LEDs ansteuern.
Abbildung 25: Generieren eines zweiten Binärcodes
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 58 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
9. Erste angesprochene LED
Hier ist unser erster gelungener Versuch eine LED über den Raspberry PI
anzusteuern. Hierbei wurde noch keine binäre Codierung verwendet
sondern nur einen GPIO-Pin und Ground.
Der Vorwiderstand zur LED beträgt 640 Ohm und wird durch einen 560
Ohm Widerstand mit 5% Toleranz und einen 86 Ohm Widerstand mit 1%
Toleranz umgesetzt.
In den Bildern: „Bild 1“ und „Bild 2“, ist der GPIO auf 0 gesetzt und die LED
ist aus. In den Bildern: „Bild 3“ und „Bild 4“, wurde GPIO auf 1 gesetzt und
die LED leuchtet (Spind öffnet).
Bild 1
Bild 2
Bild 4
Bild 3
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 59 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
10. Platine
Der Aufbau unserer Platine für die Ansteuerung der einzelnen Spinde
wurde so realisiert, dass der Code, der von den GPIO-Pins des Raspberry Pi
2 generiert wird, mit dem am jeweiligen Spind eingestellten Code
verglichen wird.
Dieser Vorgang geschieht mithilfe einer „Decoder – Schaltung“:
Vom Raspberry Pi 2 kommen sechs Leitungen, deren Spannungspegel
entweder auf logisch 0 oder 1 liegt, und werden an die Pins eines PIC
angeschlossen.
Insgesamt entsteht somit ein binärer Code, den der PIC mit einem
anderen, voreingestellten Code vergleicht.
Der zweite Code, der die Basis des Vergleiches darstellt, wird durch sechs
Schalter bestimmt. Diese Schalter können entweder auf +5V (entspricht
logisch 1) oder auf Masse (0V; entspricht logisch 0) geschalten werden.
Stimmen die beiden Codes überein, wird der Ausgang, der in weiterer
Folge mit den Spinden verbunden wird (in unserem Fall die LED),
angesteuert. Sind die Codes nicht ident, passiert nichts weiter und der
Spind bleibt geschlossen (hier: die LED leuchtet nicht).
In dieser Schaltung fehlt jedoch noch die Leistungselektronik für den 12V
Ausgang, der für die Ansteuerung unserer Spinde verwendet wird.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 60 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Abbildung 26: Schaltplan der Platine
Abbildung 27: Bestückungsplan
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 61 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Abbildung 28: Bohrplan
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 62 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
11. Möglicher Ausbau
Da uns für unser Projekt nur begrenzt Zeit zur Verfügung stand, wurden
bei weitem nicht alle Möglichkeiten ausgeschöpft. Wir haben alle unsere
gesetzten Ziele erreicht und diese umgesetzt. Trotz allem hatten wir im
Hinterkopf eine klare Vorstellung davon wie unser Projekt verbessert
werden kann.
Zum einen scheitert unser Programm bei der Übersetzung auf den
Raspberry Pi, da die Bibliothek für diesen, einen Fehler aufweist. Diesen
Fehler zu suchen und zu beheben war uns in der vorgegebenen Zeit nicht
möglich. Als ersten Schritt zur Erweiterung, sehen wir die Behebung dieses
Problems als Priorität.
Als nächstes Problem sehen wir die Tatsache, dass es keine Möglichkeit
gibt die UID der edu.card direkt in die Datenbank zu übertragen. Diese
muss beim momentanen Stand des Projektes zunächst ausgelesen und
dann händisch eingetragen werden. Dazu wäre ein Programm zu
schreiben, welches es ermöglicht, die UID direkt beim Zuführen der Karte
auf den Kartenleser in die Datenbank einzutragen.
Ein etwas komplexerer Schritt wäre es, eine Kommunikation zwischen
mehreren Klassenräumen aufzustellen. Dadurch wird die
Doppelverwendung einer Karte ausgeschlossen.
Das gesamte System könnte außerdem auch ausgebaut werden, sodass
nicht nur Spinde geöffnet werden, sondern auch Klassenräume. Die
Klassenräume sollten nur von den Schülern der jeweiligen Klasse und von
Lehrkräften geöffnet werden können. Des Weiteren könnte auch ein
elektronisches Klassenbuch geführt werden.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 63 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
12. Begleitprotokoll gemäß Prüfungsordnung BMHS und
Bildungsanstalten §9 (2)
Datum
15.09.2015
22.09.2015
29.09.2015
02.10.2015
03.10.2015
06.10.2015
07.10.2015
Datum
13.10.2015
20.10.2015
Datum
08.04.2016
Diplomarbeit:
Tätigkeit
Bei Herrn Prof.Hopfgartner (HAK Wien 1100)
Informationen eingeholt.
Informationen mit Herrn Prof. Pühringer
ausgetauscht
Internetrecherche
Internetrecherche Schloss
Überlegungen zum Aufbau, Internetrecherche
Informationen mit Herrn Prof. Pühringer
ausgetauscht / Teile gesucht
Bestellung der Teile durchgegangen
Tätigkeit
Über Programme für Raspberry Pi informiert,
Kontakt zu Firma Gantner aufgenommen
Erste Teile erhalten, Betriebssystem für Raspberry
Pi auf SD-Card gespielt
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 64 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
27.10.2015
Internetrecherche zu Datenbanken
28.10.2015
Internetrecherche zu Datenbanken
01.11.2015
Elektrischen Türöffner gesucht, Überlegungen zum
Spind dokumentiert
03.11.2015
04.11.2015
Mit Herrn Prof. Loibner Datenbank besprochen
Internetrecherche zu Datenbanken
Datum
06.11.2015
Tätigkeit
Erste Datenbank erstellt und getestet
10.11.2015
Internetrecherche zu C , erste Übungsbeispiele zu
C, Datenbank bearbeitet
07.11.2015
11.11.2015
13.11.2015
17.11.2015
Datum
08.04.2016
Diplomarbeit:
Datenbankbefehle getestet, Überlegungen zur
weiteren Bearbeitung angestellt
C Programm, fopen
C Programm erweitert , Daten aus einem
Dokument werden ausgelesen und in ein neues
Dokument eingefügt.
Download von SQLite-Bibliothek für C,
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 65 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
24.11.2015
Verbindungsversuch zwischen Raspberry Pi &
Laptop (erfolglos)
Arbeit am C Programm
Datum
01.12.2015
Tätigkeit
Sqlite Datenbank in C mit Programm verbunden
14.12.2015
Arbeiten am C Programm
15.12.2015
Verbindung zwischen Raspberry Pi 2 und TouchDisplay eingerichtet
16.12.2015
Verbindung des Raspberry Pi 2 mit einem HDMIMonitor zur erleichterten Bearbeitung
12.01.2016
RFID reader an Raspberry Pi angeschlossen,
einlesen der edu.cards - erste Versuche
19.01.2016
Befehle zur automatischen Weiterverarbeitung ins
C Programm eingefügt
26.01.2016
Datum
08.04.2016
Diplomarbeit:
SQLite-Bibliothek auf den Raspberry Pi geladen
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 66 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
Datum
02.02.2016
Tätigkeit
nfc-poll Programm umgeschrieben
16.02.2016
Verknüpfung der einzelnen Programme am
Raspberry, Probleme mit der SQLite-Bibliothek
23.02.2016
Ansteuerung der GPIO Pins des Raspberry Pi 2
01.03.2016
Layout der Platinen (Spinde) entworfen
08.03.2016
Zuordnung der binären Codes zu den einzelnen
Spinden (in extra Programm)
09.02.2016
15.03.2015
nfc-poll Programm umgeschrieben zur
Weiterverarbeitung der Daten
Programm mit den Binärcodes in unser
Hauptprogramm eingefügt
Alle vorangegangenen Arbeiten wurden von beiden Projektkandidaten im
Team durchgeführt.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 67 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
13. QUELLENVERZEICHNIS
alldatasheet.com. „PN532 datasheet(2/27 Pages) NXP | Near Field
Communication (NFC) controller“. Zugegriffen 23. März 2016.
http://html.alldatasheet.com/htmlpdf/595327/NXP/PN532/110/2/PN532.html.
„Ausführliche SELECT-Struktur – Wikibooks, Sammlung freier Lehr-, Sachund Fachbücher“. Zugegriffen 23. März 2016.
https://de.wikibooks.org/wiki/Einf%C3%BChrung_in_SQL:_Ausf%C3
%BChrliche_SELECT-Struktur.
„Bloodshed Software - Dev-C++“. Zugegriffen 23. März 2016.
http://www.bloodshed.net/devcpp.html.
„Char (Datentyp)“. Wikipedia, 13. Mai 2014.
https://de.wikipedia.org/w/index.php?title=Char_(Datentyp)&oldid=
130356613.
„C (Programmiersprache)“. Wikipedia, 5. März 2016.
https://de.wikipedia.org/w/index.php?title=C_(Programmiersprache)
&oldid=152193367.
„Datenbank“. Wikipedia, 2. März 2016.
https://de.wikipedia.org/w/index.php?title=Datenbank&oldid=15208
7252.
„Einplatinen-Computer: Raspberry Pi für Profi-Anwendungen - Seite 2 crn.de“. Zugegriffen 23. März 2016.
http://www.crn.de/themenwelt/windows-10/artikel-109191-2.html.
„Integer (Datentyp)“. Wikipedia, 28. Jänner 2016.
https://de.wikipedia.org/w/index.php?title=Integer_(Datentyp)&oldi
d=150772542.
„Introducing the Raspberry Pi B+ » DesignSpark“. Zugegriffen 23. März
2016. http://www.rsonline.com/designspark/electronics/eng/blog/introducing-theraspberry-pi-b-plus.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 68 von 69
htl donaustadt
Donaustadtstraße 45 1220 Wien
Abteilung für Elektrotechnik
„Near Field Communication“. Wikipedia, 25. Februar 2016.
https://de.wikipedia.org/w/index.php?title=Near_Field_Communicat
ion&oldid=151917472.
„NFC auf Raspberry Pi: PN532 Breakout Board“. Zugegriffen 23. März
2016. http://www.schnatterente.net/technik/nfc-raspberry-pipn532-breakout-board.
„Raspberry Pi“. Wikipedia, 17. März 2016.
https://de.wikipedia.org/w/index.php?title=Raspberry_Pi&oldid=152
586412.
„Raspberry Pi 2, Model B.pdf“. Zugegriffen 23. März 2016. http://docseurope.electrocomponents.com/webdocs/1392/0900766b8139232d
.pdf.
„Raspberry Pi 2.pdf“. Zugegriffen 23. März 2016. http://docseurope.electrocomponents.com/webdocs/144c/0900766b8144c4bc.
pdf.
„Raspberry Pi: GPIO-Schnittstelle erklärt » Jan Karres“. Zugegriffen 23.
März 2016. http://jankarres.de/2015/02/raspberry-pi-gpioschnittstelle-erklaert/.
„SQLite“. Wikipedia, 8. März 2016.
https://de.wikipedia.org/w/index.php?title=SQLite&oldid=15228837
6.
„sunfounder“. Zugegriffen 23. März 2016.
http://www.sunfounder.com/index.php?c=downloadscs&a=Manuald
etails&id=99&name=Raspberry%20Pi.
tutorialspoint.com. „SQLite C/C++ Tutorial“. www.tutorialspoint.com.
Zugegriffen 23. März 2016.
http://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm.
„Universal Asynchronous Receiver Transmitter“. Wikipedia, 23. November
2015.
https://de.wikipedia.org/w/index.php?title=Universal_Asynchronous
_Receiver_Transmitter&oldid=148329749.
Datum
08.04.2016
Diplomarbeit:
Bearbeiter
Max Holub
Stefan Sop
EduCard - Spindschloss
HTBLA Wien 22
Jahrgang: 5AHET
Schuljahr: 2015/16
Projektleiter
Prof. Joksch
Signum:
Seite 69 von 69
Herunterladen