FAKEDOMAIN.DE

Hört sich erst mal seltsam an, ist aber so.
Der Hintergrund des Projektes war der, dass bei einem Bekannten der Zugang zu den Parkplätzen im Haus mit einer Schranke geregelt wird. Zum Öffnen der Schranke bekam jede Partei im Haus einen kleinen Hand-Funksender mit dem die Schranke geöffnet und geschlossen werden kann.
Das Problem war nun das, dass man gemäß Murphy den Sender entweder vergessen hatte oder jemand anderes ihn hatte. Bei einem früheren Projekt hab ich das ganze mal mit einem Linuxserver und einer ISDN-Karte gelöst, was aber hier Mangels ISDN und Linux-Router nicht möglich war. Aber warum gibts denn Mikrocontroller? Ich nahm also einen ATMega8, verband ihn mit einem alten Siemens S25 mit Prepaid-Karte drin und dem Handsender.
Die erste Version meines Programmes reagiert nur auf einen Anruf bzw. das RING-Signal. Ok, war ganz gut, aber jetzt konnte jeder die Schranke öffnen der das Handy anrief, egal ob absichtlich oder aus Versehen. Das war natürlich nicht so schön. So entwickelte ich weiter. Dabei kam die Version mit den Nummern im EEPROM und dem Display raus. Dadurch öffnete sich die Schranke nur dann, wenn der Anruf von einer der Nummern erfolgte, die im EEPROM gespeichert waren. Und das ganze mit Anzeige auf dem LCD, was ursprünglich nur als Debughilfe gedacht war.
So weit so gut. Nur war es immer lästig neue Nummern einzutragen. Das bedeutete für mich vor Ort zu fahren, das Gehäuse aufzuschrauben, das Programmierkabel aufzustecken und das EEPROM neu zu beschreiben. Da ich ja sowieso ein Handy dranhatte, der Atmel mit dem Handy redete, warum nicht die Bedienung per SMS fragte Piggeldy. "Nichts leichter als das" sprach Frederick und wieder wurde programmiert. Aber das zog sich hin, war doch nicht so leicht. Das Dekodieren einer SMS ist nicht ganz so einfach war wie ich es mir vorgestellt habe. Besonders da das S25 nur den PDU-Mode unterstützt. Ich hatte zwar schon mal was mit SMS gemacht aber das war nicht so knuffig. Dann benötigt man auch eine gewisse RAM-Grösse um die SMS ordentlich zu dekodieren. Daher ersetzte ich den Mega 8 durch einen Mega 32. Einen grossen Happen an Infos zu SMS fand ich auf www.nobbi.com. Den Rest aus diversen Dokus zum SMS-Standard. Dann beim Probieren gabs dann schon mal Speicherüberläufe durch Strings wenn zum Beispiel die anrufende Nummer mehr als acht Ziffern hatte (Wer rechnet schon mit zehnstelligen Nummern und das ohne Vorwahl, pah). Und wenn schon Schei..., dann mit Schwung. Also auch den kompletten Zeichensatz und die Sonderzeichenverarbeitung mit rein gemacht. Aber dann im endgültigen Code hab ich die Sonderzeichenbehandlung wieder rausgenommen da ich sie dort nicht brauchte.
Schliesslich war es fertig. Das ist nun das Gerät. Und folgendermassen funktioniert es. Das Handy, der Atmel und der Handsender werden von einem einzigen 12V-Netzgerät versorgt. Im Handy ist zwar noch ein Akku der aber nur dafür gut ist dass das Handy überhaupt funktioniert. Der Atmel wird über einen Stabi mit 5V versorgt und der Handsender und das Handy mit 6V. Der Handsender hatte ursprünglich zwei 3V CR2032-Zellen in Reihe drin die jetzt nicht mehr drin sind. Der Taster des Handsenders schaltet einen Pin gegen Masse. Also habe ich einfach den Pin des Atmels an den Eingang des Sender-IC angeschlossen den interenen Pull-UP aktiviert. Beim Senden ziehe ich den Pin einfach gegen Masse und gut ist. Das spart mir ein Relais. Das Handy ist über ein Widerstandsnetzwerk zu Pegelanpassung auf 3,3V am Atmel dran. Aber nur die TXD-Leitung vom Atmel. Die RXD ist direkt am Atmel. Und mehr brauch ich nicht an Leitungen zum Handy. Ach ja, am Handystecker habe ich die Anschlüsse so verdrahtet und über ein Relais geschaltet, dass das Handy glaubt in einer Ladehalterung zu stecken, so klappts auch mit dem Laden und dem automatischen Einschalten.
Beim Einschalten des Gerätes passiert folgendes:
Folgende Funktionen sind in der Version drin:
Folgende Dateien werden benötigt. Das ist zum einen natürlich die eigentliche Datei handyschranke.bas.Das ist der eigentliche Quellcode. Zum anderen wird die Datei smsinc.bas benötigt. Die ist zum Initialisieren des Handys und der SMS-Dekodierung zuständig.

Hier nun mal ein Paar Bilder.
Gehäuse Gehäuse Sendergehäuse Hier ist das Gerät im zusammengebautem Zustand. Auf dem Bild links kann man das Siemens erkennen. Oben auf dem Gehäuse ist noch ein Taster zu erkennen mit dem man von Hand den Funksender triggern kann, was übrigens durch die LED auf der Front angezeigt wird.
Auf dem zweiten Bild sieht man den Anschluss für den Handsender, den EIN-AUS-Schalter und den Netzteilanschluss. Ich benutze ein 12V-Steckernetzteil mit 1A zur Versorgung der gesamten Schaltung.
Auf dem letzten Bild ist der in einem Gehäuse verbaute Handsender zu sehen, der wie das Steuergerät auch, mit Kabelbindern und Klebesockel an der Wand befestigt ist.

Gehäuse Da das ganze als Experiment geplant war, hab ich das ganze auf einer Punktrasterplatine aufgebaut.

Gehäuse Und hier das ganze von der Vorderseite. Die Platine wird auf das Display aufgesteckt und verschraubt. Den Atmel betreibe ich mit einem 8Mhz-Resonator.

(C) Joachim Fossie Bär Reiter 2009