Re: Siemens TC35 GSM Modul... Kategorie: Programmierung (von Willi aus Oelde - 19.07.2013 18:27) | |
Als Antwort auf Siemens TC35 GSM Modul... von Willi aus Oelde - 3.07.2013 18:16
| |
Hallo Forenteilnehmer, Leider ist es doch recht still hier geworden. Da niemand eine Alarmierung per Handy benötigt, mu�te ich das "GSM-Modem" selbst in die Hand nehmen: Es reicht, um einen Fehlercode zu senden :-) Mir war die Sache einen Betrag von 23� wert :-) Sonst ein altes Handy mit RS232 Kabel verwenden. Anbei der vereinfachte Quelltext, der ohne Capture etc., nur mit HWCOM.C2 läuft: (getestet!!!!) Modul GSM.c2 oder ins Hauptprogramm kopiern: /******************************************************************** ------------------------ DO NOT MODIFY THIS FILE! ------------------------ GSM.c2 C-Control II Modul, provided by Willi aus Oelde, Germany release : 2013/07/20 author : Willi aus Oelde requires : hwcom.c2 (auch? alte Version...) contents : Basis-Routinen für GSM Modem TC35 Siemens remarks : Bei Anschlu� des TC 35 Modems an die RS232 die Station die Leitungen PIN 2&3 kreuzen oder umklemmen!!! ******************************************************************** (Habe diese Sachen auch in Turbo-Basic, C-Control Station M2.0 etc. getested.) Bei Bedarf hier posten.... Kommandos TC35 Modem: Beispiele: ATE=0 hei�t Kein Echo vom Modem zurücksenden ATE=1 hei�t ECHO einschalten ATQ Flusskontrolle RTS/CTS TIP: Wenn das Modem nicht will, erst mal mit einem Terminalprogramm wie "putty" prüfen, ob alles richtig gesendet wird! (9600Baud,COM1,8N1,kein Handshake...) Dieses ist eine "Einfachversion" für den Anfänger OHNE Schnickschnack! Modem nicht auf "ready" geprüft, keine Antworten ausgewertet! Mal in das Modul MODEM.C2 hier im Forum schauen.... ACHTUNG: Unten in beide Funktionen die Telefonnummer einzutragen! SIM-Karte muss vorher im Handy entsperrt werden, sonst per AT-Befehle! /********************************** Telefonnummer anrufen (getestet) Kommando: "ATD +49172xxxxxxxx;" ***********************************/ function dial() {byte x; hwcom.put('A'); // AT-Kommandos siehe unter TC35-Siemens... hwcom.put('T'); // Ein 23� GSM Modem in der "E-Bucht" hwcom.put('D'); // für Bastler... 12V Version nehmen! hwcom.put(' '); hwcom.put('+'); // Ab hier Vorwahl Deutschland hwcom.put('4'); hwcom.put('9'); hwcom.put('1'); // Ab hier eigene Telefonnummer hwcom.put('7'); // eingeben... hwcom.put('2'); // hwcom.put('1'); // ******* �ndern ******** hwcom.put('2'); // hwcom.put('3'); // hwcom.put('4'); hwcom.put('5'); hwcom.put('6'); hwcom.put('7'); hwcom.put('8'); hwcom.put(';'); // Semikolon ist ganz wichtig !!!! hwcom.put(13 ); // Return senden wait hwcom.rxd(); do {x=hwcom.get(); // Daten abholen bis "Return" kommt.... } while x != 13; } /********************************** Telefon auflegen (getestet) Kommando : "ATD+CHUP" ***********************************/ function hang_up() { byte x; hwcom.put('A'); hwcom.put('T'); hwcom.put('D'); hwcom.put('+'); hwcom.put('c'); hwcom.put('h'); hwcom.put('u'); hwcom.put('p'); hwcom.put(13) ; wait hwcom.rxd(); do {x=hwcom.get(); // Daten abholen bis "Return" kommt.... } while x != 13; } /********************************** Eine SMS schicken (getestet) ********************************** Kommando1: "AT+CMGF=1" + Kommando2: "AT+CMGS="Telefonnummer" + Kommando3: "SMS_Text" + chr$(26) ohne Achtung: Warten, bis alles gesendet ist, bevor das Programm bendet wird! Es wird im Hintergrund "gespoolt" Keine 10 oder 13 zusätzlich einfügen! ***********************************/ function sms() {byte x; hwcom.put('A'); // Modem in Textmodus versetzen hwcom.put('T'); hwcom.put('+'); hwcom.put('C'); hwcom.put('M'); hwcom.put('G'); hwcom.put('F'); hwcom.put('='); hwcom.put('1'); // hwcom.put(10 ); // Nur für Ausgabe an "putty" aktivieren!! hwcom.put(13 ); sleep 500; while hwcom.rxd() != 0 {x = hwcom.get(); } hwcom.put('A'); // Telefonnummer übermitteln hwcom.put('T'); // "AT+CMGS="+49172..........."+chr$(26)! hwcom.put('+'); hwcom.put('C'); hwcom.put('M'); hwcom.put('G'); hwcom.put('S'); hwcom.put('='); hwcom.put(34 ); // " hwcom.put('+'); // Ab hier Vorwahl Deutschland hwcom.put('4'); hwcom.put('9'); hwcom.put('1'); // Ab hier eigene Telefonnummer hwcom.put('7'); hwcom.put('2'); hwcom.put('1'); // "17212345678" ******** �NDERN !******** hwcom.put('2'); hwcom.put('3'); hwcom.put('4'); hwcom.put('5'); hwcom.put('6'); hwcom.put('7'); hwcom.put('8'); hwcom.put(34 ); // " // hwcom.put(10 ); // Nur für Ausgabe an "putty" aktivieren ! hwcom.put(13 ); sleep (500) ; // notwendig ??? while hwcom.rxd() != 0 // Alle Zeichen weglesen {hwcom.get(); // oder evtl. ausgeben } hwcom.put('D'); // Ab hier der SMS Text: hwcom.put('I'); // Achtung evtl. Pufferlänge beachten, hwcom.put('E'); // wenn NICHT Einzelzeichen gesendet werden. hwcom.put(' '); hwcom.put('T'); hwcom.put('E'); hwcom.put('S'); hwcom.put('T'); hwcom.put(' '); hwcom.put('S'); hwcom.put('M'); hwcom.put('S'); hwcom.put(' '); hwcom.put('!'); hwcom.put(26 ); // Hier muss man die "Eingabe" mit STRG "Z" beenden! //hwcom.put(10 ); // Nur für Ausgabe an "putty" aktivieren //hwcom.put(13 ); // Nur für Ausgabe an "putty" aktivieren while hwcom.rxd() != 0 // Alle Zeichen weglesen {x = hwcom.get(); // oder evtl. ausgeben } } Hauptprogramm dazu: /******************************************************** Vom TC35 GSM Modem anrufen und SMS senden Getestet 19.Juli.2013 ********************************************************/ thread main { gsm.dial () ; // Tonanruf: Telefonnr. wählen sleep (15000) ; // Klingeln lassen gsm.hang_up() ; // wieder auflegen des "Telefons" gsm.sms () ; // jetzt eine SMS schicken.... sleep (5000) ; // muss das sein? quit(63) ; // In den Hostmodus } Viel Spass beim "Simsen", Willi aus Oelde | |
Antwort schreiben Antworten: Re: Siemens TC35 GSM Modul... (von Frankhaus - 16.08.2013 14:35) |