Forum: Mikrocontroller und Digitale Elektronik Mikrokontroller SMS versenden


von Dreko K. (dreko)


Lesenswert?

Hallo Leute, ja ich weiß es gibt genug Threads zu diesem Thema, aber 
irgendwie hat mir kein einziger weitergeholfen.

Möchte mit meinem PICKit 3 über ein GSM-Modul eine SMS per Knopfdruck am 
Mikrokontroller versenden.

Die SMS ist bereits im GSM-Modul gespeichert und kann auch daraus 
verschickt werden, mittels einem Programm am PC. (PDUSpy)

Jetzt ist aber meine Frage, wie stelle ich es an, dem Mikrokontroller zu 
sagen, dass der per Knopfdruck eine SMS versenden soll, an die im 
GSM-Modul gespeicherte SMS.

Ich hoffe es kann mir einer helfen, wie sowas geht bzw. programmiert 
wird und verschalten wird mit dem GSM-Modul.

von 132 (Gast)


Lesenswert?

Du musst dir das Datenblatt von deinem GSM Modul anschauen. Vermutlich 
wird es über eine serielle Schnittstelle (UART) kommunizieren. Im 
Datenblatt steht welche Kommandos man wann senden muss. Das musst du 
dann nur noch am Mikrocontroller programmieren. Definitiv nicht geeignet 
als Anfängerprojekt. Schau dir Arduino an.

von Cyblord -. (cyblord)


Lesenswert?

Dreko K. schrieb:
> Ich hoffe es kann mir einer helfen, wie sowas geht bzw. programmiert
> wird und verschalten wird mit dem GSM-Modul.

Mit anderen Worten du suchst jemand der dir einen exakten Schaltplan und 
den fertigen Code liefert? Wohl auch noch kostenlos oder wie?

Tip: GSM-Module werden meist über AT-Befehle gesteuert. Aber mach dir 
doch mal den Spass und schau ins Datenblatt deines GSM-Moduls. Da steht 
nämlich drin, wie man mit ihm redet.

von Dennis K. (scarfaceno1)


Lesenswert?

Die Bezeichnung des GSM Moduls würde helfen...

von Dreko K. (dreko)


Lesenswert?

Sainsmart Siemens TC35

von Dreko K. (dreko)


Lesenswert?

Bzw. gibt es irgendwo einen guten Guide wo gut beschrieben ist wie ich 
die at befehle in Verbindung mit C schreibe?

von Cyblord -. (cyblord)


Lesenswert?

Dreko K. schrieb:
> Bzw. gibt es irgendwo einen guten Guide wo gut beschrieben ist wie ich
> die at befehle in Verbindung mit C schreibe?

Lern einfach C und lerne wie man auf deinem Controller Zeichen über die 
serielle Schnittstelle sendet. Du wirst nicht immer einen "Guide" genau 
zu deinem Problem finden. Das ist nämlich nur ein Euphemismus dafür, 
dass du fertigen Code für dein Problem willst. Lerne deine konkreten 
Probleme selbst du lösen in dem du allgemeine Fähigkeiten entwickelst. 
Alles andere ist abschreiben bzw. copy&paste.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Bissel Code, anpassen musste selber:
1
/return: Speicherplatz
2
uint8_t send_sms(const char* nummer, const char* text){
3
4
  char tmp[30] = "\0";
5
  char tmp2[3] = "\0";
6
  uint8_t i = 0;
7
  uint8_t anf;
8
  
9
  ser_out_str_P(AT_CMGS, GSM);
10
  ser_out('\"', GSM);
11
  ser_out_str(nummer, GSM);
12
  ser_out_str("\"\r", GSM);
13
  //auf ">" warten
14
  while ('>' != uart_pollen(GSM));
15
  ser_out_str(text, GSM);
16
  ser_out(26, GSM);
17
  ser_out(13, GSM);
18
  ser_out(10, GSM);
19
  
20
  while (get_GSM((char*)&tmp, 30) == 0) {//auf Antwort warten
21
    ;
22
  }
23
24
  while(tmp[i] != 32){
25
    if(tmp[i] == 'E'){return 0;}
26
    i++;
27
  }
28
29
  //Speicherplatznummer
30
  i++;
31
  anf = i;
32
  
33
  while(tmp[i] != 0){
34
    tmp[i-anf] = tmp[i];
35
    i++;
36
  }
37
38
  tmp[i-anf] = 0;
39
40
  
41
  //OK
42
  while (get_GSM((char*)&tmp2, 3) == 0) {//auf Bestätigung warten
43
    ;
44
  }
45
  if (strcmp_P(tmp2 , OK) != 0) {return 0;}
46
  
47
  return atoi(tmp);
48
}

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.