Banner Ausblenden
Kleines Logo

Willkommen auf PSI-Online

Sie befinden sich in: Unterrichtsangebote Fächer Fachbereich III Informatik Arduino Sensorik Alarmanlage mit verschiedenen Systemen

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 trigger = 7;
int echo = 6;
int buzzerpin = 9;
int statusled = 13;
int alarmled = 8;
long dauer = 0;
long entfernung = 0;
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
  lcd.begin(16, 2);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(statusled, OUTPUT);
  pinMode(alarmled, OUTPUT);
  digitalWrite(statusled, HIGH);
}
void loop() {
  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH);
  delay(10);
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH);
  entfernung = (dauer / 2) * 0.03432;
  if (entfernung <= 15 )
  {
    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 trigger = 7;
int echo = 6;
int buzzerpin = 9;
int statusled=12;
int alarmled=3;
long dauer = 0;
long entfernung = 0;
void setup() {
  Serial.begin(9600);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(statusled,OUTPUT);
  pinMode(alarmled,OUTPUT);
  digitalWrite(statusled,HIGH);
}
void loop() {
  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH);
  delay(10);
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH);
  entfernung = (dauer / 2) * 0.03432;
  if (entfernung <= 15 )
  {
    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:

 

 

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 ledPin = 3; // ich definiere erst einmal die Begriffe
int piezo = 5;
int sensor = 7;
int taster = 10;
int zwei = 0;
void setup() {
  pinMode(ledPin, OUTPUT); // ich sage ob die Sache Informationen ausgibt oder bekommt
  pinMode(piezo, OUTPUT);
  pinMode(sensor, INPUT);
  pinMode(taster, INPUT);
}
void loop()
{
 
  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 sensor = 8;
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);
}
void loop() {
 
  if (digitalRead(sensor) == HIGH)
  {
    digitalWrite(3, HIGH);
    delay(1000);
 
    tone(LPin, 262); // es soll ein Ton von dem Lautsprecher gespielt werden, der die Tonhöhe 262 hat
    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

  }
 
  else
  {
    digitalWrite(3, LOW);
    noTone(LPin);
  }
  delay(1000); //Warte 1000 Millisekunden,bevor du die void loop neu startest.
}
 
 

 

 

Erstellt: Sebastian Grüttner (19.02.2017) Letzte Änderung: Jacob Busshart (28.06.2017)