GSM TC35 Probleme & Nachricht um eine bestimmte Uhrzeit senden

Guten Tag,

ich habe das TC35 GSM-Modul und habe 2 große Probleme. Zum einen schaltet sich das GSM Modul nach einigen Stunden automatisch aus und das nicht, weil es zu wenig Spannung bekommt. Ich nutze das GSM Modul als Türalarm von 3 Türen und es sollte deswegen nicht auschalten, sondern permanent anbleiben. Zum anderen bekommt man nicht immer eine SMS, oder wenn man eine SMS bekommt, wird man zugespammt und bekommt Fehlalarme von Türen, die gar nicht offen sind. Anfangs lief das immer Problemlos und es hat getan was es soll. Ich weiß nicht ob das an der Software oder an der Hardware liegt. Das GSM Modul + der Arduino wurden schon 2x ausgetauscht und beide Probleme wiederholten sich. Weiß einer vielleicht woran das liegen könnte? Und könnte sich jemand vielleicht mal meinen Code ansehen? Vielleicht habe ich doch irgendwo einen kleinen Fehler drinnen.

Zur Hardwareverdrahtung: Ich habe 5V an das GSM Modul gelegt und einen 3,3V + Ground Pin vom GSM Modul an das Arduino. RX und TX sind richtig. Und ich habe 3 Ausgänge am Arduino die mit Ground verbunden werden müssen damit eine SMS versandt wird. (Bei mir handelt es sich um Magnetkontakte (Öffner)).

Außerdem möchte ich noch jeden Tag um 12 Uhr eine SMS gesandt bekommen, die mir nur bestätigt dass das GSM Modul angeblieben ist. Wenn keine SMS kommt, weiß ich ja bescheid, dass das GSM Modul mal wieder ausgegangen ist. Geht das nur mit einem RTC?

Liebe Grüße und schon einmal vielen Dank im vorraus!

Code:

#include <SoftwareSerial.h>

const byte rxPin = 4;
const byte txPin = 5;
const byte button = 2;
const byte button2 = 7;
const byte button3 = 8;
boolean magnetkontakt = false;
boolean magnetkontakt2 = false;
boolean magnetkontakt3 = false;

SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);

void setup()  {
  Serial.begin(9600);  
  mySerial.begin(9600);
  pinMode(button, INPUT_PULLUP);
  pinMode(button2, INPUT_PULLUP);
  pinMode(button3, INPUT_PULLUP);
}


void loop() {
 if (digitalRead(button) == HIGH && magnetkontakt == false) {   
    SendTextMessage();
    ShowSerialData();
    magnetkontakt = true;
   }
 else
 if (digitalRead(button) == LOW){
   magnetkontakt = false;
 }
 if (digitalRead(button2) == HIGH && magnetkontakt2 == false) {   
    SendTextMessage2();
    ShowSerialData();
    magnetkontakt2 = true;
   }
 else
 if (digitalRead(button2) == LOW){
   magnetkontakt2 = false;
 }
  if (digitalRead(button3) == HIGH && magnetkontakt3 == false) {   
    SendTextMessage3();
    ShowSerialData();
    magnetkontakt3 = true;
   }
 else
 if (digitalRead(button3) == LOW){
   magnetkontakt3 = false;
 }
}

  void SendTextMessage() {
    mySerial.print("AT+CMGF=1\r");
    delay(300);
    mySerial.println("AT+CMGS=\"MEINE NUMMER\"");
    delay(300);
    mySerial.print("Alarm PV");
    mySerial.print("\r");
    delay(300);
    mySerial.println((char)26);
    delay(2000);
  }

  void SendTextMessage2() {
    mySerial.print("AT+CMGF=1\r");
    delay(300);
    mySerial.println("AT+CMGS=\"MEINE NUMMER\"");
    delay(300);
    mySerial.print("Alarm BW2");
    mySerial.print("\r");
    delay(300);
    mySerial.println((char)26);
    delay(2000);
  }

  void SendTextMessage3() {
    mySerial.print("AT+CMGF=1\r");
    delay(300);
    mySerial.println("AT+CMGS=\"MEINE NUMMER\"");
    delay(300);
    mySerial.print("Alarm BW1");
    mySerial.print("\r");
    delay(300);
    mySerial.println((char)26);
    delay(2000);
  }

void ShowSerialData() {
  while (mySerial.available() != 0)
    Serial.write(mySerial.read());
}

Deine Schaltung, wie du den Arduino mit dem GSM verbunden hast, verstehe ich nicht.

Poste bitte ein Schaltbild, damit das für alle verständlich wird.

Das Versenden der SMS zu einer bestimmten Zeit, geht am einfachsten mit einer RTC.

Ich hoffe man erkennt alles, da es kein TC35 bei fritzing gab, habe ich ein SIM800L verwendet. Und die Schalter als Reedkontakt Öffner sehen. Imgur: The magic of the Internet

Sturmfront:
Ich hoffe man erkennt alles, da es kein TC35 bei fritzing gab, habe ich ein SIM800L verwendet. Und die Schalter als Reedkontakt Öffner sehen. Imgur: The magic of the Internet

Ich hatte doch gebeten, das Schaltbild zu posten, nicht auf einer fremden Seite zu verlinken.
So ist das Bild weg und keiner kann einen Zusammenhang sehen.

Ich weiß jetzt nicht ob du das selbe TC35 board hast wie ich, aber meins möchte einmal für 200ms oder 500ms glaube (bin mir grade nicht sicher) das der IGT pin auf ground gezogen wird um zu starten. Und mit 5V 3A DC läuft der auch nicht zuverlässig ich habe die Spannung ca auf 5,5V erhöht. Bei mir sieht der Aufbau so aus: (nicht auslachen ---> Kritik erwünscht. <--- ist das erste mal das ich mit nem Programm für Schaltpläne arbeite. Nicht irritieren lassen von den 6,2V das habe ich noch nicht umgeändert.)
Sehe grade noch das ich ein GND vergessen habe der GND vom TC35 und vom Ultraschalsensor muss noch mit dem Rest verbunden werden. (Verbessert.)

@TO
Ich habe mir jetzt am PC dein Schaltbild angesehen, leider ist da kaum etwas zu erkennen.
Da Bild ist sehr unscharf.

Entschuldigung, bei einem Klick auf das Bild bei Imgur wird das Bild vergrößert und ist somit scharf. Ich habe das jetzt hier reingepostet. Das GSM Modul läuft an einigen Tagen perfekt durch, ohne einmal auszuschalten. Aber manchmal schaltet der auch alle 30minuten ab. Ich probiere mal die Spannung auf 5,5V zu erhöhen und schaue dann, ob es sich gebessert hat.

Warum hast du denn die 3,3Volt mit dem Reset-Pin verbunden.
Das ist zumindest sehr ungewöhnlich.

Oh entschuldigung, habe ich vergessen zu erwähnen. Der Reset Pin sollte der 3.3V Pin am GSM Modul darstellen, damit sollte einfach der Arduino mit Spannung versorgt werden.

Sturmfront:
Oh entschuldigung, habe ich vergessen zu erwähnen. Der Reset Pin sollte der 3.3V Pin am GSM Modul darstellen, damit sollte einfach der Arduino mit Spannung versorgt werden.

Du musst nicht noch zusätzlich 3,3V am GSM anschließen. Zumal der Arduino nicht genug Strom dafür liefern kann.
Ich finde das schon sehr grenzwertig.

Poste mal einen Link zu deinem GSM-Modul.

Der Link: SainSmart Kompatibel Drahtlos Module Für GSM SIEMENS TC35 SMS Module Board UART/RS232: Amazon.de: Computer & Zubehör
Ich habe ja an das GSM Modul 5V gelegt. Ich habe mir dann nur vom GSM Modul die 3.3V abgegriffen und die an das Arduino gelegt, sodass ich mir eine Leitung bzw. Netzteil spare.

Sturmfront:
Der Link: https://www.amazon.de/SainSmart-Kompatibel-Drahtlos-Module-SIEMENS/dp/B006CHEUSI
Ich habe ja an das GSM Modul 5V gelegt. Ich habe mir dann nur vom GSM Modul die 3.3V abgegriffen und die an das Arduino gelegt, sodass ich mir eine Leitung bzw. Netzteil spare.

Wieso überhaupt 3,3 Volt, wenn du 5 Volt hast.
Warum nimmst du nicht 5 Volt für den Arduino ?

Und der 3 Volt Anschluss am Arduino ist ein Ausgang, kein Eingang.

Die 3,3V reichen aus um den Arduino mit Strom zu versorgen. Und es funktioniert dennoch, obwohl es ein Ausgang ist.

Sturmfront:
Die 3,3V reichen aus um den Arduino mit Strom zu versorgen. Und es funktioniert dennoch, obwohl es ein Ausgang ist.

Ok...wenn du den Arduino weiterhin außerhalb der Spezifikation betreiben möchtest, dann mach es.

Ich kann dir dann nicht weiter helfen.

Viel Erfolg.

Das Problem ist, wenn ich dem Arduino 5V gebe, treten die selben Probleme wieder auf. Die Spannungsunterschiede machen da keinen Unterschied.

Sturmfront:
Das Problem ist, wenn ich dem Arduino 5V gebe, treten die selben Probleme wieder auf. Die Spannungsunterschiede machen da keinen Unterschied.

Ich hoffe, dir ist klar, dass du dein System nie stabil zum Laufen bekommst, wenn du dich nicht an die Vorgaben in Datenblättern und Spezifikationen hältst.

Dein Problem ist nicht allein die Spannung, sondern auch deine Beratungsresistents.

Okay, dann gebe ich dem Arduino auch 5V. Ich hoffe das es dann wieder stabil läuft.