Bewegungsmelder Falle

Ich möchte eine Betonrohrfalle bauen die mit einem Bewegungsmelder ausgelöst wird und dann eine SMS sendet.

meine Überlegungen bislang:

Ein Bewegungsmelder gibt über ein Relay 5v an den VIN Pin vom Arduino. Der Arduino ist so Programmiert die zwei Servos die Fallklappen auslösen wenn er eingeschaltet wird. Der Bewegungsmelder hat eine Zeiteinstellung die die Stromverbindung bis zu 10 Minuten aufrechterhält. In dieser Zeit schickt der Arduino SMS über ein SIM Modul an die Handys oder ruft diese an.
Nach 10 Minuten schaltet sich alles wieder aus.

Als Stromversorgung soll ein 12v Motorrad Blei Akku dienen denn die habe ich noch im Regal. Mit der Spannungsregelung werde ich mich noch beschäftigen. vielleicht kann man ein Solarpanel zum Aufladen installieren.

Das habe ich bislang umgesetzt:

-Der Code.

#include <Servo.h>
#include <ServoPlus.h>

int ZU = 0 ;
int AUF = 0 ;
int z = 0 ;
boolean __ardublockDigitalReadPULLUP(int pinNumber)
{
 pinMode(pinNumber, INPUT_PULLUP);
 return digitalRead(pinNumber);
}


boolean __ardublockDigitalRead(int pinNumber)
{
 pinMode(pinNumber, INPUT);
 return digitalRead(pinNumber);
}


void auf();
//libraries at http://duinoedu.com/dl/lib/grove/EDU_ServoPlus_GroveDupont/ 
ServoPlus monServoPlus3;
//libraries at http://duinoedu.com/dl/lib/grove/EDU_ServoPlus_GroveDupont/ 
ServoPlus monServoPlus2;
void zu();

void setup()
{
 Serial.begin(9600);
 pinMode( 8 , OUTPUT);
 monServoPlus3.brancher(3,0,180);

 monServoPlus2.brancher(2,0,180);

 ZU = 90 ;

 AUF = 0 ;

 z = 0 ;

}

void loop()
{
 Serial.print("h:");
 Serial.print(( z / 600 ));
 Serial.print(" ");
 Serial.print("m:");
 Serial.print(( z / 60 ));
 Serial.print(" ");
 Serial.print("s:");
 Serial.print(z);
 Serial.print(" ");
 Serial.println();
 z = ( z + 1 ) ;
 if (( ( z ) == ( 1 ) ))
 {
   zu();
 }
 if (__ardublockDigitalReadPULLUP(6))
 {
   digitalWrite(8 , HIGH);
   zu();
   delay( 500 );
   digitalWrite(8 , LOW);
 }
 if (__ardublockDigitalRead(5))
 {
   digitalWrite(8 , HIGH);
   auf();
   delay( 1000 );
 }
 delay( 1000 );
}

void auf()
{
 digitalWrite(8 , HIGH);
 monServoPlus3.ecrireAngle(AUF,1000); 
 delay( 50 );
 monServoPlus2.ecrireAngle(AUF,1000);
 digitalWrite(8 , LOW);
}

void zu()
{
 digitalWrite(8 , HIGH);
 monServoPlus3.ecrireAngle(ZU,1000); 
 delay( 50 );
 monServoPlus2.ecrireAngle(ZU,1000);
 digitalWrite(8 , LOW);
}

-Einen Auslösemechanismus für die klappen habe ich erstellt und gedruckt.

-Die Steckbrett Verdrahtung

-Die Stromversorgung mit einer 12v Batterie und einem Spannungsregler aus dem KFZ bereich. (ist der vielleicht zu ineffektiv?


Das fehlt noch:

-Das SIM900 Modul (ich muss auch noch Code dafür schreiben. Vielleicht sendet es alle "variable Zeit" eine SMS solange der PIR Sensor aktiviert ist. Das würde bedeuten eine SMS und dann nichts mehr = Fehlalarm. Mehrere SMS = Bewegung in der Falle.
Ich habe Module gesehen die Spannung messen können. Das kann der Arduino vor dem SMS senden erledigen und die Spannung mit der Nachricht versenden.
-Die Falle selber. Ich werde dafür 300er PVC Rohr nehmen.
-Die Klappen: Dafür habe ich noch V2A Bleche.
-Der Auslösemechanismus an der Falle.

Was ist das für ein Bewegungsmelder ?
Warum muss der ein Relais schalten ?
Vom Bewegungsmelder bitte einen Link (Hyperlink) posten, dann kann ich den auch ansehen.

Bewegungsmelder und die Relays sind aus diesem Starter Set.
Es muss nicht mit einem Reley sein. Was sind die alternativen ? Hauptsache der arduino verbraucht keinen Strom :stuck_out_tongue:

Arduino Starterset

Dein Link ist defekt.

Gruß Tommy

Tommy56:
Dein Link ist defekt.

Gruß Tommy

habe ihn ersetzt

kingpros:
Bewegungsmelder und die Relays sind aus diesem Starter Set.
Es muss nicht mit einem Reley sein. Was sind die alternativen ? Hauptsache der arduino verbraucht keinen Strom :stuck_out_tongue:

Arduino Starterset

Ok, der PIR sieht aus, wie alle anderen "Billigteile".
Ich habe da keinen mehr von, da die zu unzuverlässig sind.

Aber das sollte damit gehen.
Hast du mal gemessen, ob der Ausgang auch schaltet.
Ich glaube der muss bei Bewegung auf low gehen.
Dann könntest du damit einen P-Channel Mosfet schalten, der deinem Arduino Spannung liefert.
Aber bitte erst prüfen, wie der PIR schaltet.

welche Teile kaufst du denn ein oder kannst du empfehlen? Zuverlässigkeit ist ja sehr wichtig bei diesem Projekt.

Der PIR schaltet bei Bewegung auf HIGH.

kingpros:
welche Teile kaufst du denn ein oder kannst du empfehlen? Zuverlässigkeit ist ja sehr wichtig bei diesem Projekt.

Der PIR schaltet bei Bewegung auf HIGH.

Ich verwende in meinen Projekten nur noch diesen hier
Zwar ein wenig teurer, dafür aber sehr zuverlässig.

Erfordert allerdings ein wenig Achtung bei der Anpassung an den Arduino oder weitere Elektronik. Dazu immer Datenblatt lesen.
Bei deinem sollte das mit dem Schalten eines Transistors aber auch funktionieren.

Ich habe mir dein Bild nochmal angesehen.
Ein richtiges Schaltbild wäre da besser.
Aber so wie ich es sehe, hast du den Transistor falsch angeschlossen.
Den Emitter musst du auf GND schalten und das Relais am Kollektor gegen VCC.
Und die Freilaufdiode nicht vergessen.
Dann sollte auch deine Schaltung funktionieren.

HotSystems:
Ich verwende in meinen Projekten nur noch diesen hier
Zwar ein wenig teurer, dafür aber sehr zuverlässig.

Erfordert allerdings ein wenig Achtung bei der Anpassung an den Arduino oder weitere Elektronik. Dazu immer Datenblatt lesen.
Bei deinem sollte das mit dem Schalten eines Transistors aber auch funktionieren.

Kannst du kurz erläutern, was man anpassen muß für den Betrieb an einem Arduino?

edit: Hab schon selber die Antwort gefunden.

Steffmaster:
Kannst du kurz erläutern, was man anpassen muß für den Betrieb an einem Arduino?

edit: Hab schon selber die Antwort gefunden.

Ah...prima.
Dann kann ich mir das "Raussuchen" sparen.

Hallo kingpros, hast du dir die Schaltung mit dem Transistor mal angesehen.

Welchen Transistor verwendest du ?

Gibt es denn hier noch eine Antwort ?

Doch doch, PN2222a. Habe die Schaltung angepasst. (neues Foto)

Ich sehe kein neues Foto.
Das Fritzing Ding ist immer noch gleich.

HotSystems:
Ich sehe kein neues Foto.
Das Fritzing Ding ist immer noch gleich.

jetzt nicht mehr.
Ich habe den Transistor + durchschalten lassen. das war nicht richtig. Jetzt funktioniert es.

Ok, also jetzt funktioniert es.
Was mir auffällt, du hast 2 Schalter parallel zum Relaiskontakt, warum und warum 2 ?

HotSystems:
Ok, also jetzt funktioniert es.
Was mir auffällt, du hast 2 Schalter parallel zum Relaiskontakt, warum und warum 2 ?

Der Schalter ist dazu da um den Auslösemechanismus bedienen zu können wenn der PIR Sensor auf LOW ist.

kingpros:
Der Schalter ist dazu da um den Auslösemechanismus bedienen zu können wenn der PIR Sensor auf LOW ist.

Und warum 2 Schalter ?

HotSystems:
Und warum 2 Schalter ?

oh das ist natürlich Quatsch :smiley: das kommt davon wenn man immer nur kurz was dran macht.

Ich habe gerade versucht mit dem Elegoo MEGA 2560 R3 mein Programm auf den Arduino mini pro zu brennen.
Ich bin nach diesem tutorial vorgegangen. Leider bekomme ich eine lange Fehlermeldung.
kann mir jemand helfen?

Arduino: 1.8.7 (Windows 10), Board: "Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino:4:5: error: redefinition of 'int ZU'

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falle.ino:4:5: note: 'int ZU' previously defined here

 int ZU = 0 ;

     ^

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino:5:5: error: redefinition of 'int AUF'

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falle.ino:5:5: note: 'int AUF' previously defined here

 int AUF = 0 ;

     ^

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino: In function 'boolean __ardublockDigitalReadPULLUP(int)':

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino:6:9: error: redefinition of 'boolean __ardublockDigitalReadPULLUP(int)'

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falle.ino:9:9: note: 'boolean __ardublockDigitalReadPULLUP(int)' previously defined here

 boolean __ardublockDigitalReadPULLUP(int pinNumber)

         ^

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino: In function 'boolean __ardublockDigitalRead(int)':

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino:13:9: error: redefinition of 'boolean __ardublockDigitalRead(int)'

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falle.ino:16:9: note: 'boolean __ardublockDigitalRead(int)' previously defined here

 boolean __ardublockDigitalRead(int pinNumber)

         ^

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino: At global scope:

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino:22:11: error: redefinition of 'ServoPlus monServoPlus3'

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falle.ino:25:11: note: 'ServoPlus monServoPlus3' previously declared here

 ServoPlus monServoPlus3;

           ^

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino:24:11: error: redefinition of 'ServoPlus monServoPlus2'

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falle.ino:27:11: note: 'ServoPlus monServoPlus2' previously declared here

 ServoPlus monServoPlus2;

           ^

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino: In function 'void setup()':

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino:27:6: error: redefinition of 'void setup()'

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falle.ino:30:6: note: 'void setup()' previously defined here

 void setup()

      ^

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino: In function 'void loop()':

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino:42:6: error: redefinition of 'void loop()'

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falle.ino:48:6: note: 'void loop()' previously defined here

 void loop()

      ^

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino: In function 'void auf()':

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino:60:6: error: redefinition of 'void auf()'

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falle.ino:105:6: note: 'void auf()' previously defined here

 void auf()

      ^

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino: In function 'void zu()':

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falleferz´t.ino:69:6: error: redefinition of 'void zu()'

C:\Users\Hergen\Documents\Arduino\Meine Codes\in Arbeit\Falle\Falle.ino:96:6: note: 'void zu()' previously defined here

 void zu()

      ^

exit status 1
Fehler beim Kompilieren für das Board Arduino Pro or Pro Mini.

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.