Mikrokontroller SMS versenden

OP #3679256
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.
Gast #3679258
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.
#3679259
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.
#3679559
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.
(Firma: fritzler-avr.de) #3679627
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
}

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