Hallo zusammen,
ich hab's ja bereits erwähnt dass ich zur Zeit an einem interessanten Alarmanlagenprojekt sitze. Ich stell euch am besten kurz mein Setup vor, wie oben schon erwähnt :
ein Arduino GSM Shield
ein Arduino Uno
neuerding ein Sparkfun microSD Shield
und ein PIR Sensor
eine RGB LED
und ein paar Kabel
et voila, das soll meine neue "WG" Alarmanlage werden.
Background : Bei uns wurde eingebrochen und ich dachte ich bau uns 3en in der WG mal eine interessante Lösung hierzu, ich rechne zwar nicht wirklich damit dass sich irgendwelche Herrschaften wieder hier rein verirren aber ich habe große Lust dieses Projekt zu verwirklichen und hierzu ne kleine Anleitung eventuell zu schreiben.
Es klappt auch alles wunderbar, der PIR Sensor erfasst Bewegungen, ne SMS wird gesendet, die RGB LED gibt mir den aktuellen Status an der kleinen Anlage aber das Abspeichern der Bewegungen in einer Textdatei klappt nicht so wirklich
Ich habe mir dazu extra einen Sparkfun microSD Shield besorgt. Der funktioniert zwar wunderbar wenn ich ihn mit dem Arduino alleine betreibe. Aber sobald ich ihn in mein System integriere dann spinnt er beim booten etwas rum. Genauer gesagt zeigt mir der Serial Monitor etwas verwirrendes auf ( Siehe Anhang )
An was könnte dies liegen ? Im Anhang befinden sich noch weitere Bilder meines kleinen Setups.
#include <GSM.h>
#include <SPI.h>
#include <SD.h>
File myFile;
#define PINNUMBER "6915"
GSM gsmAccess;
GSM_SMS sms;
const int chipSelect = 8;
int redPin = 11;
int greenPin = 5;
int bluePin = 9;
int anode = 6;
int dimmer = 20;
int ledtimer = 500;
int inputPin = 4;
int pirState = LOW;
int val = 0;
int freezetime;
char remoteNumber[20];
void setColor(int red, int green, int blue)
{
red = 255 - red;
green = 255 - green;
blue = 255 - blue;
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
void setup() {
Serial.begin(9600);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(inputPin, INPUT);
Serial.println("Alarmanlage startet...");
Serial.print("Initializing SD card...");
// On the Ethernet Shield, CS is pin 4. It's set as an output by default.
// Note that even if it's not used as the CS pin, the hardware SS pin alizing SD card...");
// (10 on most Arduino boards, 53 on the Mega) must be left as an output
// or the SD library functions will not work.
pinMode(SS, OUTPUT);
if (!SD.begin(chipSelect)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
myFile = SD.open("logger.txt", FILE_WRITE);
// if the file opened okay, write to it:
if (myFile) {
Serial.print("Writing to logger.txt...");
myFile.println("Starte Aufzeichnung.");
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
boolean notConnected = true;
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;
else
{
Serial.println("Nicht verbunden.");
delay(1000);
}
}
Serial.println("GSM online.");
Serial.println("System bereit.");
setColor(0, 255, 0); // green
}
void loop(){
val = digitalRead(inputPin);
if (val == HIGH) {
// hier LED
if (pirState == LOW) {
setColor(0, 255, 255);
Serial.println("Bewegung erfasst!");
if (myFile) {
Serial.print("Writing to logger.txt...");
myFile.println("Bewegung registriert und gespeichert.");
myFile.close();
Serial.println("done.");
} else {
Serial.println("error opening test.txt");
}
sms.beginSMS("0157XXXXXXXXX);
sms.print("Bewegung im Zimmer!");
sms.endSMS();
Serial.println("SMS wurde gesendet.");
Serial.println("Bewegungssensor wird fuer :");
Serial.println(freezetime/1000);
Serial.println("s eingefroren.");
delay(freezetime);
Serial.println("Bewegungssensor ist wieder aktiv.");
pirState = HIGH;
}
} else {
// hier LED
if (pirState == HIGH){
// we have just turned of
setColor(0, 255, 0); // green
Serial.println("Keine Bewegung.");
pirState = LOW;
}
}
}
Wäre für jede Hilfe, Tipp oder Verbesserungsvorschlag sehr dankbar.
Beste Grüße
Don
PS : Und kann mir mal einer Please sagen wie ich den Code hier richtig einfügen kann ? =)


