Hallo,
ich habe einen Arduino Uno mit dem Ithead GSM Modul.
Ich würde gerne per SMS Relais schalten, z. B. mit einem T als SMS-Text Relais1 und mit einem G Relais2.
Folgenden Sketch benutze ich:
#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"
SMSGSM sms;
boolean started=false;
char smsbuffer[1];
char n;
char pos;
char error;
int Relais1=4;
int Relais2=5;
char Stefan = "+49175XXXXXXX";
void setup()
{
pinMode(Relais1, OUTPUT);
digitalWrite(Relais1, HIGH);
pinMode(Relais2, OUTPUT);
digitalWrite(Relais2, HIGH);
Serial.begin(9600);
Serial.println("GSM Shield testing.");
if (gsm.begin(2400))
{
Serial.println("\nstatus=READY");
started=true;
}
if(started)
{
for(int i=1; i<21; i++)
{
Serial.print("Loesche ");
Serial.println(word(i));
sms.DeleteSMS(i);
}
}
};
void loop()
{
if (started)
{
pos=sms.IsSMSPresent(SMS_UNREAD);
if (pos)
{
Serial.println("SMS empfangen");
error = sms.GetSMS(pos, n, smsbuffer, 1);
Serial.print("Pos: ");
Serial.println(word(pos));
Serial.print("Nummer: ");
Serial.println(n);
Serial.print("Text: ");
Serial.println(smsbuffer);
if (strcmp(n,Stefan)==0)
{
Serial.println("SMS auth.");
if (strcmp(smsbuffer,"0054")==0 || strcmp(smsbuffer,"0074")==0)
{
Serial.println("Tuer");
digitalWrite(Relais1, LOW);
delay(3000);
digitalWrite(Relais1, HIGH);
}
if (strcmp(smsbuffer,"0047")==0 || strcmp(smsbuffer,"0067")==0)
{
Serial.println("Garage");
digitalWrite(Relais2, LOW);
delay(3000);
digitalWrite(Relais2, HIGH);
}
}
delay(1000);
// Serial.println("Loesche SMS");
// error=sms.DeleteSMS(pos);
// Serial.print("Erg.: ");
// Serial.println(word(error));
}
delay(1000);
}
};
Zuerst wird das GSM-Modul initialisiert und die gespeicherten SMS auf der Karte gelöscht. Das funktioniert soweit. (nur zu Info: SMS senden geht, also das Modul ist in Ordnung)
Dann soll die Absenderhandynummer geprüft werden.
Anschließend der SMS-Text ausgewertet und entsprechend entweder Relais 1 oder 2 für 3 Sekunden eingeschaltet werden.
Wenn ich den Sketch mit dem Serial-Monitor verfolge, wird nicht einmal meine Handy-Nummer erkannt, geweige den der Text, so dass ein Relais schaltet. Die SMS kommt an, sieht man im Monitor.
Ich hab meine Handynummer als Konstante gespeichert, sowie der Monitor sie ausgibt.
Des weiteren bin ich mir nicht sicher, das der gesendete Buchstabe als Hex-Code ankommt.
Hat jemand eine Idee, was ich falsch gemacht habe?
Danke.
Gruß
Stefan