Hallo, angeregt durch www.fernwirken.tk versuche ich, eine Fernbedienung mittels Handy und SMS aufzubauen. Ich verwende einen PIC 16F876 (20 MHz), Handy ist ein Siemens C35. Probleme habe ich mit der Auswertung eingegangener SMS. Ich muß in der SMS bestimmte Zeichen erkennen. Dazu sende ich an das Handy per USART den Abfragebefehl (Modem AT-Kommando). Darauf anwortet das Handy z.B. so: .... +CMGL: 1,1,,22 0791947122723033240C91947112234567800004030111252154003C5A413 .... Um die entsprechenden Zeichen in dieser Zeichenfolge zu erkennen, mache ich folgendes: ... siehe Anhang ... Mein Problem ist, dass die Zeichen nur sehr unsicher erkannt werden. Es klappt vielleicht bei 1 von 10 Versuchen, sogar relativ unerheblich wie viele Zeichen ich auswerte. Mir ist auch nichts schlaueres als die Subtraktion eingefallen um die Zeichen zu erkennen (wie könnte man es anders / besser machen ?). Wenn ich die Sendung vom Handy am PC mittels Terminal mitlese (angebunden über RS232-Schnittstelle MAX232) stelle ich fest, daß dort immer alle Zeichen völlig korrekt ankommen. Das Handy ist direkt mit dem PIC verbunden (Handy Pin 5-TX an PIC Pin 18-RX, Handy Pin 6-RX an PIC Pin 17-TX). An Handy Pin 5-TX-PIC Pin 18-RX messe ich in Ruhezustand ca. 3,3 V, dürfte als H-Pegel reichen. Die Kommunikation funktioniert auch prinzipiell, z.B funktioniert eine Routine zum Senden von SMS völlig problemlos. Hat jemand eine Idee, wo das Problem liegen könnte ? Vielen Dank + Gruß
ähm...nach such mal nach PDU und SMS dann wirst du docs zum sms format finden...dann decodierst du die sms und schon weist du was rein kommt... 73 de oe6jwf
Danke für die Antwort. Ich weiß was PDU-Mode ist. Ich will die SMS allerdings gar nicht dekodieren. Ich will einfach nur bestimmte, festgelegte Zeichenfolgen in der SMS erkennen (von denen ich natürlich weiß, daß sie in der SMS vorkommen müssen, wenn es die richtige SMS ist). Dabei wäre mir egal ob die codiert im PDU-Mode vorliegt oder als Klartext im Text-Mode, allerdings arbeitet das C35 nur im PDU-Mode. Wenn ich z.B. weiß, daß in der vom Handy zum µC geschickten Zeichenfolge ein "C" und eine "9" vorkommen müssen (wenn es die richtige SMS ist), brauche ich ja nur nach "C" und "9" suchen. Was das in Wirklichkeit (übersetzt) heißt, ist mir in dem Moment egal. Problem ist einfach, daß der PIC irgendwie diese Folge von Zeichen mit meiner Routine nicht erkennt, obwohl sie ganz sicher vom Handy kommt (kann ich in verschiedenen Terminal-Programmen verfolgen). Ich vermute, daß ich irgend einen logischen Fehler im Programm habe, finde ihn aber nicht. Danke trotzdem !
Hi folks, hab das gleiche mal mit ner C-Control probiert. Dat Problem ist, dass die angeflogenen Zeichen zu langsam entsorgt werden. Und da du RS232 ASYNCHRON berteibst, gibts auch kein Halten mehr. Nimm ne schnellere RS232-Schnittstelle oder Puffer den Datenstrom sonstwie in Echtzeit zwischen. C ya s00n xx_olli
hi Mit deinem Assemblercode kann ich dir nicht helfen, aber um eine Auswertung der PDU wirst du nicht herumkommen. Wenn du dir das PDU-Format ansiehst wirst du sehen dass vor der eigentlichen Textnachricht eine ganze Menge an Infos steht. Unter anderem Absendernummer, SMSC-Nummer, Zeitinfos und wie lang jeder dieser Teile ist. Mit diesen Daten kannst du dir zuverlässig die Infos aus der Message herausholen, die du brauchst. Die Tatsache das die Daten mit 19200Baud ankommen könnte dir auch Probleme machen sofern dein PIC zu niedrig getaktet wird. MfG Mike
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.