Forum: Mikrocontroller und Digitale Elektronik AT commands senden per string senden


von Miriam (Gast)


Lesenswert?

Guten Abend zusammen
Für ein Projekt möchte ich per AT-Commands von einem uC per GSM Modul 
(TC35i, Modul von Sainsmart.com) SMS versenden.
Wenn ich das GSM Modem direkt seriell mit dem PC verbinde und die 
AT-Befehle (über Putty oder SerialTerm) ausführe geht das Problemlos.
Folgende Befehle müssen dazu eingegeben werden:
1
AT [ENTER]
2
AT+CMGS="'Natelnummer des Empfängers'" [ENTER]
3
Die SMS Message [CRTL]+[Z]

Nicht so aber vom uC aus.

Folgenden Code habe ich versucht:
1
char string_1[]="AT\r";
2
char string_2[]="AT+CMGS=\"'Natelnummer des Empfängers\"\r"
3
char string_3[]="Die SMS Message"
4
char string_4[]="\x1A"  //=26, Ascii für CTRL-Z
Die strings werden dann nacheinander über die Serielle Schnittstelle 
ausgegeben.
(Was eigentlich auch funktioniert, wenn ich das gesendete wiederum in 
Putty anschaue)
Das GSM Modem kann autobauding, somit sollte es nicht an der Baudrate 
liegen, welche auf 9600 gestellt wurde.

Hat jemand Erfahrung damit oder kann mir Denkanstösse geben, wo ich 
einen Denkfehler mache?? Wäre sehr dankbar

von Karl H. (kbuchegg)


Lesenswert?

Miriam schrieb:

> Folgenden Code habe ich versucht:
>
1
> char string_1[]="AT\r";
2
> char string_2[]="AT+CMGS=\"'Natelnummer des Empfängers\"\r"
3
> char string_3[]="Die SMS Message"
4
> char string_4[]="\x1A"  //=26, Ascii für CTRL-Z
5
>

nimm mal \n anstelle von \r.
Es könnte auch sein, dass du beides angeben musst \r\n

von single quote (Gast)


Lesenswert?

Was mir auf die Schnelle auffällt: In deinem Code fehlt das 
abschließende Single Quote nach der Telefonnummer.

von Miriam (Gast)


Lesenswert?

Karl Heinz schrieb:
> nimm mal \n anstelle von \r.
> Es könnte auch sein, dass du beides angeben musst \r\n

Wenn ich per Terminal sende, brauche ich immer nur CR, aber ich werde 
das einmal versuchen, danke.

single quote schrieb:
> Was mir auf die Schnelle auffällt: In deinem Code fehlt das
> abschließende Single Quote nach der Telefonnummer.

Das war ein Flüchtigkeitsfehler beim "schwärzen" meiner Natelnummer, 
sorry

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wartest Du in Deinem Programm nach dem Absenden der einzelnen Strings 
auf eine Reaktion des Modems, oder sendest Du die einfach so 
hintereinanderweg?

von Miriam (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Wartest Du in Deinem Programm nach dem Absenden der einzelnen Strings
> auf eine Reaktion des Modems, oder sendest Du die einfach so
> hintereinanderweg?

Ich habe die Vier Strings zu Testzwecken jeweils auf einem Taster, 
welche ich nacheinander drücken kann.

von Markus M. (adrock)


Lesenswert?

Kannst Du während Du die Daten vom Controller an das Modem schickst 
nicht mal die Empfangsleitung (also die Leitung auf der das Modem 
sendet) mit dem PC verbinden um zu schauen ob/wie das Modem reagiert?

Musst natürlich Masse und RxData verbinden.

von Miriam (Gast)


Lesenswert?

Guten Abend zusammen.
Ein Factory Reset des GSM_Modems hat das Problem gelöst. Ich habe das 
Gefühl, dass etwas mit der Baudrate nicht gestimmt hat.

Vielen Dank für eure Antworten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.