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)
also in deutsch eine Kurznachricht versendet.
Weil die meisten Alarmanlagen am Stromnetz gebunden sind , oder auch am festen Telefonnetz soll die hier vorgestellte Alarmanlage völlig autark arbeiten.
Also stellen ich hier eine Alarmanlage vor die erstens im Batteriebetrieb funktioniert, und zweitens ihre Alarmmeldung drahtlos über ein GSM Modem verschickt.
Da GSM Modem relativ teuer sind haben wir uns für ein Handy entschieden, weil in denen bereits ein vollwertiges GSM Modem enthalten ist allerdings für einen relativ geringen Preis .
Zur Zeit bekommt man komplette neue Handys die die hier vorgestellten Anforderungen erfüllen schon für ca 30 Euro während die GSM Modem bei ca 170 Euro anfangen.
Um mit dem Handy SMS zu versenden benutzen wir ein Siemens Me45 es geht aber mit den meisten anderen die noch die alten Steckverbinder für das Ladegerät haben ,
also die noch etwas größeren Lumberg-Stecker ( Lumberg ist die Herstellerfirma der Steckverbindungen).

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
um mögliche Fehlerquellen besser zu entdecken, und um auch ein besseres Verständnis für die ganzen Details zu bekommen .
Dazu wird ersteinmal folgendes benötigt:

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.
Als Spannungsversorgung kommen noch zwei alte Mignon Akkus zum Einsatz die meine ganze Schaltung mit Spannung versorgt. Ohne PIR Sensor liegt die Stromaufnahme bei max. 2,8 mA, mit PIR Sensor bei max. 7,9 mA.

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.
Der Com Port ist die Steckverbindung des Siemns Kabel am PC, ist in unserem Fall COM5, muss in den meisten Fällen aber angepasst werden, wenn man nicht weiß welche Schnittstelle man Verwendet, probiert man es einfach aus indem man bei 1 anfängt und sich langsam hocharbeitet, die restlichen angezeigten Daten können so übernommen werden wie rechts im Bild zu erkennen ist. Nachdem die Eingaben gegebenenfalls geändert wurden öffnen wir das Terminalprogramm und geben folgende Zeichen ein:
AT und anschließend mit der Return Taste bestätigen.Die Eingabe der Zeichen AT werden nun zum Handy gesendet und empfangen, das Handy sollte nun folgendes zurücksenden:OK

 

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 nichts zurück kommen liegt es oft daran das die Baudrate in der Terminal Konfiguration nicht korrekt es oder die falsche Schnittstelle eingestellt wurde.

 

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. 5 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
7
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. 88 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 !!
     
' Manfred Schrod ' sms Versand mit Atmega 8 mittels Siemens Handy
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