Alarmanlage im Haus (Arduino)

Aus Informatik
Wechseln zu: Navigation, Suche

Ziel des Projekts

Wir bauen mithilfe von Arduino eine Einbruchmeldeanlage(EMA), die zum Einen durch einen Bewegungsmelder (HC-SR501) Bewegung erkennt und zum Anderen durch zwei Lichtschranken sowohl Tür als auch Fenster des Modellhauses (siehe Bild) getrennt voneinander überwacht. Sobald ein Alarm ausgelöst worden ist, soll ein Lautsprecher akustische und eine RGB-Leuchte optische Signale geben.

Planung

Im ersten Schritt der Planung über legten wir uns wie unser Haus vom Grundriss her aussehen sollte und was für Teile wir verbauen wollten.

Arbeitsschritte/Durchführung

Grundprinzip der ersten Schritte ist es, die Bauteile ,die für die EMA benötigt werden, einzeln zum Funktionieren zu bringen. Danach sollen sie Stück für Stück in eine einzige Schaltung gebracht werden. Wenn diese funktioniert, soll das Modellhaus gebaut werden. Auf der Zielgeraden soll dann die Schaltung 1 zu 1 im Haus umgesetzt werden. Zusätzlich müssen die einzelnen Bauelemente montiert und befestigt werden. Danach bleibt Zeit für Korrekturen oder nicht geplante Erweiterungen.

Was müssen wir programmieren?

Um die EMA vollständig funktionieren zu lassen, sind verschiedene Bauteile von Nöten. Diese gliedert man in verschiedene Bereiche. Als erstes gibt es die Gruppe der alarmierenden Bauteile. Unter diesem Begriff sind diejenigen Bauelemente zu verstehen, die eine Information an das Mainboard schicken, welches diese verwertet. Dazu zählen die beiden Photozellen zur Sicherung der Tür und des Fensters, ebenso wie ein Bewegungsmelder der auf Bewegung reagiert.

Nun haben wir zumindest schon mal die Information, ob gerade eingebrochen wird, oder nicht. Da uns dies allein nichts bringt braucht eine EMA Signal- bzw. Alarmgeber. Diese erhalten ein Signal vom Mainboard, falls eingebrochen wird. In unserem Modellhaus wird diese Bauteilgruppe durch zwei verschiedene Typen von Alarmgebern repräsentiert. Es gibt einen optischen und einen akustischen Alarmgeber im Haus. Der optische Signalgeber ist eine sogenannte RGB-Leuchte, die sowohl in den drei einzelnen Farben der LEDs leuchten kann, als auch in jeder möglichen Kombination aus zwei der drei Farben Rot, Grün und Blau. Sollten alle drei LEDs leuchten wird das Licht Weiß. Der akustische Alarmgeber ist ein Piezzo Speaker, der einen Ton von sich gibt, wenn er ein Signal erhält.

Sollte dies alles funktionieren, kann man ruhigen Gewissens das Haus verlassen, da so kein Einbruch unbemerkt bleibt. Denn so nervig wie der Ton des Lautsprechers ist, wöllte jeder Nachbar diesen abschalten. Dazu braucht er jedoch einen Schalter. Dieser Schalter funktioniert ähnlich wie ein Reset, nur gibt es einen Unterschied. Der Rückstellschalter resettet das Mainboard nicht. Somit wäre alles, was man für die perfekte EMA bedacht.

Wie geht was?

Nachdem sich also die schlausten Köpfe unserer Zeit Gedanken über den groben Aufbau der EMA gemacht haben, wird es Zeit die Funktionsweise der einzelne Bauteile näher zu erläutern.

Kommunikation Arduino-PC

Das Wichtigste, um mit einem Arduino/Sainsmart zu arbeiten ist, dass man ihm sagen kann was er machen soll. Dazu werden sogenannte Sketches (Quellcode) geschrieben. Um nun diese Sketches auf den Arduino zu laden, braucht man also eine Verbindung zum Computer. Dies geschieht, indem man das Board per USB Kabel mit dem PC verbindet. Nun kann man mit der Arduino Software oder vergleichbaren Softwares wie AVR Studio den Quellcode auf das Board laden.

Lichtschranke

Da eine übliche Gabellichtschranke für unsere Zwecke ungeeignet ist besteht unsere Lichtschranke aus einem Laserpointer und einer Photozelle. Wird der Strahl des Lasers unterbrochen, erhält die Photozelle automatisch niedrigere Messwerte als vorher. Durch den Laserpointer werden dabei Werte von ca. 1028 erzeugt. Unter normalen Umständen misst die Photozelle je nach Lichtverhältnissen Werte im Bereich von 300-600. Über einen seriellen Monitor werden die von der Photozelle gemessenen Werte ausgegeben.

Bewegungsmelder

Das andere auslösende Bauteil, der Bewegungsmelder, misst via Infrarot ob menschliche Bewegung vorhanden ist. Der mit Spannung versorgte sogenannte PIR kann entweder HIGH oder LOW als Signal zurückgeben. Im Falle des HIGH als Rückgabe kommen 3.3V am Board zurück und es weis, dass der Alarm ausgelöst werden muss. Wenn jedoch LOW als Signal zurückkommt, d.h. 0V, wird der Alarm nicht aktiviert.

RGB-Leuchte

Neben einem akkustischen Signal soll auch ein optisches Signal zeigen, wenn sich jemand unerlaubt Zugang zum Haus verschafft. Da eine einzelne Leuchtdiode zu langweilig wäre, haben wir eine RGB-Leuchte eingebaut, welche Blau (Bewegungsmelder) , Rot (Fenster) oder Grün (Tür) leuchtet.

Lautsprecher

Um potentielle Einbrecher zu stoppen, entschieden wir uns (manchmal auch zum Leid unserer Mitschüler) einen Lautsprecher einzubauen. Dabei handelt es sich im Prinzip um einen einfachen Output, welcher entweder den Status HIGH(gibt einen vor allem für andere nervigen Ton aus) oder LOW(leise) hat.

Rückstellbutton

Wie in der Realität soll man den Alarm auch wieder deaktivieren können. Um dies zu Bewerkstelligen verwenden wir einen Button. Wird dieser gedrückt, so wird der Zustand von alert auf den Ursprungszustand zurückgesetzt. Da der Zustand nun nicht mehr dem alert-Zustand entspricht,ist der Alarm abgeschaltet und die RGB-Leuchte und der Lautsprecher gehen aus.

Wo gab es Probleme und wie wurden sie gelöst

Lichtschranke

Da eine Gabellichtschranke ungeeignet ist um eine größere Distanz zu überbrücken, entschieden wir uns dafür die Lichtschranke durch einen batteriebetriebenen Laserpointer und ein Photozelle zu ersetzen.

Kommunikation

Das Hoch laden der Sketches dauerte extrem lang oder brach komplett ab, daher mussten wir die Schaltung spannungslos machen um überhaupt den Quellcode hochladen zu können.

Struktur-Problem

Da das schrittweise Abarbeiten von Befehlen im Sketch zu Anfang nur ein Delay als Möglichkeit offen ließ den Alarm abzuschalten, waren wir auf der Suche nach einem passenden "Abbruchbefehl". Die Lösung offenbarte sich in einer while-if Verknüpfung, die nach folgendem Prinzip funktioniert: Solange der Alarm an ist, sollen jegliche Signalgeber angeschaltet sein. Wenn in dieser While-Schleife jedoch der Button gedrückt wird, soll der Alarm auf false gesetzt werden. Somit ist die Bedingung nicht mehr erfüllt, die Signalgeber werden also abgeschaltet.

Spannungsversorgung

Da der USB-Port mit 5V nicht genug Spannung lieferte,haben wir die Versorgung mit Batterien (9V) verbessert

Laserpointer 1

Laserpointer und Photozellen verändern immer wieder, bedingt durch die Montage, leicht ihre Position, d.h. die Laserpointer treffen die Photozellen nicht mehr. An dieser Stelle hilft lediglich die erneute Ausrichtung der Photozellen, da wir auf eine Wiederverwendbarkeit der Bauelemente geachtet haben.

Laserpointer 2

Die Batterien(Knopfzellen) der Laserpointer hatten eine sehr kurze Lebensdauer bei intensiver Verwendung. Auch hier gilt lediglich, dass wir die Laserpointer regelrecht gemieden haben, da sonst Unmengen an Batterien fällig gewesen wären.

Bewegungsmelder

Bei dem Bewegungsmelder tat sich von Zeit zu Zeit das Problem auf, dass er auslöste obwohl man sich kein Stück bewegte. Ein Lösungsansatz lieferten hier verschiedene Sachen: Sowohl falsche Lichtverhältnisse als auch die Messung von Körperwärme als auch das ungewollte Wahrnehmen von blinkenden Lichtern und Hochfrequenzen des Mainboards könnten hierfür Ursachen sein. Da das Problem nur zeitlich begrenzt auftrat, sind wir schlussendlich zu keiner Lösung gekommen.

Das Modellhaus

Unser Modellhaus hat ca. die Maße 38x38x15 (in cm) und verfügt neben einem abnehmbaren Dach über eine Tür und ein Fenster. Auf der Frontseite sind zudem zwei Löcher, eines für einen Lautsprecher und eines für das Licht der RGB-Leuchte. An den Seitenwänden ist jeweils ein Loch, durch welches jeweils ein Laserpointer geschoben wird. Außerdem befindet sich auf der rechten Seite ein Loch für ein USB-Kabel.

Hilfreiche Links

Arduino Tutorials

Fritzing-Software zur Darstellung von Schaltplänen

Arduino Software