TC35 SMS empfangen

Hallo,

ich versuche nun schon seit 2 Tagen mein Siemens TC35 GSM Modul dazu zu bewegen mir eine SMS an zu zeigen.
Senden einer SMS und einen Anruf machen funktioniert einwandfrei aber ich schaffe es nicht eine eingehende SMS
zu lesen.
Er springt einfach nicht in die If-Anweisung ( gsmSerial.available() > 0 ) wenn was kommt ?
Hat jemand eine Idee.

#include <SoftwareSerial.h>
char gsm_char=0;   

SoftwareSerial gsmSerial(2,3);  
void setup()
{
	Serial.begin(9600);
	gsmSerial.begin(9600);
	Serial.println("Starting TC35 and debug Communication...");
}

void loop() {
	if(gsmSerial.available() > 0)
       {
		gsm_char=gsmSerial.read();    //Store the char in gsm_char.
		Serial.print(gsm_char);  //Print it to debug serial
	}
}

Arduino Mega 2560 + Siemens TC35

Hallo,

das könnte damit zusammenhängen wie das Modem konfiguriert ist, da gab es mal eine Änderung wo die SMS gespeichert wrden (also SIM bzw. Gerät). Ich hatte auch mal genau dieses Problem und nach ein paar AT-Befehlen ging es dann wie gewünscht, leider finde ich diese Notiz nicht mehr, aber google findet einiges zu diesem Thema, z.B. hier: http://www.unitronics.com/forum/topic.asp?TOPIC_ID=339

Wobei es dann auch noch einen Unterschied macht ob TC35 oder TC35i...

Christian

Hallo Christian,

vielen dank für den Tipp, jetzt weiß ich erstmal in welche Richtung ich suchen muss hoffe das ich das noch hin bekomme.
Das Modul ist ein TC35.

Grüße
Michael

Hallo,

also ich bekomme es einfach nicht hin, wenn ich folgenden Code starte sollte ich doch eine OK zurück
bekommen, stattdessen kommt ein -1.
Hat jemand eine Idee ??

#include <SoftwareSerial.h>
SoftwareSerial gsmSerial(2,3);

char receivedByte;


void setup(){
	Serial.begin(9600);
	gsmSerial.begin(9600);	
	Serial.println("\r\nCommunication started\r\n");

	gsmSerial.print("AT\r");
	delay(400);
	Serial.println(gsmSerial.read()); //hier sollte doch OK zurück kommen
}

void loop(){
	if(gsmSerial.available()>0){
		Serial.println(gsmSerial.read());
	}
}

"OK" zwar nicht, aber wenigstens 79 ( = 0x4F = 'O' ).
read() liefert ein int zurück, und print(int) schreibt eine Dezimalzahl.
-1 ist das gleiche wie available() == 0 : nichts gekommen.

"AT\n" oder "AT\r\n" hast du auch schon probiert?

Senden einer SMS und einen Anruf machen funktioniert einwandfrei

Richtig angeschlossen scheint es ja dann zu sein. Liefert SoftwareSerial gsmSerial(2,3); überhaupt mal was ?

Gibt öfters mal Hinweise, dass AltSoftSerial viel besser sein soll ...

Hallo,

mit AltSoftSerial kommt jetzt was an Yeeepiiii :smiley: , jetzt muss ich nur noch rausfinden mit welchem AT-Befehl er mir was an die Serielle Schnittstelle beim empfang einer SMS schickt.
Muss jetzt erst mal auf Arbeit aber heute abend teste ich weiter, danke.

Grüße
Michael