Alarmanlage mit verschiedenen Systemen
Erste Idee: In einem Haus gibt es vier Räume. Jeder Raum wird überwacht durch einen
eigenen Teil der Alarmanlage mit eigenem Arduino. Jeder dieser vier Arduinos
sollte mit einem zentral-Arduino vernetzt sein. Der zentral-Arduino sollte dann
auf einem LCD- Display schreiben, ob es einen Alarm gibt und, in welchem der
vier Räume der Alarm ausgelöst wurde. Aufgrund der Schwierigkeit der
Vernetzung, mussten wir uns ein anderes System überlegen.
Endsystem: Das Haus wird von mehreren Systemen überwacht. Hierbei gibt es ein System,
das mit einem Bewegungsmelder arbeitet und per Infrarot- Fernbedienung an -
aus geschaltet werden kann. Bei einem Alarm erscheint eine Mitteilung auf
LCD- Display und eine LED geht an. Das andere System arbeitet mithilfe
eines Ultraschallsensors. Bei Alarm geht eine LED, sowie ein Ton an. Zusätzlich
kann man sich eine Mitteilung auf einem LCD-Display anzeigen lassen.
System1: Alarm mit Ultraschallsensor
Material:
· 1 Arduino Uno/ Mega
· 1 Ultraschallsensor
· 2 LEDs und 2 Wiederstände (220 Ohmen)
· mehrere Kabel
· 1 Tongenerator
· bei System mit Angabe auf LCD- Display: 1 LCD- Display und 1 Drehregler
System1 mit Angabe auf dem LCD-Display
Aufbau: Der Anschluss trig geht an den Pin 7, der Anschluss echo geht an Pin6, VCC geht an 5V und GND geht an
Minus. Das Plus der Status- LED geht an Pin 13, das Minus an GND. Das Plus der Alarm-LED geht an Pin 8,
das Minus an GND. Das Plus des Tongenerators geht an Pin 9, der andere Anschluss an GND.
Das LCD- Display wird über den Drehregler an die Pins 12,11,5,4,3,2 auf dem Arduino angebunden.
Der Code:
int echo = 6;
int buzzerpin = 9;
int statusled = 13;
int alarmled = 8;
long dauer = 0;
long entfernung = 0;
#include
lcd.begin(16, 2);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(statusled, OUTPUT);
pinMode(alarmled, OUTPUT);
digitalWrite(statusled, HIGH);
digitalWrite(trigger, LOW);
delay(5);
digitalWrite(trigger, HIGH);
delay(10);
digitalWrite(trigger, LOW);
dauer = pulseIn(echo, HIGH);
entfernung = (dauer / 2) * 0.03432;
{
lcd.clear(); //Display löschen
lcd.setCursor(0, 0); //Startposition der Darstellung auf dem LCD festlegen. lcd.setCursor(0,0) bedeutet: Erstes Zeichen in der ersten Zeile.
lcd.print("ALARM!!!!"); //Dort soll der Text „ALARM!!!“ erscheinen. Der Befehl lcd.setCursor ist dem Mikrocontrollerboard durch das Aufrufen der Bibliothek bekannt.
tone(buzzerpin, 2000);
digitalWrite(alarmled, HIGH);
}
else {
lcd.clear(); //Display löschen
lcd.setCursor(0, 0);
lcd.print("KEIN ALARM :)");
noTone(buzzerpin);
digitalWrite(alarmled, LOW);
}
delay(500);
}
System1 mit Angabe auf dem Seriellen Monitor
Aufbau: Der Anschluss trig geht an den Pin 7, der Anschluss echo geht an Pin6, VCC geht an 5V und GND geht an
Minus. Das Plus der Status- LED geht an Pin 12, das Minus an GND. Das Plus der Alarm-LED geht an Pin 3,
das Minus an GND. Das Plus des Tongenerators geht an Pin 9, der andere Anschluss an GND.
Der Code:
int echo = 6;
int buzzerpin = 9;
int statusled=12;
int alarmled=3;
long dauer = 0;
long entfernung = 0;
Serial.begin(9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(statusled,OUTPUT);
pinMode(alarmled,OUTPUT);
digitalWrite(statusled,HIGH);
digitalWrite(trigger, LOW);
delay(5);
digitalWrite(trigger, HIGH);
delay(10);
digitalWrite(trigger, LOW);
dauer = pulseIn(echo, HIGH);
entfernung = (dauer / 2) * 0.03432;
{
Serial.print(entfernung);
Serial.println("cm; ALARM!!!!!!!");
tone(buzzerpin, 2000);
digitalWrite(alarmled,HIGH);
}
else {
Serial.print(entfernung);
Serial.println("cm; KEIN ALARM :)");
noTone(buzzerpin);
digitalWrite(alarmled,LOW);
}
delay(500);
}
System2: Alarmanlage mit Bewegungsmeldern
Material:
- 1 Arduino Mega
- 1 Bewegungsmelder
- 2 LEDs
- 2 Wiederstände (220 Ohmen)
- mehrere Kabel
- 1 LCD- Display und 1 Drehregler
- 1 Infrarot-Empfänger
Aufbau: Das LCD-Display wird über den Drehregler mit den Pins 12,11,5,4,3,2 mit dem Arduino verbunden.
Der RECV-Pin des Infrarot-Empfängers geht an Pin 10, das Signal des Bewegungsmelders an Pin 8.
Die LEDs gehen an die Pins 31,50,A0 und A2. Die Minusse gehen an GND.
Der Code:
#include
int RECV_PIN = 10;
int LOL = 50;
IRrecv irrecv(RECV_PIN);
decode_results results;
#include //wir laden die Bibliothek
int sensor = 8;
int sensoR = 9;
int LED = A0;
int leds=31;
int LED1 = A2;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//wir geben die Pins an die wir brauchen
void setup() {
lcd.begin(16, 2);//wir geben Spalten und Zeilen an
pinMode(sensor, INPUT);
pinMode(sensoR, INPUT);
pinMode(LED, OUTPUT);
pinMode(LED1, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(13, OUTPUT);
pinMode(RECV_PIN, INPUT);
pinMode(LOL, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value);
}
if (results.value == 16753245) {
lcd.clear();//wir löschen das Geschriebene
lcd.setCursor(0, 0);//wir setzen den Cursor in Spalte 1 und in Zeile 1 (Wir beginnen beim Zählen immer bei "Null")
lcd.print("ALARMANLAGE");//wir schreiben in die erste Zeile
lcd.setCursor(0, 1);//wir setzen den Cursor in Spalte 1 und in Zeile 2
lcd.print("AN!");//wir schreiben in die zweite Zeile
digitalWrite(LOL, HIGH);
delay(1000);
} else {
lcd.clear();//wir löschen das Geschriebene
lcd.setCursor(0, 0);//wir setzen den Cursor in Spalte 1 und in Zeile 1 (Wir beginnen beim Zählen immer bei "Null")
lcd.print("ALARMANLAGE");//wir schreiben in die erste Zeile
lcd.setCursor(0, 1);//wir setzen den Cursor in Spalte 1 und in Zeile 2
lcd.print("AUS!");//wir schreiben in die zweite Zeile
delay(1000);
digitalWrite(LOL, LOW);
}
if (results.value == 16753245) {
if (digitalRead(sensor) == HIGH) {
digitalWrite(LED1, HIGH);
digitalWrite(LED, LOW);
lcd.clear();//wir löschen das Geschriebene
lcd.setCursor(0, 0);//wir setzen den Cursor in Spalte 1 und in Zeile 1 (Wir beginnen beim Zählen immer bei "Null")
lcd.print("ALARM!!!!");//wir schreiben in die erste Zeile
lcd.setCursor(0, 1);//wir setzen den Cursor in Spalte 1 und in Zeile 2
lcd.print("SMS AN BESITZER");//wir schreiben in die zweite Zeile
digitalWrite(leds,HIGH);
delay(100);
digitalWrite(leds,LOW);
delay(100);
digitalWrite(leds,HIGH);
delay(100);
digitalWrite(leds,LOW);
delay(1000);//wir warten 1000 Millisekunden(1 Sekunde)
irrecv.resume();
if (results.value == 16724175) {
digitalWrite(LED1, LOW);
digitalWrite(LED, LOW);
lcd.clear();//wir löschen das Geschriebene
lcd.setCursor(0, 0);//wir setzen den Cursor in Spalte 1 und in Zeile 1 (Wir beginnen beim Zählen immer bei "Null")
lcd.print("ALARMANLAGE");//wir schreiben in die erste Zeile
lcd.setCursor(0, 1);//wir setzen den Cursor in Spalte 1 und in Zeile 2
lcd.print("AUS");//wir schreiben in die zweite Zeile
delay(1000);//wir warten 1000 Millisekunden(1 Sekunde)
digitalWrite(LOL , LOW);
}
}
}
}
System 2: Alarmanlage mit Bewegungsmelder 2
Material:
- 1 Arduino Mega
- 1 Lautsprecher
- 1 Led
- 1 330 Ohm Widerstand
- 1 Schalter
- 1 1 K Ohm Widerstand
- 1 Bewegungsmelder
- einige Kabel
Aufbau:
Der Lautsprecher geht an Pin 5 und Gnd. Die Led geht an Pin 3 und an Gnd und dazwischen ist ein Widerstand von 330 Ohm. Der Schalter ist an Gnd und an Pin 10 gesteckt. Er wird auch über 5 V geschleift, dazwischen ist ein Widerstand von 1 K Ohm. Der Bewegungsmelder ist an 5 V, an Gnd und an Pin 7 gesteckt.
Der Code:
int piezo = 5;
int sensor = 7;
int taster = 10;
int zwei = 0;
pinMode(ledPin, OUTPUT); // ich sage ob die Sache Informationen ausgibt oder bekommt
pinMode(piezo, OUTPUT);
pinMode(sensor, INPUT);
pinMode(taster, INPUT);
}
{
if(digitalRead(sensor) == HIGH) // wenn der Sensor eine Bewegung erkennt,...
{
zwei=1; // ...setzt er die Variable "zwei" auf 1 hoch
}
if (digitalRead(taster) == HIGH) // wenn durch den Schalter Strom fließt,...
{
zwei=2; // ...setzt er die Variable "zwei" auf 2 hoch
}
if (zwei==0) // wenn "zwei" 0 ist,...
{
digitalWrite(ledPin, HIGH); // ... dann geht die Led an
delay(10); // es wird 10 Millisekunden gewartet
digitalWrite(ledPin, LOW); // dann geht die Led wieder aus
delay(1000);
}
if (zwei==1) // wenn "zwei" 1 ist,...
{
digitalWrite(piezo, HIGH); // ... dann geht der Lautsprecher an
digitalWrite(ledPin, HIGH); // und die Led geht an
}
if (zwei==2) // wenn "zwei" 2 ist,...
{
digitalWrite(piezo, LOW); // ... dann geht der Lautsprecher aus
digitalWrite(ledPin, HIGH); // und die Led fängt an zu blinken
delay(10);
digitalWrite(ledPin, LOW);
delay(1000);
}
}
System 3: Alarmanlage mit Alle meine Entchen
Material:
- Kabel
- Arduino
- Ultraschall
- Lautsprecher
Aufbau:
Man verbinde den Lautsprecher mit Pin 13 . Den Ultraschal verbinde man mit Pin 9,8.
Code:
int taster = 9;
int LPin = 13;
int ledpin2 = 8; //Der Anschluss der Status - LED geht an Pin 8
void setup() {
pinMode(sensor, INPUT);
pinMode(taster, INPUT);
pinMode(3, OUTPUT);
{
digitalWrite(3, HIGH);
delay(1000);
delay(200); // es soll 200 Millisekunden gewartet werden
noTone(LPin); // der Ton soll beendet werden
delay(20); // es soll 20 Millisekunden gewartet werden
tone(LPin, 294);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 330);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 349);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 392);
delay(400);
noTone(LPin);
delay(40);
tone(LPin, 392);
delay(400);
noTone(LPin);
delay(40);
tone(LPin, 440);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 440);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 440);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 440);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 392);
delay(400);
noTone(LPin);
delay(420);
tone(LPin, 440);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 440);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 440);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 440);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 392);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 349);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 349);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 349);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 349);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 330);
delay(400);
noTone(LPin);
delay(20);
tone(LPin, 330);
delay(400);
noTone(LPin);
delay(20);
tone(LPin, 392);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 392);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 392);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 392);
delay(200);
noTone(LPin);
delay(20);
tone(LPin, 262);
delay(800);
noTone(LPin);
delay(10000); // bevor alles wieder von vorne anfängt, soll der Arduino 10.000 Millisekunden warten
}
{
digitalWrite(3, LOW);
noTone(LPin);
}