Mit AT-Kommandos SMS versenden

OP (Firma: m5) #3322666
Lesenswert?

Hallo, mein Problem ist eigentlich ganz simpel, jedoch komm ich nicht 
weiter; Ich möchte einfach mittels AT-Kommandos und einem Modem eine SMS 
verschicken. Die Kommunikation zwischen Mikrocontroller und Modem 
generell funktioniert (der Dial-Befehl funktioniert einwandfrei). Sende 
ich jedoch das Kommando für eine SMS, passiert nichts. Den Teil meines 
Programmes habe ich als Anhang hochgeladen.
P.s. 92 und 34 stehen für \ und ", ich wusste nur nicht, wie man diese 
als char anschreibt. Ausserdem bin ich momentan "nicht in der Lage", die 
Antworten meines Modems zu lesen, also warte ich nicht auf ein OK nach 
dem ersten Befehl, sondern warte einfach 4 Sekunden und verschicke dann 
den Inhalt der Nachricht. Früher hatte ich aber den Befehl mit einem PC 
und dem selben Modem ausprobiert und es funktionierte. Bitte wenn mir 
jemand weiterhelfen könnte.
Angehängte Dateien:
Gast #3322677
Lesenswert?

Bevor Du ein Zeichen sendest, musst Du prüfen, ob der UART bereit ist. 
Dazu hat er ein Status Register.

Sonderzeichen kannst Du in C so umschreiben:

\n = 10
\r = 13
\" = "
\' = '
\\ = \

Schau Dir mal meine Quelltexte bezüglich der seriellen Kommunikation an.
http://stefanfrings.de/avr_io/SERIAL-IO-Modul_v1.3.2.zip

Der Serielle Port wird den Dateien stdin und stdout zugewiesen, so daß 
die standard I/O Funktionen aus stdio.h damit verwendbar sind (wie z.B. 
println).

Dor wird direkt gesendet (wie bei Dir), allerdings unter 
Berücksichtigung des UART Status. Für den Empfang wird der Interrupt 
verwendet, sowie ein Puffer, damit man auch ganze Zeilen am Stück 
auslesen kann. Die Größe des Puffers musst Du an deinen Anwendungsfall 
anpassen. Am besten so groß, dass eine komplette Modem-Antwort rein 
passt.
Gast #3322695
Lesenswert?

Mach da am besten einen String draus (wegen lesbarkeit)

aus
char sms_test_command[30] = {'a','t','+','c','m','g','s','=',92,34 ...
wird
char sms_test_command[30]= "at+cmgs=\"+393295348138\"";

Du hat da einen Backslash "zuviel" drin ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren