Pages: [1] 2 3   Go Down
Author Topic: Alarmanlage  (Read 2874 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Hallo werte Arduino Gemeinde,

ich möchte mit dem Arduino UNU oder Arduino Mega eine Alarmanlage realisieren.
Hierbei sollen 3 Türen oder Fenster auf Öffnung Überwacht werden. Diese Eingänge sollen Ohmisch z.B mit 10 KOhm überwacht werden. Wird dann einer der Eingänge z.B größer oder kleiner 10 KOhm oder offen, sollen 2 Ausgänge vom Arduino den alarm geben. Beide Ausgänge sollen unabhängig nach Zeit die Alarmgeber
ansteuern, z.B eine Sirene(Zeit X) und eine Signalleuchte (Zeit Y). Desweiteren muss diese Alarmanlage über einen Eingang (Code Schloss oder Blockschloss) geschärft werden. Wenn z.B  die Kriterien der 3 Eingänge nicht gegeben sind (z.B  es liegen keine 10 KOhm der 3 Eingänge an)kann die Anlage nicht geschärft  werden.

Da ich noch purer Anfänger bin würde ich mich über jede Hilfe bzw. auch Ansatz zu diesem Thema freuen.


Besten Dank vorab
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21272
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo savana

Ich rate Dir eine komerzielle Alarmanlage zu kaufen. Das macht weniger Stress und funktioniert auf Anhieb. (es gibt solche zum Selbsteinbau mit den Sensoren die über Funk miteinander komunizieren). Da entfällt auch das Kabelziehen und schont die Nachbarn vor Fehlalarmen.

Viele Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Uwe,

Ich habe schon 2 Alarmanlagen Zuhause, zudem komme ich aus
diesem Bereich habe dies über viele Jahre Praktiziert .
Mir Persönlich geht es um das doing mit dem Arduino, ob dies möglich
Ist. Brauche ich vieleicht weitere Hardware um dies zu realisieren?
Wie sieht die programmier Logik dazu aus usw usw...
Ich möchte den Arduino nicht wirklich als Alarmanlage gebrauchen.
Ich würde mich über jeden Vorschlag zum realisieren einer Alarmanlage
freuen .
Besten Dank vorab. 

savage
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21272
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo savana

Ok, das ist was anderes, als Programmierübung ist es akzeptabel.
Es ist schwierig eine 100% sichere Anwendung zu schreiben und bei sicherheitsrilevanten Anwendungen, wie ein Alarmanlage, braucht es viel Erfahrung in Programmierung und Elektronik.

Um die Sensoren auf Kurzschluß oder Unterbrechung kontrollieren zu können braucht es, wie Du sagst einen Widerstand im Meßkreis in Serie zum Schalter, der ein Öffnen oder Glasbruch anzeigt. Mit einem 2. Widerstand machst Du einen Spannungsteiler und mißt den Wert an einem analogen Eingang. So hast Du 3 Werte (ca 0V, ca 5V und einen Wert zwischendrin).  
Es gibt das das Multiplexboard das 6 Analoge Eingänge in 48 Eingänge multiplext. So kannst Du reichlich Sensoren anschließen.
Einfach der Reihe nach die Eingänge abfragen.
Viele Grüße Uwe
Logged

Offline Offline
Sr. Member
****
Karma: 8
Posts: 359
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Savana,
ich finde das Thema interessant, hab mir auch schon mal Gedanken darüber gemacht, allerdings wollte ich die Räume
über Bewegungsmelder überwachen. Wenn ich mir ansehe, wie Alarmanlagen vor 10 oder 15 Jahren aussahen und dann
überlege, das dies heute über einen Arduino nur mit Programmierung möglich ist. Reizt mich schon, so was mal umzusetzen.
Man kann sich ja mal austauschen, welche "Eventualitäten" man beim Programmieren berücksichtigen muß.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

finde ich gut dass  Du auch zu diesem Thema Interesse hast.
Bewegungsmelder sind kein Problem haben ja einen Kontakt wenn dieser sich ändert, wird Alarm ausgelöst.
Hast du auf dem Gebiet Programmierung Erfahrung sammeln können ??
Ich Denke die Vorgabe die ich zu Anfangs gemacht habe dürfte schon viel Know-how benötigen.
Eine Konventionelle Alarmanlage der VDS Klasse A,B, oder gar C zu realisieren ist eine sehr große Herausforderung .
Für mich Persönlich soll es mehr rudimentär sein, soll also relativ einfach aufgebaut sein.
Vielleicht sollte zu Anfangs die Widerstandsüberwachung weggelassen werden, und mehr der Programmier Logik zuwenden. Wenn Eingang 2 aktiviert wird soll die Anlage in einen Scharf Zustand gesetzt werden, wenn während des Scharf  Zustands Eingang 1(Bewegungsmelder) geöffnet wird, muss Ausgang 1 (Sirene) angesteuert werden, danach kann der Alarm gelöscht werden durch Eingang 3(Löschtaster) die Anlage wird dadurch in den Zustand unscharf gebracht und der Spaß kann von neuem beginnen usw usw..
Nenne mir bitte auch deine Vorstellung von einer Alarmanlage.

Gruß savana


Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21272
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Kontrolle des Widerstands ist nicht schwer. Sagen wir Du hast einen Widerstand von 10kOhm in Reihe zum Schalter der das Fenster überwacht. Der Schalter ist bei geschlossenem Schalter auch geschlossen. Der Schalter ist zwischen Masse und  einen Analogen Eingang geschaltet. Vom Eingang geht noch ein Widerstand von 10kOhm auf +5V.
Bei geschlossenem Schalter hast Du ca 2,4V und liest auf dem analogen Eingang etwas um die 512.

StatusEingang1 = analogRead(Eingang1);
If(  StatusEingang1 <400 || StatusEingang1>620)
{
// Fenster geöffnet -> Alarmbearbeitung
}

Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Uwe,
zunächst besten Dank für Deine Hilfe.
Habe mir deinen Ansatz angeschaut und versucht diesen umzusetzen, beim kompilieren des Quell Code Ist kein  Fehler aufgetreten, aber beim Testen der Funktion Alarm am Analog Eingang wurde kein Alarm ausgelöst an Pin13.
Programm Logik ??

Vielleicht hast Du eine Idee dazu.

Besten Dank vorab

Gruß savana

/*******************
*   Alarmanlage    *
********************/

int StatusEingang1 = A0;
int ledPinAlarm = 13;
int Alarmlinie1 = 0;
 
void setup()         // Initialisierung 
{                             
 pinMode(ledPinAlarm,OUTPUT);  // LED-Pin als Alarm


void loop()           // Endlosschleife

   Alarmlinie1=analogRead(StatusEingang1);   // Alarmlinie wird eingelesen Widerstandswert
 
 
  if (StatusEingang1 <400 || StatusEingang1>620) // Abfrage ob kleiner oder größer Wert 512
  {
   digitalWrite(ledPinAlarm, HIGH);   // Alarm LED einschalten für 5 sec
   delay(5000);       
  }
 
  else
  {
   digitalWrite(ledPinAlarm, LOW);   // Alarm LED Aus
  }

}












Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21272
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

2 Vorschläge fürs Debuguing:

* Gib den gelesenen Wert des Analogeingangs über serielle Schnittstelle auf das Terminal aus; so weißt du wo du bist.
* Verwende ein Potentiometer um ein Alarmquelle zu simulieren und so einfach alle Analogwerte produzieren zu können; 10 Kohm Poti an Masse und +5V; Schleifer auf  AnalogEingang.

Code-Vorschlag:
Code:
/*******************
*   Alarmanlage    *
********************/

int StatusEingang1 = A0;
int ledPinAlarm = 13;
int Alarmlinie1 = 0;
 
void setup()         // Initialisierung
{                            
 pinMode(ledPinAlarm,OUTPUT);  // LED-Pin als Alarm
 Serial.begin(9600);
}

void loop()           // Endlosschleife
{
   Alarmlinie1=analogRead(StatusEingang1);   // Alarmlinie wird eingelesen Widerstandswert
  Serial.println (Alarmlinie1);
 
  if (StatusEingang1 <400 || StatusEingang1>620) // Abfrage ob kleiner oder größer Wert 512
  {
   digitalWrite(ledPinAlarm, HIGH);   // Alarm LED einschalten für 5 sec
   delay(5000);      
  }
  else
  {
   digitalWrite(ledPinAlarm, LOW);   // Alarm LED Aus
  }
}
Da wirst Du sehen, daß die Werte korrekt eingelesen werden.

Dann nach einiger Fustration, noch 2 Posts wird die jemad sagen, daß die Variable Alarmlinie1 nicht die gleiche Variable ist wie StatusEingang1 (die Du in der if anweisung kontrollierst).   smiley-wink smiley-wink smiley-wink

Noch 1 Vorschlag:  
  
Code:
digitalWrite(ledPinAlarm, HIGH);   // Alarm LED einschalten für 5 sec
   delay(5000);
 

Das delay(5000)  blockiert die das Programm an dieser stelle für 5 Sekunden.

Viele Grüße Uwe  smiley-cool
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Uwe,

habe die Fehler behoben, habe mir mit Serial Monitor die Werte angesehen und mit mit einem 10 KOhm Poti abgeglichen auf den Wert 512.
Soweit so gut danach habe ich im Quell Code noch die Fehler beseitigt.
Und siehe da es Funktioniert je nach dem wie ich das Poti eingestellt habe hatte ich einen Alarm an Pin13.
Habe auch dazu die Spannung Parallel gemessen bei ca 2.5V ist kein Alarm wie Du schon gesagt hast.
Was mir aber beim Serial Monitor aufgefallen ist, das nach der Änderung an meinem Quell code der Serial Monitor nur noch 0 anzeigt, egal wie das Poti eingestellt ist.

anbei den aktualisierten Quell Code

Gruss savana

Code:

/*******************
*   Alarmanlage    *
********************/

int StatusEingang1 = A0;
int ledPinAlarm = 13;
int Alarmlinie1 = 0;

 
void setup()         // Initialisierung
{                             
 pinMode(ledPinAlarm,OUTPUT);  // LED-Pin als Alarm
 Serial.begin(9600);
}

void loop()           // Endlosschleife
{
   StatusEingang1=analogRead(Alarmlinie1);   // Alarmlinie wird eingelesen Widerstandswert
   Serial.println (Alarmlinie1);
 
  if (StatusEingang1 <400 || StatusEingang1>620) // Abfrage ob kleiner oder größer Wert 512
  {
   digitalWrite(ledPinAlarm, HIGH);   // Alarm LED einschalten für 5 sec
         
  }
  else
  {
   digitalWrite(ledPinAlarm, LOW);   // Alarm LED Aus
  }
}
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Uwe,

habe soeben den Quell Code nochmals überflogen, habe jetzt auch diesen Gefunden habe die Variable StatusEingang1 geändert sie Code unten.

besten Dank nochmal für die Hilfe

Gruss savana

Code:
Serial.println (StatusEingang1);

Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21272
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

savana, Du bist mir heute etwas zu kryptisch, daß ich Dich verstehen könnte.  smiley-wink smiley-wink smiley-wink
Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Uwe,

sorry, ich glaube ich muss jetzt schlafen hatte nur 2 Stunden Schlaf die letzte Nacht.

Besten dank nochmal für die Hilfe.

Gruss savana
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21272
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-wink smiley-wink smiley-wink
Gute Nacht
Logged

Offline Offline
Sr. Member
****
Karma: 8
Posts: 359
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Savana,
was man auch noch berücksichtigen sollte, z.B. das scharf stellen an mehreren Stellen und vor
allem auch eine gewisse Zeitverzögerung beim Auslösen des Alarms. Ich will ja wenigstens Zeit genug
haben, die Anlage zu starten oder zu beenden, wenn ich das Haus betrete oder verlasse.
Ich setzt man voraus, das der Schalter dafür im Haus ist und nicht draußen angebracht ist.
Logged

Pages: [1] 2 3   Go Up
Jump to: