Forum: PC-Programmierung SMS verschicken


von Matthias (Gast)


Lesenswert?

Hallo Leute,

Ich bin schon seit längerem dabei ein AVR Programm zu schreiben, bei dem 
ich über meinen Mirocontroller eine SMS zu meinen Handy senden kann 
sobald der Microcontroller bei einen Eingang ein signal bekommt.

Ich weiß aber nicht wie ich mit den AT befehlen eine SMS formulieren und 
eine Handynummer einbinden soll.

Kann mir da jamand weiter helfen?

mfg

Matthias

von Der Trog (Gast)


Lesenswert?

Ein Manual zum Mobiltelephon liegt vor ?

von Sam (Gast)


Lesenswert?

Eine SMS ist nicht kostenlos!
Ich würde dir empfehlen einen Webserver der E-Mails versenden kann zu 
bauen. Projekte gibts da genug.
Eine SMS zu versenden würde vielleicht über deinen Emailaccount gehen, 
indem dein AT sich dort anmeldet und eine SMS schreibt, also einen 
Browser simuliert! Frag mich aber nicht wie.

von Matthias (Gast)


Lesenswert?

Ich habe ein Siemens ME45 und einen ATMega32 Prototype Board.

>Ein Manual zum Mobiltelephon liegt vor ?
Wenn sie ein Handbuch meinen. Ja, das liegt vor.

>Eine SMS ist nicht kostenlos!
Dies soll nur eine Überwachung werden die vielleicht 1 bis 2 mal im jahr 
eine meldung auf mein Handy schicken soll fals der Microcontroller ein 
Signal bekommt.

von Micha (Gast)


Lesenswert?

Ist es wirklich so schwer die Suchfunktion oder Google zu benutzen?

von Gast2 (Gast)


Lesenswert?

Nein, aber anscheinend vernünftig zu antworten....und eine SMS zu 
verschicken ist echt nicht so einfach, weil man sich da mit dem PDU 
Format auseinandersetzen muss. Ich habe vor Jahren die Vitocom 100 für 
Viessmann entwickelt, da konnte die Heizungssteuerung per SMS 
Nachrichten versenden bzw. man konnte über das Handy die Heizung 
steuern. Es gab da 2 oder 3 brauchbare Webseiten, wo das PDU Format 
recht gut erklärt war, müsstest also danach bitte mal googlen.

von Johannes B. (jotschi)


Lesenswert?

Als erste ist http://www.nobbi.com/ zu nennen. Dort findet man viele 
Informationen zu AT und PUD. Außerdem gibt es eine APP-Note von Atmel 
(AVR323), die sich genau mit deiner Problematik beschäftigt.

von Matthias (Gast)


Lesenswert?

Danke für eure Tipps.
Ich werde mir das mal anschauen.

von Matthias (Gast)


Lesenswert?

Hallo
Ich habe noch ein paar fragen zum PDU.

Was heißt SMSC und was ist das für eine Nummer?
Also was muss man da für eine Nummer angeben?

Und was bedeutet bei dem Befehl die 28 in der ersten Zeile und die 37 in 
der dritten Zeile bzw. wie kommt man auf die Ziffern?
Sind die ganzen Buchstaben in jeden solchen Befehl so vorhanden oder 
muss muss man da jedesmal was neues hinschreiben, von z.B. der dritten 
und der vierten Zeile?

at+cmgs=28
> 079194712272303325000C91947112325476000008D4F29C4E2FE3E9
+CMGS: 37
OK

mfg
Matthias

von Paul Baumann (Gast)


Lesenswert?

Dieses PDU-Format ist außerordentlich vergrießgnaddelt...
Ich bin auch gerade dabei, so etwas zu bauen.
Hier ein Link, in dem es gut erklärt wird:
 http://www.wilke.de/downloads/applicationnotes/PDF/Applikationsbericht_056_WilkeTechnology.pdf

ab Seite 9

und hier:
http://mschrod.de/Elektronik/AVR/Projekte/HandyS45/SMS_Versand.html

MfG Paul

von Matthias (Gast)


Lesenswert?

Hallo

Ich habe jetzt meine PDU Zeile fertig und möchte es nun in mein Programm 
einbinden.
Genügt es wenn man folgendes schreibt:

at+cmgs=28
079194710167000025000C9194710000000000000BCE325E1FAECFCE61361B

und wie mache ich es das es nur eine sms pro Fehler bekomme?

mfg
Matthias

von Matthias (Gast)


Lesenswert?

Hallo

Ich habe jetzt die at Befehle in mein Programm geschrieben und da kommt 
immer ein paar fehler. Ich weis aber nicht wie ich diese beheben soll?

Zum Beispiel:
../WvS-Sample.c:77: error: 'at' undeclared (first use in this function)
../WvS-Sample.c:77: error: (Each undeclared identifier is reported only 
once
../WvS-Sample.c:77: error: for each function it appears in.)
../WvS-Sample.c:77: error: 'cmgs' undeclared (first use in this 
function)


Kann mir hier jenamd helfen?

von cvnc (Gast)


Lesenswert?

Du denkst jetzt aber nicht im Ernst, dass das C-Befehle sind?????

Gast

von Mark B. (markbrandis)


Lesenswert?

Matthias schrieb:
> Kann mir hier jenamd helfen?

Nicht wenn Du den bereits vorhandenen Sourcecode vor uns versteckst.

von Matthias (Gast)


Lesenswert?

Hallo

Ich stehe momentan am schlauch.
was meinst du mit Sourcecode?

mfg
Matthias

von Remote O. (remote1)


Angehängte Dateien:

Lesenswert?

Mit mehr Informationen könnte ich dir ohne Probleme helfen. Ich habe ein 
Projekt bei dem ich SMS im PDU Format verschicken kann, empfangene SMS 
einlese, bei bestimmten Schlüsselwörtern eine festgelegt Aktion/Funktion 
ausführe, Text auf dem Display anzeigen lassen kann, das Datum und die 
Zeit des Handy auslese....

Hab dir mal einen kurzen Auszug aus meiner Projektarbeit angehängt. 
Evtl. hilft ja das schon.

von thisamplifierisloud (Gast)


Lesenswert?

SMS kann man im PDU-Mode oder im TEXT-Mode verschicken.

Leider beherrschen viele Geräte den sehr einfachen TEXT-Mode nicht
und PDU ist, freundlich ausgedrückt, ne verdammte Sch...-Bitschieberei !

von Remote O. (remote1)


Lesenswert?

schau mal hier vorbei:
http://www.mikrocontroller.net/articles/Versenden_von_SMS_mittels_Mobiltelefon

Da hab ich die relativ leicht verständlichen Routinen für das PDU Format 
erläutert/raingestellt

von Mark B. (markbrandis)


Lesenswert?

Matthias schrieb:
> Hallo
>
> Ich stehe momentan am schlauch.
> was meinst du mit Sourcecode?
>
> mfg
> Matthias

Sourcecode = Quelltext. Also den Programmcode im Original, in den Du das 
Versenden der SMS einbauen willst.

von Matthias (Gast)


Lesenswert?

Hallo
Dies wäre mein entwurf.
ich weiß aber nicht was da noch fehlen könnte?

mfg
Matthias


Programm:

#include "global.h"
// #include "i2cmaster.h"

void init(void)
{

  wdt_disable();

  DDRB= 0xFF;

  DDRA= 0x00;

  PORTB= 0x00;

        timer0Init();

  sei();

        uartInit();

  uartSetBaudRate(19200);

  rprintfInit(uartSendByte);

}

int main (void)
{

    char x;

    init();

    char sms_init;


sms_init(void)

    while(1)
  {
         if (bit_is_clear (PINA, PINA0))

    {

        at+cmgs=23
  >079194710167000025000C9194711182392300000BD4F29C4E2FE3E9BA4D19
    }
  }
}

von Remote O. (remote1)


Lesenswert?

Matthias schrieb:
> {
>
>         at+cmgs=23
>   >079194710167000025000C9194711182392300000BD4F29C4E2FE3E9BA4D19
>     }

Das wird so nicht funktionieren. Das ist ja kein C code. Das musst du 
schon über die serielle Schnittstelle ausgeben und die entsprechenden 
Steuerzeichen beachten (die fehlen noch). Ich hab oben schon einmal den 
Hinweis zu dem Artikel gegeben, da steht alles drin (auch der richtige 
code). Zudem solltest du größere Codefragmente in den Anhang posten und 
wenn du schon etwas postest, dann bitte alles (am besten als fertiges 
Projekt). Dadurch ist es leichter nachvollziehbar. Bei dem was du hier 
gepostet hast, weiß z.B. keiner was rprintfInit macht.

Zudem, scheint der PDU Teil auch falsch zu sein. Ich habe es mal eben 
durch den encoder gejagt und erhalte "r9:z2<:ÑM2@@" als Ergebnis. Evtl. 
solltest du beim nächsten mal auch darüber nachdenken, deine 
Telefonnummer nicht im Internet zu posten^^

encoder zum schnellen Überprüfen:
http://twit88.com/home/utility/sms-pdu-encode-decode

von Matthias (Gast)


Lesenswert?

danke für die ganzen tipps.
schön langsam komm ich auf nen grünen zweig.
die ganzen errors und warungen sind weg.
ich würde mich dann nochmal melden wenn noch unklarheiten auftreten.
und auch wenn ich mein Programm zum laufen gebracht habe.

mfg
Matthias

von Matthias (Gast)


Lesenswert?

Hallo
ich habe jetzt mein Programm auf den Mirocontoller überspielt aber es 
funktioniert nicht.
kann ich das originale datenkabel von meinen me45 an die rs232 des 
prototype board atmega32 anschließen oder muss ich eine neu auflöten und 
verdrahten?
wenn ja hat jemand einen schaltplan?

mfg
Matthias

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.