Alarmanlage mit Arduino UNO
Alarmanlage mit Arduino UNO
Kurz zur Funktion:
Mit der Funkfernbedienung lässt sich die Alarmanlage Ein- und Ausschalten. Beim Einschalten leuchtet die LED Grün auf, beim Ausschalten leuchtet Sie Rot auf. Wenn die Bewegungsmelder auslösen, ertönt über den Piezo Summer ein ca. 100dB lautes Signal. Das sollte bei den meisten Menschen ausreichen um wach zu werden. Wenn das noch nicht reicht, wird über ein Funksignal noch das Licht im Schlafzimmer eingeschalten.
Zum Aufbau:
Ich habe mir aus ein Stück Lochrasterplatine ein Shield für den Arduino gebaut, damit man Ihn im Fall eines defektes schneller austauschen kann. Ein Shield ist eine Zusatzplatine die man einfach auf den Arduino aufsteckt. Beim Funkempfänger habe ich mit eine Antenne selber gedreht, den mit einer Größeren Antenne und höhere Spannung erhält man eine Größere Reichweite, deswegen auch der Uno, da man hier ein Netzteil mit beispielsweise 12 Volt anschließen kann.
Die Beschaltung:
Bewegungsmelder 1 (OUT) Pin 10 am Arduino
Bewegungsmelder 2 (OUT) Pin 11 am Arduino
Rote LED Pin 9 am Arduino
Grüne LED Pin 8 am Arduino
Piezo Summer Pin 12 am Arduino
Funk Sender (DATA) Pin 3 am Arduino
Funk Empfänger (DATA) Pin 2 am Arduino
Der Programmcode:
#include
RCSwitch mySwitch = RCSwitch();
int Summer = 12;
int LEDrot = 9;
int LEDgruen = 8;
int bewegung1 = 10;
int bewegungsstatus1 = 0;
int bewegung2 =11;
int bewegungsstatus2 = 0;
boolean alarmEIN = false;
void setup() {
mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2
mySwitch.enableTransmit(3); // Transmitter is connected to Arduino Pin #3
pinMode(Summer, OUTPUT);
pinMode(LEDrot, OUTPUT);
pinMode(LEDgruen, OUTPUT);
pinMode(bewegung1, INPUT);
pinMode(bewegung2, INPUT);
}
void loop() {
if (mySwitch.available()) {
long value = mySwitch.getReceivedValue();
if (value == 4210709) {
alarmEIN = true;
digitalWrite(LEDrot, HIGH);
delay(100);
digitalWrite(LEDrot, LOW);
delay(100);
}
if (value == 4210708) {
alarmEIN = false;
digitalWrite(LEDgruen, HIGH);
delay(100);
digitalWrite(LEDgruen, LOW);
delay(100);
}
mySwitch.resetAvailable();
}
if (alarmEIN == true)
{
bewegungsstatus1 = digitalRead(bewegung1);
bewegungsstatus2 = digitalRead(bewegung2);
if (bewegungsstatus1 || bewegungsstatus2 == HIGH)
{
mySwitch.send(1130517, 24);
for (int i = 0; i < 50; i++) {
if (mySwitch.available()) {
long value = mySwitch.getReceivedValue();
if (value == 4210708) {
alarmEIN = false;
digitalWrite(LEDgruen, HIGH);
delay(100);
digitalWrite(LEDgruen, LOW);
delay(100);
break;
}
mySwitch.resetAvailable();
}
digitalWrite(Summer, HIGH);
delay(2000);
digitalWrite(Summer, LOW);
delay(500);
}
}
else
{
digitalWrite(Summer, LOW);
}
}
}
1x Arduino Uno
2x Bewegungsmelder
1x Funksender und Funkempfänger 433MHz https://amzn.to/2mf7yCu
2x LED (Rot und Grün)
1x Piezo Summer https://www.reichelt.de/Signalakustik/RMP-45SPDT-PT/3/index.html?ACTION=3&LA=446&ARTICLE=107805&GROUPID=6560&artnr=RMP-45SPDT+PT&SEARCH=piezo%2Bsummer%2B5v
1x Lochrasterplatine https://amzn.to/2lCRA1P
1x Kunststoffgehäuse https://amzn.to/2kU640l
1x Intertechno Funkfernbedienung ITK 200 https://amzn.to/2mwJGap
Jetzt im Onlineshop
-
DRV8825 Stepper Motor Driver
3,99 €