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
GSM Shield Probs.
11.06.2014, 19:31
Beitrag #1
GSM Shield Probs.
Ich habe das Problem wenn ich eine SMS bei SAbotage schicke wird nicht nur eine sondern eine ganze Menge veschickt. Kann man das eingrenzen?
die Zweite Frage ist ob man die Initieliesierung auch so machen kann das er nicht die warte. Also ob die GSM karte sich einewählt hat oder nicht ?

Hier erst mal der Code. :
Code:
#include <GSM.h>
#include <LiquidCrystal.h>
#include <DFR_Key.h>
#define PINNUMBER "2580"
//Pin assignments for SainSmart LCD Keypad Shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
//---------------------------------------------
GSM gsmAccess;
GSM_SMS sms;
DFR_Key keypad;
unsigned long SireneAn = 0;
unsigned long SireneInterval = 1800000;
int localKey = 0;
String keyString = "";
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5
  char remoteNumber[20] = "01755733753";
  char txtMsg1[200] = " Sieh haben einen Einbruchalarm. MFG Ihr MSC";
  char txtMsg2[200] = " Sie haben eine Sabotage.MFG Ihr MSC ";
void setup()
{
  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  Serial.println("SMS Messages Sender");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while (notConnected)
  {
    if (gsmAccess.begin(PINNUMBER) == GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized");
  char remoteNumber[20] = "01755733753";
  char txtMsg1[200] = " Sieh haben einen Einbruchalarm";
  char txtMsg2[200] = " Sie haben eine Sabotage ";
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Mobile Security");
  lcd.setCursor(0, 1);
  lcd.print("Center Ver. 01.14");
  delay(2500); //startvorgang beendet
  Serial.begin(9600);
  pinMode(22, INPUT_PULLUP); // Eingang Funk
  pinMode(23, INPUT_PULLUP); // Eingang LCD
  pinMode(24, INPUT_PULLUP); // Eingang BWM
  pinMode(25, INPUT_PULLUP); // Eingang Sabotage
  pinMode(26, INPUT_PULLUP); // Eingang SMS Telefon
  pinMode(27, INPUT_PULLUP); // Eingang Reserve
  pinMode(28, INPUT_PULLUP); // Eingang Reserve
  pinMode(29, INPUT_PULLUP); // Eingang Reserve
  pinMode(30, INPUT_PULLUP); // Eingang Reserve
  pinMode(31, INPUT_PULLUP); // Eingang Reserve
  pinMode(32, INPUT_PULLUP); // Eingang Reserve
  pinMode(33, INPUT_PULLUP); // Eingang Reserve
  pinMode(34, INPUT_PULLUP); // Eingang Reserve
  pinMode(35, INPUT_PULLUP); // Eingang Reserve
  pinMode(36, INPUT_PULLUP); // Eingang Reserve
  pinMode(37, INPUT_PULLUP); // Eingang Reserve
  pinMode(38, INPUT_PULLUP); // Eingang Reserve
  pinMode(39, INPUT_PULLUP); // Eingang Reserve
  pinMode(40, INPUT_PULLUP); // Eingang Reserve

  pinMode(41, OUTPUT); //
  pinMode(42, OUTPUT); //
  pinMode(43, OUTPUT); //
  pinMode(44, OUTPUT); //
  pinMode(45, OUTPUT); //
  pinMode(46, OUTPUT); //
  pinMode(47, OUTPUT); // Ethernet Störung
  pinMode(48, OUTPUT); // GSM Störung
  pinMode(49, OUTPUT); // GAS Alarm LCD
  pinMode(50, OUTPUT); // ALARM LCD
  pinMode(51, OUTPUT); // Sabotage LED
  pinMode(52, OUTPUT); // Sirene
  pinMode(53, OUTPUT); // Scharf LED

}

void loop(){
  //Eingaenge lesen
  int sensorS = digitalRead(22);// Scharf Funk
  int sensorA = digitalRead(23);// Scharf LCD
  int bwm = digitalRead(24); // Alarm BWM
  int sab = digitalRead(25);// Sabotage
  int alarm = digitalRead(53); // S

  if (sensorS == HIGH && sensorA == HIGH) {
    digitalWrite(53, HIGH);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("Unscharf");
    delay(250); //

  }
  else {
    digitalWrite(53, LOW);
    lcd.clear();
    lcd.setCursor(4, 1);
    lcd.write("Scharf");


  }
  if (bwm == HIGH && alarm == LOW)
  {
    digitalWrite(52, LOW);
    SireneAn = millis();
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("ALARM");
    sms.beginSMS(remoteNumber);
    sms.print(txtMsg1);
    sms.endSMS();
    }
  if (digitalRead(52) == LOW && (millis() - SireneAn > SireneInterval || sensorS == HIGH || sensorA == HIGH))
  {
    digitalWrite(52, HIGH);
  }


  if (sab == HIGH )
  {
    digitalWrite(51, LOW);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.write("Sabotage");
    sms.beginSMS(remoteNumber);
    sms.print(txtMsg2);
    sms.endSMS();
      }
  else {
    digitalWrite(51, HIGH);
  }

}

wer andern eine grube gräbt ist selbst ein schwein!
Config 1 : Arduino Mega R3,Arduino GSM Shield
Config 2 : Saint Smart Arduino Mega ,Saint Smart Ethernet Shield,Saint Smart LCD Shield
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2014, 01:15
Beitrag #2
RE: GSM Shield Probs.
Moin,

welche SMS kommt mehrfach ? ALARM oder Sabotage ?
Der Code bringt jetzt schon einen CompilerfehlerHuh
Welche Library benutzt du? Link?

Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2014, 15:08
Beitrag #3
RE: GSM Shield Probs.
Sabotage kommt öfters.
Du kannst Liquid Cristal und DFR Key Löschen Brauchst du nicht.

wer andern eine grube gräbt ist selbst ein schwein!
Config 1 : Arduino Mega R3,Arduino GSM Shield
Config 2 : Saint Smart Arduino Mega ,Saint Smart Ethernet Shield,Saint Smart LCD Shield
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2014, 19:02
Beitrag #4
RE: GSM Shield Probs.
Hallo Imgrish,

ich habe den Code bzgl. Speicher ein wenig angepasst.
Alle anderen Änderungen findest du per ///***

Grüße RK

Code:
#include <GSM.h>
#include <LiquidCrystal.h>
#include <DFR_Key.h>
#define PINNUMBER "2580"
//Pin assignments for SainSmart LCD Keypad Shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
//---------------------------------------------
GSM gsmAccess;
GSM_SMS sms;
DFR_Key keypad;
unsigned long SireneAn = 0;
unsigned long SireneInterval = 1800000;
String keyString = "";
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5
const char remoteNumber[20] = "01755733753";
const char txtMsg1[44] = " Sie haben einen Einbruchalarm. MFG Ihr MSC";
const char txtMsg2[37] = " Sie haben eine Sabotage.MFG Ihr MSC";
///*** Variable sagt ob Message gesendet
boolean messWasSend = false;
void setup()
{
  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  Serial.println(F("SMS Messages Sender"));

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  ///*** Ohne warten bis GSM bereit

  gsmAccess.begin(PINNUMBER);

  Serial.println(F("GSM initialized"));
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(F("Mobile Security"));
  lcd.setCursor(0, 1);
  lcd.print(F("Center Ver. 01.14"));
  delay(2500); //startvorgang beendet
  Serial.begin(9600);
  pinMode(22, INPUT_PULLUP); // Eingang Funk
  pinMode(23, INPUT_PULLUP); // Eingang LCD
  pinMode(24, INPUT_PULLUP); // Eingang BWM
  pinMode(25, INPUT_PULLUP); // Eingang Sabotage
  pinMode(26, INPUT_PULLUP); // Eingang SMS Telefon
  pinMode(27, INPUT_PULLUP); // Eingang Reserve
  pinMode(28, INPUT_PULLUP); // Eingang Reserve
  pinMode(29, INPUT_PULLUP); // Eingang Reserve
  pinMode(30, INPUT_PULLUP); // Eingang Reserve
  pinMode(31, INPUT_PULLUP); // Eingang Reserve
  pinMode(32, INPUT_PULLUP); // Eingang Reserve
  pinMode(33, INPUT_PULLUP); // Eingang Reserve
  pinMode(34, INPUT_PULLUP); // Eingang Reserve
  pinMode(35, INPUT_PULLUP); // Eingang Reserve
  pinMode(36, INPUT_PULLUP); // Eingang Reserve
  pinMode(37, INPUT_PULLUP); // Eingang Reserve
  pinMode(38, INPUT_PULLUP); // Eingang Reserve
  pinMode(39, INPUT_PULLUP); // Eingang Reserve
  pinMode(40, INPUT_PULLUP); // Eingang Reserve

  pinMode(41, OUTPUT); //
  pinMode(42, OUTPUT); //
  pinMode(43, OUTPUT); //
  pinMode(44, OUTPUT); //
  pinMode(45, OUTPUT); //
  pinMode(46, OUTPUT); //
  pinMode(47, OUTPUT); // Ethernet Störung
  pinMode(48, OUTPUT); // GSM Störung
  pinMode(49, OUTPUT); // GAS Alarm LCD
  pinMode(50, OUTPUT); // ALARM LCD
  pinMode(51, OUTPUT); // Sabotage LED
  pinMode(52, OUTPUT); // Sirene
  pinMode(53, OUTPUT); // Scharf LED

}

void loop() {
  //Eingaenge lesen
  int sensorS = digitalRead(22);// Scharf Funk
  int sensorA = digitalRead(23);// Scharf LCD
  int bwm = digitalRead(24); // Alarm BWM
  int sab = digitalRead(25);// Sabotage
  int alarm = digitalRead(53); // S

  if (sensorS == HIGH && sensorA == HIGH) {
    digitalWrite(53, HIGH);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.print(F("Unscharf"));
    delay(250); //
  }
  else {
    digitalWrite(53, LOW);
    lcd.clear();
    lcd.setCursor(4, 1);
    lcd.print(F("Scharf"));
  }
  if (bwm == HIGH && alarm == LOW)
  {
    digitalWrite(52, LOW);
    SireneAn = millis();
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.print(F("ALARM"));
    sms.beginSMS(remoteNumber);
    sms.print(txtMsg1);
    sms.endSMS();
  }
  if (digitalRead(52) == LOW && (millis() - SireneAn > SireneInterval || sensorS == HIGH || sensorA == HIGH))
  {
    digitalWrite(52, HIGH);
  }
  ///*** Wenn Sabotage und Message noch nicht raus
  if (sab == HIGH && messWasSend == false)
  {
    digitalWrite(51, LOW);
    lcd.clear();
    lcd.setCursor(5, 0);
    lcd.print(F("Sabotage"));
    sms.beginSMS(remoteNumber);
    sms.print(txtMsg2);
    sms.endSMS();
    ///*** Message wurde gesendet
    messWasSend = true;
  }
  else {
    digitalWrite(51, HIGH);
    ///*** Message wurde noch nicht gesendet - reset
    messWasSend = false;
  }
}

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2014, 21:59
Beitrag #5
RE: GSM Shield Probs.
Also ich habe das mal so aufgenommen. Aber das Problem belibt weiterhin. Solane ein Alarm ansteht. Sei es Sabotage oder Einbruch sendet der ununterbrochen SMS.
So eigentlich nicht Schlimm solange Vodafone NE SMS Flat anbietet ^^.
Aber auf Meinem Handy Lästig.
Ich glaube das Problem ist das es in der Loop Schleife hängt weil er ja dauernd den Status neu Abfragt.

wer andern eine grube gräbt ist selbst ein schwein!
Config 1 : Arduino Mega R3,Arduino GSM Shield
Config 2 : Saint Smart Arduino Mega ,Saint Smart Ethernet Shield,Saint Smart LCD Shield
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2014, 23:40
Beitrag #6
RE: GSM Shield Probs.
Yo, da hab ich nicht bis ganz zu Ende gedacht.
Das
Code:
///*** Message wurde noch nicht gesendet - reset
    messWasSend = false;
muß natürlich wieder raus, sonst schaltet er ja wieder auf "nicht gesendet" und und das würde wieder dem
Code:
if (sab == HIGH && messWasSend == false)
entsprechen. Und dahinter steht ja: sende die Message Huh
Zitat:...Sabotage kommt öfters.
...
Sei es Sabotage oder Einbruch sendet der ununterbrochen SMS.
Wann gibts nun das Problem bei beiden Ereignissen oder nur bei Sabotage?

Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.06.2014, 06:01
Beitrag #7
RE: GSM Shield Probs.
Also es kommt bei beiden dauernd. Der Unterschied zum Einbruch ist das er nur jedesmal bei Neuauslödung den Eingangs den BWM kommt.

wer andern eine grube gräbt ist selbst ein schwein!
Config 1 : Arduino Mega R3,Arduino GSM Shield
Config 2 : Saint Smart Arduino Mega ,Saint Smart Ethernet Shield,Saint Smart LCD Shield
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.06.2014, 19:41
Beitrag #8
RE: GSM Shield Probs.
Hallo Imgrish,

ich glaube ich weiß wo das problem liegt. Es ist nicht die eigentliche programmierung, sondern die Tatsache, daß bei Sabotage "sab" auf HIGH gesetzt wird. Im Code gibt es aber keine Stelle wo "sab" wieder auf "LOW" gesetzt wird.
Wenn du meine letzte Änderung eingearbeitet hast (was ich hoffe) wird daher die SMS gesendet und per messWasSend = true verhindert, daß der Vergleich "if (sab == HIGH && messWasSend == false)" zutrifft, sodaß die SMS nicht mehr gesendet wird obwohl "sab" noch HIGH ist.
Ich hoffe das war vertändlich Huh
Was passiert denn real wenn "sab" auf HIGH steht? Wird da gerade der Arduino geklaut? Kann "sab" wieder irgendwie auf LOW gesetzt werden?

Sag mal was dazu!

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 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  CP2102 und USB Host Shield ?? DL1AKP 0 45 01.12.2016 08:55
Letzter Beitrag: DL1AKP
  Arduino UNO und Ethernet Shield 2 POE und Fritzbox 3272 tr3 2 155 19.11.2016 10:46
Letzter Beitrag: tr3
  Kommunikation über das WiFi-Shield Flap 3 232 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Arduino Lan Shield - Visual Basic ZackiE 6 215 20.09.2016 19:26
Letzter Beitrag: ZackiE
  adafruit V2.3 Shield Hangloose 6 291 08.09.2016 17:13
Letzter Beitrag: rpt007
  Can-Bus Shield ok, aber keine Daten Clubsport 38 1.533 01.09.2016 14:17
Letzter Beitrag: Clubsport
  Arduino mega 2560 mit TFT LCD Touch Shield V1 Clemens55555 17 934 02.08.2016 20:51
Letzter Beitrag: Clemens55555
  SainSmart 3.2 TFT + 5" TFT/SD Shield + Due SAM3X8E ARM (Arduino Due) Techniker_UE 13 3.220 24.07.2016 14:34
Letzter Beitrag: Eichner
  PWM-Lüfter mit Adafruit Motor-Shield steuern? phischmi 9 448 22.07.2016 18:06
Letzter Beitrag: phischmi
  Arduino Uno+Motor Shield+Velleman Mustercode funktionieren nicht Dubidu 8 484 20.07.2016 19:05
Letzter Beitrag: Scheams

Gehe zu:


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