13
Mikrocontroller- gesteuertes Türschloss Markus Schwer 12 Jahre Schüler experimentieren-Projekt 2014

Mikrocontroller gesteuertes türschloss

Embed Size (px)

Citation preview

Mikrocontroller-gesteuertes Türschloss

Markus Schwer

12 Jahre

Schüler experimentieren-Projekt 2014

Deutschorden-Schule Lauchheim

Inhaltsverzeichnis

Kurzfassung .............................................................................2

Idee ..........................................................................................2

Hintergründe ...........................................................................2

Material und Methoden ..........................................................3

Durchführung ..........................................................................4

Ergebnis .................................................................................10

Ausblick .................................................................................11

Danksagung ...........................................................................12

Anhang ..................................................................................12

Kurzfassung

Damit ausschließlich ich meine Zimmertür öffnen kann, habe

ich ein mikrocontroller-gesteuertes Türschloss konstruiert.

Dafür habe ich ein Holzkästchen gebaut, das den Zugriff auf

das Schloss kontrolliert. Ich kann mit einem elektronischen

Schlüssel den Zugang zum Schloss öffnen und schließen.

Dafür habe ich den Mikrocontroller Arduino benutzt.

Idee:

Ich habe eine Zwillingsschwester, die mich oft nervt. Sie

kommt immer wieder in mein Zimmer, auch wenn ich die Tür

zugeschlossen habe. Sie hat den gleichen Schlüssel wie ich

und ich kann ihr ihren eigenen Schlüssel nicht wegnehmen.

Deshalb hatte ich die Idee ein elektronisches Türschloss zu

bauen.

Hintergründe:

Letztes Jahr (2012) zu Weihnachten habe ich ein Arduino Uno

Board und ein Arduino Buch („Die elektronische Welt mit

Arduino entdecken“ von Erik Bartmann) bekommen.

Danach habe ich mich viel mit Arduino auseinandergesetzt.

Ich habe mich auch schon vorher mit Programmieren etwas

beschäftigt (C#). Durch das Arduino-Buch habe ich C++

gelernt.

Im Juli 2013 habe ich an einem Mikrocontroller-Kurs von

explorhino bei Herrn Reiner teilgenommen. Bei diesem Kurs

haben wir ein Mikrocontroller-Board mit Arduino selber

zusammengelötet. Im September 2013 habe ich auch bei

Herrn Reiner einen Fortgeschrittenen Kurs besucht. Dabei

haben wir eine Verstärkerplatine mit Motor-IC für den

Mikrocontroller gelötet. Dabei habe ich viel über die

Elektronik der verwendeten Bauteile gelernt. Leider haben

wir nicht wirklich programmiert.

Material und Methoden:

Material:

Arduino Nano

Schrittmotor mit Treiber von OzHobbies

(http://www.ozhobbies.eu/)

Netzteil DC 5V 1,2A - 7,5V-20V (AC/DC) von OzHobbies

NFC Modul von ElecFreaks

(http://www.elecfreaks.com/5418.html)

Software: Arduino ver. 1.0.5

Methoden:

Programmierung mit C++

Durchführung:

Als ich Herrn Bich, den Leiter der Jugend forscht-AG an

meiner Schule, von meiner Idee, ein Mikrocontroller-

gesteuertes Türschloss zu bauen, erzählt hatte, hat er ein

altes Türschloss mitgebracht. Ich habe es geöffnet und dabei

sprangen Federn heraus. Leider konnte ich das Schloss nicht

mehr zusammenbauen. Er hatte aber noch ein zweites

Schloss mitgebracht, das nicht auseinanderfiel. Das habe ich

mir genauer angeschaut. Dabei bin ich auf die Idee

gekommen, den Riegel mit einem Motor zu bewegen. Auf

dem Motor befindet sich ein Zahnrad, das mit Hilfe einer

Zahnstange, die sich am Riegel befindet, den Riegel

verschiebt. Wenn ich z.B. einen Code eingebe, dann sollte

sich der Riegel bewegen und das Schloss versperren.

Dann habe ich ein neues Türschloss gekauft um es

umzubauen. Leider war das Schloss genietet, sodass ich es

nicht öffnen konnte.

Danach wollte ich einen Schrittmotor kaufen, damit ich den

Riegel bewegen kann. Beim Mükra in Aalen (ein kleiner

Elektronikladen) habe ich keinen bekommen, bekam jedoch

den Tipp zum Spielwaren Wanner zu gehen. Dort bekam ich

zwar auch keinen Schrittmotor, aber den Tipp einen

Schrittmotor aus einem alten Drucker auszubauen. Gott sei

Dank hatten wir einen alten Drucker zu Hause. Diesen habe

ich zerlegt und den Scanner-Motor ausgebaut.

Leider hatte ich dazu keinen passenden Motortreiber.

Deshalb habe ich bei OzHobbies (http://www.ozhobbies.eu/)

einen Schrittmotor mit Treiber gekauft. Dann habe ich mit

Videoanleitung (http://www.youtube.com/watch?v=cCNT0J-

X4mM) den Schrittmotor versucht zum Laufen zu bringen, hat

aber nicht funktioniert. Deshalb habe ich den Sketch-Code

aus dem Buch „Die elektronische Welt mit Arduino

entdecken“ verwendet. Nun hat der Motor auf Anhieb

funktioniert.

Leider war der Motor zu schwach um den Riegel zu bewegen.

Nun habe ich nach einem stärkeren Schrittmotor gesucht. Ich

habe deshalb auf www.Gutefrage.de nach einer Empfehlung

gefragt. Mir wurde als Lösung ein Hubmagnet vorgeschlagen.

In der Zwischenzeit bin ich zu Mayer-Werkzeuge in Aalen

gefahren um ein aufschraubbares Türschloss zu kaufen. Ich

habe eins gekauft und bei dieser Gelegenheit bin ich zum

nahegelegenen Bauhaus (Baumarkt) gefahren und habe mir

dort ein elektronisches Türschloss angeschaut.

Dabei kam mir die Erleuchtung: „Ich muss verhindern, dass

man das Schloss aufkriegt.“ (nicht das Schloss versperren)

Dazu hatte ich mehrere Ideen:

Eine Idee war, dass die Klinke im Leerlauf ist. Diese Idee habe

ich dann verworfen, da dies zu schwierig ist.

Ich habe mich nach längeren Überlegungen dazu

entschlossen, statt im Schloss etwas zu verändern (zu

schwierig), außen ein Kästchen anzubringen, das den Zugang

zum Schloss versperrt.

Ich habe nun provisorisch ein Kartonkästchen ausgesucht und

Löcher passend ausgeschnitten.

Dann habe ich eine Kartonscheibe auf den Motor geklebt. Die

Platinen (Arduino, Netzteil, Motortreiber) habe ich mit einem

doppelseitigen Klebeband ins Kästchen geklebt.

Jetzt musste ich nur noch dafür sorgen, dass nur ich den

Zugriff auf das Schloss habe. Ich habe mich für die RFID-

Technik entschieden. RFID heißt „radio-frequency

identification“ und bedeutet „Identifizierung mit Hilfe

elektromagnetischer Wellen“. Man verwendet diese Technik

häufig für Zutrittskontrollen. Mehr Informationen über RFID

stehen im Anhang.

Ich habe im Internet ein NFC Modul von ElecFreaks

(http://www.elecfreaks.com/5418.html) bestellt. NFC heißt

„Near Field Communication“ und ist ein internationaler

Übertragungsstandard zum kontaktlosen Austausch von

Daten per Funktechnik über kurze Strecken von wenigen

Zentimetern. Mehr Informationen unter

http://de.wikipedia.org/wiki/Near_Field_Communication.

Als ich es bekommen hatte, habe ich die Library dafür im

Internet gesucht, jedoch leider nichts gefunden. Eine Library

ist ein Programm, das z.B. beim Ansteuern von Motoren hilft

(Informationen zu C++ im Anhang).

Auf http://www.elecfreaks.com/5418.html habe ich dann ein

passendes Programm mit Library gefunden. Die Anleitung zur

Portbelegung habe ich dort ebenfalls gefunden.

Leider hat es auch nach mehreren Versuchen nicht geklappt.

Zuerst habe ich festgestellt, dass ich beim User Guide die

falsche PIN-Belegung benutzt habe. Nach Lösung dieses

Problems hat es aber immer noch nicht funktioniert. Erst

nach langer Fehlersuche habe ich festgestellt, dass ich mich

bei der PIN-Belegung geirrt hatte. Meine Mutter hat darauf

bestanden, dass ich alle Verbindungen noch einmal

überprüfe. Dabei habe ich festgestellt, dass ich ein Kabel

falsch angeschlossen hatte. Endlich hat es funktioniert.

Als nächstes habe ich das Programm so umgeschrieben, dass

es die ID von dem RFID-Tag prüft. Meine eigenen Ideen haben

zuerst nicht funktioniert, aber die Grundidee war richtig. (Die

richtige und die aktuelle ID werden verglichen). Auch die

Suche in verschiedenen Internetforen nach Hilfe hat nichts

gebracht. Dann kam mir die Idee, die Daten in Strings (oder

Zeichenketten) zu konvertieren. Leider kannte ich den Befehl

nicht. Deshalb habe ich gegoogelt wie man konvertiert.

Auf

http://www.netzmafia.de/skripten/hardware/Arduino/progr

ammierung.html habe ich einen wichtigen Hinweis gefunden.

Ich habe programmiert und es hat geklappt!!!

Dann habe ich das Programm mit dem bereits vorhandenen

Programm für den Schrittmotor erweitert. Das hat auch

funktioniert!!!

Nun habe ich den Arduino von der USB-Verbindung mit dem

PC getrennt, da das Ganze ja nicht am Computer hängen,

sondern unabhängig laufen soll. Nun hat sich jedoch der

Motor nicht mehr gedreht.

Ich habe deshalb alle Kabel überprüft und isoliert und eine

frische Batterie verwendet. Nun hat alles endlich

funktioniert!!!

Nun musste ich nur noch ein Kästchen aus Holz bauen, das ich

dann auf der Tür befestigen konnte.

Beim Bau des Kästchens hat mir meine Mutter geholfen, da

sie handwerklich ein wenig begabter ist als ich.

Nun dachte ich es ist alles fertig. Nur noch die Kabel, Platinen

und Motor im Kästchen befestigen und das Ganze

funktioniert. Ich musste das Arduino nur noch so

programmieren, dass der Motor sich vor und zurück dreht.

Das sollte kein Problem sein, dachte ich. Doch leider drehte

er sich nur in eine Richtung. Und das auch noch kurz vor

Silvester. Es war unerklärlich. Dann hat meine Mutter die

Kabel vom Motor umgesteckt, obwohl ich fest davon

überzeugt war, dass das nicht funktionieren wird. Doch

plötzlich drehte er sich so wie er sollte.

Fazit: Ich habe gelernt, dass Murphys Laws stimmen!

Ergebnis:

Das ist ein Ausschnitt aus meinem fertigen Programm.

Die vollständige Datei kann ich per E-mail schicken.

Ein Foto von dem fertigen Türschloss:

Das Kästchen wird außen auf meiner Zimmertür befestigt.

Normalerweise ist die Öffnung geschlossen. Wenn ich meinen

RFID-Tag an die Markierung halte dreht sich der Motor und

öffnet mir den Zugang zum Schloss. Nach 15 Sekunden

schließt sich der Zugang wieder.

Ausblick:

Eine Erweiterung dieses mikrocontroller-gesteuerten Systems

wäre, dass es über Ethernet steuerbar ist. Das ist jedoch ein

etwas größeres Unterfangen und könnte ein wenig länger

dauern. Außerdem könnte man es noch etwas kompakter

gestalten.

Danksagung:

Ich bedanke mich bei Herrn Bich für die Unterstützung bei der

Anmeldung und für Ideen.

Ich bedanke mich besonders bei meiner Mutter für die

anregenden Diskussionen und die Hilfe bei den Internet-

Recherchen, beim Kauf der benötigten Materialien und beim

Schreiben. Ohne die Motivation durch sie hätte ich das

Projekt vielleicht nicht in der Zeit geschafft.

Anhang:

C++ : http://de.wikipedia.org/wiki/C%2B%2B

RFID-Technik : http://de.wikipedia.org/wiki/RFID

Arduino : http://arduino.cc/

Software : http://arduino.cc/en/main/software

explorhino : http://www.explorhino.de/

Fotos: Markus Schwer