erstellt 28.10.2009
|
|||
Alarmanlage verschickt bei
Alarm SMS an Siemens Handy S45 oder Me45
|
|||
Ziel dieses Projektes ist es, eine Alarmanlage
zu erstellen die mit Hilfe eines Microkontroller über ein GSM Modem
eine SMS ( ShortMessageService) |
|||
Bevor man die SMS vom Mikrocontroller
mittels Handy übermittelt und das meist nicht auf Anhieb klappt,
versuche wir erst einmal die SMS vom PC aus mittels Handy zu
verschicken |
|||
1. PC | Windows Rechner mit Serieller Schnittstelle also 15 pol. SUB-D Verbindung | ||
Handy | Siemens S45 oder Me45 oder ähnliche. | ||
Original Siemens Datenkabel | Das Original Siemens Datenkabel beinhaltet im Stecker einen Pegelwandler Baustein , um die verschiedenartigen Spannugspegel zwischen PC und Handy anzupassen | ||
Mikrocontroller | Mikrokontroller der Firma Atmel mit der Bezeichnung Atmega 8L , wobei die Bezeichnung L wichtig ist, weil nur diese Bezeichnung sicherstellt das der Mikrocontroller auch mit der hier niedrigen 2,5 Volt Betriebsspannung auskommt. | ||
Software: Bascom, Ponyprg und,PDUSpy | Kann kostenlos im Internet bezogen werden Bascom hier und Ponyprg hier und hier PDUSpy | ||
Zur Schaltung
|
|||
Die Schaltung besteht hauptsächlich aus dem
Microkontroller Atmega 8L , dem ISP Anschluß der zum Programmieren
dient, dem PIR Bewegungsmelder, einige Leuchtdioden um den internen
Ablauf zu überprüfen und einigen Jumper ( Steckbrücken) , und zu guter
letzt den Verbindungsstecker zum Handy. |
|||
Da der PIR Sensor nach Anschluß an die Betriebsspannung ungewollt innerhalb der ersten 6 Sekunden ein einmaliges Ausgangssignal abgibt, vermutlich arbeitet er nicht mehr genau weil die erforderliche mindest Betriebsspannung etwas unterschritten ist , wird im Programm nach dem Einschalten eine Pause von ca 60 Sekunden eingelegt, bevor das Programm weiter abgearbeitet wird. | |||
Beim Einschalten wird die
gelbe Led eingeschaltet dann wird zuerst eine Pause von 1. Minute
eingelegt bevor Programm anläuft, weil die Betriebsspannung zu niedrig
ist und sonst Fehlalarm ausgelöst wird, wenn Led Gelb anfängt zu
blinken ist die Schaltung scharf. Wenn am Pir Sensor eine Bewegung erkannt wird blinkt einmal kurz die grüne Led (PIR) auf und signalisiert das der Pir-Sensor eine Bewegung erkannt hat ,die Rote Led blitzt kurz auf und zeigt an dass eine Meldung ans Handy geschickt wird, die gelbe Led bleibt ca 1 Minute an ( in dieser Zeit ist die Anlage nicht aktiv) in dieser Zeitspanne wird kein weiterer Alarm an das Handy gesendet. Wenn die Sabotageschleife unterbrochen wird blitzt kurz die Rot Led und Signalisiert dem Handy das er eine SMS versenden soll, die gelbe hört auf zu blinken damit ist die Anlage inaktiv, erst wenn die Schleife wieder geschlossen wird , wird nach 1 Minute die Anlage wieder aktiv genauso verhält es sich mit dem Alarmkontakt, nur das in diesem Fall eine andere SMS gesendet wird. Um die Anlage auszuschalten genügt ein kurzer Anruf sodass dass Handy einmal Klingelt dabei kann beim Handy natürlich der Klingelton auch deaktiviert sein, die Blaue Led blinkt kurz auf eine SMS wird gesendet und die Anlage schaltet anschließend ab. |
|||
Hier kann
der Schaltplan geladen werden
|
|||
Rechts sehen wir den PIR Bewegungsmelder, der ist als fertiges Modul zu haben und beinhaltet neben den Eigentlichen Sensor schon einen Verstärkerbaustein , gibt's in einschlägigen Elektronic Läden | Hier haben wir den 12 poligen Lumbergstecker der auf den meisten älteren Siemens Handys passt , die neueren Handys haben einen deutlich kleineren Stecker | ||
Verbindung zwischen PC
und Handy
|
|||
Also als erstes mit dem Siemens Datenkabel eine Verbindung zwischen den COM Port des PC's und dem Handy Stecker schaffen.Anschließend das Terminalprogramm aufrufen , etweder Hyperterminal welches zum Lieferumfang von Microsoft Betriebssystem gehört oder irgend ein anderes, im aktuellen Fall benutzen wir das Terminalprogramm welches sich schon in der Bascom Programmieroberfläche befindet . | |||
Folgende Parameter müssen im Bascom Programm
unter dem Menüpunkt Optionen / Kommunikation angepasst werden.
|
|||
Also ein einfaches OK ist für
uns die Bestätigung das die von uns verschickten Zeichen beim Handy
angekommen sind und auch verstanden worden sind.
|
|||
Sollte also ein korrektes OK erscheinen sind wir schon einmal sicher das die Kommunikation zwischen Handy und PC klappt, und können dann einen Schritt weiter gehen. |
SMS-Übertragung
|
|||
Es gibt mehrere verschiedene Arten der SMS übertragung bzw. der zu verwendeten Protokolle. Zwei davon haben sich durchgesetzt das ältere PDU-verfahren oder das neuere Text-verfahren , da die hier verwendeten Möglichkeiten der Übetragung wirtschaftlich tragbar sein sollen, verwenden wir natürlich die älteren und daher in der Regel auch die billigeren Handys, mit dem Nachteil das diese meist nur im PDU Modus arbeiten | |||
Im PDU verfahren wird die eigentliche Text Nachricht zerlegt und nach einen bestimmten Verfahren codiert übertragen . Wobei das neuere Verfahren einfach nur den Text überträgt | |||
Um
herauszufinden nach welchen verfahren das von uns eingesetzte Handy
arbeitet geben wir folgenden befehl ein AT+CMGF? Bekommen wir als Antwort eine Null so arbeitete dieses Handy mit dem PDU verfahren bei einer 1 arbeitet es mit dem Text verfahren . |
|||
Grundsätzlich haben wir die
Möglichkeit die von uns zu verschickende SMS im PDU verfahren zu
codieren und dann mittels AT-Befehle ins Handy zu übertragen oder auch
mittels Mikrokontroller zu verschicken, es gibt aber auch die
Möglichkeit die zu verschickende SMS direkt im Handy zu hinterlegen ,
und dann dem PC oder dem Mikrocontroller nur die abgelegte Position im
Speicher anzugeben, so das einfach nur angegeben wird das diejenige SMS
auf Position X verschickt wird. In unserem Fall hat das aber nicht so
einfach funktioniert, weil die im Handy hinterlegte SMS nicht auch die
Telefon Nr beinhaltete an welche die SMS verschickt werden sollte, wir
gehen davon aus das es aber an der Software des jeweiligen Handy
liegt,mit welchen Optionen die SMS Nachricht hinterlegt werden
kann.Also entschieden wir uns mittels eines kleinen Programms zu
arbeiten indem wir die SMS inkl. Telefon Nr. eingeben können,
anschließend wird die Nachricht von diesem Programm in den PDU Modus
umgewandelt und dann auch direkt ins Handy übertragen.Die so
übertragene SMS beinhaltet dann in codierter Form auch die Telefon Nr.
des Empfängers Das Programm ist im Internet Hier frei erhältlich. |
AT Befehle die sonst noch
nützlich sein können
|
|||
Funktion
|
Eingabe im Terminal Programm
|
Antwort des Handys
|
Erklärung
|
Ladezustand des Handy Akku abfragen | At+cbc | +CBC: 0,100 | 0= Batteriebetrieb 1= Netzbetrieb 100 gibt den Ladezustand in % an |
IMSI des eingelegten SIM abfragen | AT+CIMI | 262075000468033 |
|
Abfrage welcher SMS Modus unterstützt wird | AT+CMGF? | CMGF:0 | 0= PDU Modus, 1= Textmodus |
Hörer auflegen | AT+CHUP | Trennt alle bestehenden Verbindungen | |
SMS auslesen | AT+CMGR=1 | +CMGR: 2,,33 0001000D91945177745459F7000015C672BD2C0785EBF373592C7F8FD16537281402 |
Liest die 1.SMS aus die auf der ersten Position im Speicher steht. |
SMS aus Speicher löschen | AT+CMG=1 | OK | Löscht die erstem im Speicher vorhandene SMS |
SMS Versenden | AT+CMSS=1 | +CMSS: 15 | Versendet die SMS mit dem Index 1 |
Das Programm PDUSpy
|
|||
Das PDUSpy
Programm ist kostenlos im Netz verfügbar , dieses Programm ist in der
Lage SMS Nachrichten die im Klartext eingegeben werden, im sogenannten
PDU Code zu konvertieren und diese Codierte Form dann direkt über die
COM Schnittstelle ins Handy zu kopieren.
|
|||
Nachdem wir das Programm PDYSpy öffnen geben wir folgende Daten ein , also einmal die Schnittstelle und einmal die Datenübertragungsrate. | Anschließend klicken wir den Reiter " Create" an geben die Telefon Nr. ein an welche die SMS gesendet werden soll, und den Text der versendet werden soll. Anschließend den Button " Create" drücken um ins nächste Menü zu gelangen | ||
Damit haben wir bewirkt das der Text inkl. Telefon Nr. und noch andere Details dessen Erklärungen hier aber zu weit führen würden, codiert wurden und im sogenannten PDU-Modus zu Verfügung stehen, in Form einer langen Zahlen - Buchstabenkombination.Anschließend klicken wir den Button "Save" an und speichern damit die SMS im Handy. | Eigenartigerweise funktionierte die Speicherung nicht immer gleich . Es trat manchmal eine Fehlermeldung wie auf dem Foto rechts auf, nachdem ca 2 Sekunden gewartet wurde und dann noch einmal auf den Button "SAVE" geklickt wurde funktionierte es dann |
Es kann auch passieren das die Speicherung nicht funktioniert weil die Schnittstelle noch von einem anderen Programm belegt ist, z.B. das von uns vorher verwendete Terminal Programm,. Oder das vielleicht das Kabel nicht eingesteckt wurde, im PC oder auch im Handy ! |
|
Sollte bishierhin alles Korrekt gelaufen sein sollte folgendes Fenster aufgehen | Damit ist diese SMS im Handy gespeichert worden, klicken wir nun den Reiter "Automatic" und anschließend auf den Button "Read" so wird die von uns gespeicherte SMS aus dem Handy ausgelesen, so können wir überprüfen ob sie auch wirklich im Handy gespeichert ist | ||
SMS vom Mikrokontroller aus
versenden
|
|||
So da wir jetzt die SMS im Handy gespeichert haben, brauchen wir sie nur noch per AT Befehl vom Mikrocontoller aus wie folgt verschicken: | |||
Print "At+Cmss=1" |
Diese Programmzeile im der Bascom Programmierung mit einbinden fertig !! | ||
Tips und Tricks
|
||||
Das Umständliche verfahren um die SMS im Handy zu speichern ist vielleicht nicht in allen Fällen nötig , wir sind dieses Verfahren aber gegangen , weil wenn die SMS direkt im Handy geschrieben und im Ausgangsordner abgelegt wurde, das mit dem Versenden nicht klappte , weil wie sich nach langen versuchen herausstellte, zwar die SMS abgespeichert wurde, aber nicht die Telefon Nr, zu der die besagte SMS gesendet werden sollte.Um aber die Nummer mitabzuspeichern mussten wir das komplizierte verfahren über das Programm PUDSpy nehmen. Möglicherweise ist es bei anderen Handys möglich die SMS inkl Nr abzuspeichern. Später dann fanden wir heraus, dass wenn man eine SMS im Handy speichert, diese gespeicherte SMS dann einmalig an den Empfänger sendet, im nachhinein die Telefon Nr des Empfängers mit in der noch im Ausgangsorder befindlichen SMS abgespeichert wird , in diesem Fall können wir uns den ganzen Umweg über das Programm PDUSpy sparen. Wir wissen aber nicht ob dies von allen Handys unterstützt wird. | ||||
Probleme gab es auch beim Abspeichern der SMS im Handy , es wollte manchmal nicht funktionieren, wir kamen dann dahinter das es im Handy mehrere Speichermöglichkeiten gibt , also verschieden Speichemedien wo die SMS gespeichert werden können z.B. im SIM speicher , also der Speicherkarte, im Telefon selber , im Desktop, Display usw.Wir haben uns für das Verfahren "Speichern auf Simkarte" entschieden, weil wir dann ohne Komplikationen das Handy wechseln können ohne irgend etwas neu zu Programmieren, man kennt es ja, wenn man ein paar Tage nichts mehr damit zu tuen hatte, weiß man meist nicht mehr, was , warum usw... | ||||
Also erst mal testen auf welchen
Speicher zugegriffen wird
|
||||
AT Befehl
|
Antwort des Handys
|
|||
Mit folgendem Befehl sag ich dem
Handy in welch einem Speicher das Handy alle SM's speichern soll
nähmlich all auf der Sim Karte
|
||||
AT+CPMS=SM,SM,SM | +CPMS: 0,25,0,25,0,25 | Erstes SM bedeutet das Nachrichten aus dem SIM
Speicher gelesen und gelöscht werden Zweites SM ist der Speicher, in den geschrieben und aus dem heraus gesendet wird Drittes SM ist der Speicher, in dem ankommende Nachrichten abgelegt werden |
SM=SIM Speicher ME=Speicher im Endgerät MT=Kobination von SM und ME |
|
Dann überprüfen wir den Speicherplatz
mit folgendem AT Befehl
|
||||
at+cpms=? | +CPMS: ("MT","SM","ME"),("MT","SM","ME"),("MT","SM","ME" | |||
Programmm
|
||||
Hier kann das Programm in *.bas geladen
werden
|
||||
Aktualisiert 30.05.2019 |
||||
Copyright by ms2009 |