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.
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.
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.
Bzw. gibt es irgendwo einen guten Guide wo gut beschrieben ist wie ich die at befehle in Verbindung mit C schreibe?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.