SIEMENS TC35 GSM Modul funktioniert nicht

Hallo.

Ich habe bei der Prepaid SIM Karte den PIN entfernt und die SIM Karte in das GSM Modul gelegt. Dieser bekommt auch Empfang. Jedoch kann ich keine SMS senden. Ich habe alles genau wie in dem Video gemacht: SMS versand mit einem GSM-Modul [German/Deutsch] - YouTube jedoch wenn ich das GSM Modul an meinen Computer anschließe und eine Serielle Verbindung über Putty herstelle, kann ich danach nichts eingeben. Habe dann das Programm auf meinen Arduino getan und Pin 2 mit Ground verbunden. Laut Seriellem Monitor hat er eine SMS versand jedoch bekomme ich keine. Kann mir jemand helfen? LG

Code:

void setup(){
 Serial.begin(9600); 
pinMode(2, INPUT_PULLUP); 
}
 void loop(){ 
if(digitalRead(2) == 0){ 
Serial.println("AT+CMGF=1"); 
delay(500); 
Serial.println("AT+CMGS=NUMMER"); 
delay(1000); 
Serial.print("Testnachricht"); 
delay(500);
 Serial.print(char(26));
 delay(5000); 
}
 }

Wie es aussieht hast du Pin D0 und D1, also RX und TX für das GSM genommen.
Da wirst du immer Probleme haben, da die mit dem USB-Serialwandler verbunden sind.

Nimm andere Pins und SoftwareSerial, dann sollte es funktionieren.
Was für eine Spannungsversorgung hast du am GSM ?
Und poste mal ein Schaltbild, wie du alles angeschlossen hast.

Ja habe RX und TX genommen wie bei dem Tutorial. Welche Pins soll ich denn verwenden, dachte es geht nur mit RX bzw. TX? Am GSM Modul liegen 5V vom Netzteil. Habe RX vom Arduino an TX vom GSM Modul. TX vom Arduino an RX am GSM Modul. Ground habe ich aufeinandergelegt und wenn ich dann mit dem Code PIN 2 an Ground vom GSM Modul lege, sollte der normalerweise eine SMS an die hinterlegte Nummer senden. Das mit SoftwareSerial habe ich noch nie gemacht. Geht das so? LG

include <SoftwareSerial.h>

SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);

void setup()  {
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  mySerial.begin(9600);
  pinMode(2, INPUT_PULLUP);
}
void loop(){
if(digitalRead(2) == 0){
mySerial.println("AT+CMGF=1");
delay(500);
mySerial.println("AT+CMGS=NUMMER");
delay(1000);
mySerial.print("Testnachricht");
delay(500);
 mySerial.print(char(26));
 delay(5000);
}
 }

Diese Tutorials sind meist großer Mist und stimmen selten.

Du musst bei deinem Sketch noch die genutzten Pins für SoftwareSerial definieren.
Pinmode brauchst du dafür nicht, das macht die Library.

Der Rest sieht soweit gut aus.
Ob das mit dem Netzteil ok ist, kann ich nicht sagen.
Welchen Strom liefert das und ganz wichtig, das GSM braucht einen Elko an VCC, damit es auch einbucht.

Alles klar, dank dir. Das Netzteil liefert einen Strom von 2,6A. Und wie viel Farad wären dafür ungefähr angemessen? LG

Ich habe immer 2200μF genommen.

Schade habe nur 200μF noch da, denke mal nicht dass das ausreicht. Probiere später mal alles aus und schreibe dann wieder wenn es funktioniert bzw. nicht funktioniert hat. LG

Hi

Auf jeden Fall besser als 0µF - schaden kann der Elko dort nicht - bestenfalls stören, wenn ein Dickerer da hin soll.

Daumenwert war, glaube, 1000µF pro A Ausgangsstrom.
Wenn Du nur 200mA brauchst, wärst Du mit 200µF schon 'dicke dabei'.

MfG

Es funktioniert leider immer noch nicht. Eingebucht hat er sich, erkenne ich an der zweiten LED. Habe folgenden Code benutzt:

#include <SoftwareSerial.h>

SoftwareSerial mySerial =  SoftwareSerial(0, 1);

void setup()  {
  mySerial.begin(9600);
  pinMode(2, INPUT_PULLUP);
}
void loop(){
if(digitalRead(2) == 0){
mySerial.println("AT+CMGF=1");
delay(500);
mySerial.println("AT+CMGS=0176******");
delay(1000);
mySerial.print("Testnachricht");
delay(500);
 mySerial.print(char(26));
 delay(5000);
}
 }

Du darfst nicht Pin D0 und Pin D1 verwenden, hatte ich doch schon geschrieben.

Nimm mit SoftwareSerial beliebig andere Pins.

Habe Pin 4 und 5 jetzt genommen und oben deklariert. Alles angeschlossen, probiert und leider wieder keinen Erfolg. Habe Pin 4 auf RX vom GSM Modul und Pin 5 auf TX vom GSM Modul gelegt. Ground habe ich wie vorhin schon aufeinander gelegt. Habe auch schon RX und TX getauscht. Bringt leider nix :confused:

Ich werde später in meinem "Fundus" nachschauen, ob ich etwas passendes für dein Projekt finde.
Bin aktuell noch mobil unterwegs und so aus dem Gedächtnis klappt es nicht. :wink:

Das währe sehr nett. Vielen dank :slight_smile:

Sturmfront:
Das währe sehr nett. Vielen dank :slight_smile:

Alles klar, ich melde mich später.

Um das abzukürzen, habe ich einen älteren Thread gefunden, da ging es auch um SMS-Versand.
In Post #18 ist eine funktionierende Routine.
Habe gesehen, dass bei die eine Anweisung an das GSM fehlt, bzw. falsch aufgebaut ist.

Habe seine Funktion "meldungMelder()" so kopiert wie sie da stand. Habe gsmSerial mit mySerial ersetzt und meine Handynummer eingetragen. Der obere Teil war ja für mich nicht wichtig, da ich ja meine eigene Bedingung habe wann eine SMS rausgehen soll. Leider geht es nicht

Dann wäre es wohl sinnvoll, anstelle der verbalen Beschreibung den aktuellen Sketch zu posten.
Genug Elko(s) für die Stromspitzen sind dran?

Gruß Tommy

Elkos sind dran. LG

#include <SoftwareSerial.h>

SoftwareSerial mySerial =  SoftwareSerial(4, 5);

void setup()  {
  mySerial.begin(9600);
  pinMode(2, INPUT_PULLUP);
}
void loop(){
if(digitalRead(2) == 0){
mySerial.print("AT+CMGF=1\r");
delay(500);
mySerial.println("AT+CMGS=\"NUMMER\"");
delay(1000);
mySerial.print("Testnachricht");
delay(500);
 mySerial.println((char)26);
 delay(5000);
}
 }

Soweit ich mich erinnere, liefern die AT-Befehle eine serielle Antwort. Warum zeigst Du die nicht an? Das könnte bei der Fehlersuche helfen.

Gruß Tommy

Da ich mir ziemlich sicher bin, das das Codebeispiel funktioniert hat, kann es nur an deinem Aufbau oder einem defekten GSM liegen.