INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Statusabfrage per Anruf
16.04.2016, 12:18 (Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2016 12:35 von Bitklopfer.)
Beitrag #1
Statusabfrage per Anruf
Hallo,

ich habe folgend mal einen Sketch der funktioniert aber ich bräuchte noch einen Tip oder verbesserungsvorschläge.

Der Anruf soll mit einer SMS erwiedert werden, tut er ja schon, aber an statt nur Betriebsbereit soll auch der Zustand der Sensoren übermittelt werden, also "Normal" oder "Alarm".......

Bin für alles Dankbar


Als Bonus würde ich gerne noch einen temperaturfühler (DS18B20) mit integrieren,
als alleinigen sketch kann ich temperaturen abfragen aber sobald ich ihn in diesen integriere funktioniert gar nichts mehr Huh



Code:
void setup()


{
boolean notConnected = true;
while (notConnected)
{
if (gsmAccess.begin(PINNUMBER) == GSM_READY)
notConnected = false;
}
{

pinMode(sensorWasserMelder, INPUT);
pinMode(sensorTürkontakt, INPUT);
pinMode(LEDrot, OUTPUT);
pinMode(LEDgelb, OUTPUT);

}
}

void loop()
{
switch (vcs.getvoiceCallStatus())
{
case IDLE_CALL:
break;
case RECEIVINGCALL:
vcs.hangCall();
delay(1000);
sms.beginSMS("+49162xxxxx");
sms.print("Betriebsbereit");


sms.endSMS();
delay(1000);
}
if (digitalRead(sensorWasserMelder)==HIGH && SMSsentWasserMelder == 0)
{
digitalWrite(LEDgelb,HIGH);
delay(1000);
sms.beginSMS("+49162xxxxxxx");
sms.print("pin1activ");
sms.endSMS();
delay(1000);
SMSsentWasserMelder=1;
}

else if (digitalRead(sensorWasserMelder)==LOW && SMSsentWasserMelder == 1)
{
SMSsentWasserMelder=0;
digitalWrite(LEDgelb,LOW);
}



if (digitalRead(sensorTürkontakt)==HIGH && SMSsentTürkontakt == 0)
{
digitalWrite(LEDrot,HIGH);
delay(1000);
sms.beginSMS("+49162xxxxxxx");
sms.print("pin2activ");
sms.endSMS();
delay(1000);
SMSsentTürkontakt=1;
}

else if (digitalRead(sensorTürkontakt)==LOW && SMSsentTürkontakt == 1)
{
SMSsentTürkontakt=0;
digitalWrite(LEDrot,LOW);
}
}

Edit by Mod, kuck so geht das mit dem Sourcecode wenn man das Code Tag "#" anklickt und hinterher Close Tag's ....sonst kommt gleich der Hilfsmod umme Ecke und beschimpft dich....Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.04.2016, 12:36
Beitrag #2
RE: Statusabfrage per Anruf
Bitte setze deinen Sketch in Code-Tags, dann können wir den auch besser lesen.
Danke

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.04.2016, 12:41 (Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2016 12:50 von rkuehle.)
Beitrag #3
RE: Statusabfrage per Anruf
Moin,

die if-Abfragen für Wassermelder und Türkontakt stehen außerhalb der Switch/case - Anweisung. Damit wird nicht auf einen eingehenden Anruf reagiert, sondern immer dann wenn die Bedingungen erfüllt sind. Das unabhängig davon ob ein Anruf einging.
Weiterhin würde ich die if - Abfragen nicht mit else verschachteln, sondern als selbständige/abgeschlossene Abfragen laufen lassen.
Im zweiten Case fehlt als Abschluss ein "break;" !
Frage: Woher kommen die SMSSent* Variablen? Sehe keine Deklaration.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.04.2016, 12:45
Beitrag #4
RE: Statusabfrage per Anruf
(16.04.2016 12:36)hotsystems schrieb:  Bitte setze deinen Sketch in Code-Tags, dann können wir den auch besser lesen.
Danke

....schon bemerkt, wer lesen kann usw....
Also sei lieb zu ihm....JA...Big Grin
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.04.2016, 13:38
Beitrag #5
RE: Statusabfrage per Anruf
(16.04.2016 12:41)rkuehle schrieb:  Moin,

die if-Abfragen für Wassermelder und Türkontakt stehen außerhalb der Switch/case - Anweisung. Damit wird nicht auf einen eingehenden Anruf reagiert, sondern immer dann wenn die Bedingungen erfüllt sind. Das unabhängig davon ob ein Anruf einging.
Weiterhin würde ich die if - Abfragen nicht mit else verschachteln, sondern als selbständige/abgeschlossene Abfragen laufen lassen.
Im zweiten Case fehlt als Abschluss ein "break;" !
Frage: Woher kommen die SMSSent* Variablen? Sehe keine Deklaration.

Grüße Ricardo

verstehe nicht ganz was du meinst, aktuell funktioniert er so wie er ist.......
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.04.2016, 13:58
Beitrag #6
RE: Statusabfrage per Anruf
Zitat:Der Anruf soll mit einer SMS erwiedert werden, tut er ja schon, aber an statt nur Betriebsbereit soll auch der Zustand der Sensoren übermittelt werden, also "Normal" oder "Alarm".......
Hatte ich so verstanden, dass der Sketch in der SMS neben "Betriebsbereit" auch noch die anderen Informationen aus den if-Anweisungen bei einem Anruf gleich mitsenden sollte.
Das mit dem break im zweiten case - Zweig sollte aber schon sein. Siehe hier: https://www.arduino.cc/en/Reference/SwitchCase
Zitat:aktuell funktioniert er so wie er ist.......
Ähm und wo lag dann das Problem?

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste