Ein bisschen Experimentieren
  GSM-Relais
 

GSM-Relais

Mit diesem Projekt lassen sich alle Verbraucher, die an das normale Stromnetz angeschlossen werden, per Handy geschalten werden.



Grundlage bietet dabei ein Atmel Tiny2313 mit 2KB Programmspeicher. Was das Projekt ziemlich eng werden lässt, was programmtechnische Freiheiten anbelangt.



Im ersten Abschitt wird das Handy oder besser gesagt, die Kommunikation Initialisiert. Zwar besitzen einige Handys defaultmäßige Baudraten, oder eine Multibaudraten-Erkennung, aber ich finde es besser, wenn man vorher mit dem Handy klar aushandelt, welche Baudrate verwendet wird.

Ich verwende in diesem Projekt 19200 Baud, weil diese Baudrate fast immer unterstützt werden sollte.

Mikrocontroller Handy
AT&Fr AT&FrnOKrn
AT+IPR=?r AT+IPR=?rn
+IPR: (0,300,1200,2400,4800,9600,14400,19200,28800,38400,57600,115200,230400),(460800)rn
rnOKrn
AT+IPR=19200r AT+IPR=19200rnOKrn
r und n soll backslash r bzw. backslash n heißen, aber hier übernimmt er das irgendwie nicht...

Mit dem ersten Befehl, wird das Handy erst einmal angefragt.
Beim zweiten werden alle unterstützten Baudraten des Handys abgefragt.
Der letzte Befehl der Initialisierung setzt die Baudrate auf 19200 Baud.

Wird nun das Handy angerufen, wird "RING" an den Mikrocontroller gesendet. Allerdings genügt es nicht, nur zu wissen, ob jemand anruft, sondern es soll ja auch überprüft werden, ob es auch eine "zertifizierte" Nummer ist. Um das heraus zu finden, hilft der Befehl "AT+CLCC"

Damit lässt sich dem Handy die Telefonnummer entlocken und sogar, unter welchem Namen im Telefonbuch diese gespeichert. ist. In meinem Prototypen mit einem ATmega8 konnte das Parsen des Input-Strings ausführlicher durchgeführt werden, so dass ich nicht die Nummer als Authentifizierung verwendet habe, sondern den Namen unter dem die Nummer gespeichert wurde. Damit lässt sich die "erlaubte" Nummer variieren, in dem man den Telefonbucheintrag einfach mit einer anderen Nummer belegt, den Namen aber gleich lässt. Mit dem Tiny2313 sind leider nur 2K Platz, so dass ich mich auf die Überprüfung der Telefonnummer beschränke.

Nun zum weiteren Kommunikations-Ablauf:

Mikrocontroller Handy
  rnRINGrn
AT+CLCCr at+clccrn
+CLCC: 1,1,4,0,0,"49172xxxxxxx",145,"Basti H",0rn
rnOKrn
AT+CHUPr AT+CHUPrn
OKrn

Nach einiger Zeit, wenn es ein paar mal geklingelt hat, legt das GSM-Relais mit "AT+CHUP" wieder auf und die Verbindung wird unterbrochen. Das ist gleichzeitig eine Quittierung für den Anrufenden, dass der Schaltvorgang erfolgreich war.



Nun ist aber immer noch das Problem, dass der Anrufer nicht weiß, ob er den Verbraucher an, oder aus gemacht hat.

An sich ist die Idee, dass nach jedem Anruf eine SMS gesendet wird, die einem den Status mitteilt. Leider hat auch dafür der Programmspeicher nicht ausgereicht. Wie eine SMS geschickt wird wurde schon im GPS-GMS Projekt erläutert.

Also wollte ich auf ein etwas geringeres Niveau herunter. "Wenn AN, dann Rückruf. Wenn AUS, dann nix"

Mit "ATD 49172xxxxxxx" kann das leicht bewerkstelligt werden.



Für das Debugging ist ein eigenes Progrämmchen zur UART-Kommunikation entstanden mit dem man µC oder Handy "simulieren" kann um die einzelnen Komponenten einzeln zu testen und zu entwickeln.



Hier ein kleiner Mitschnitt aus dem Com-Programm:


Hier findet sich der Initialisierungs-Teil. Der gesamte Mitschnitt bezieht sich auf die Daten, die von Handy in Richtung µC gehen. Bei der Initialisierung werden mit "AT+IPR=?" die verfügbaren Baudraten abgefragt. Mit "AT+IPR=19200" wird sie gesetzt.


AT&F

OK
AT+IPR=?

+IPR: (0,300,1200,2400,4800,9600,14400,19200,28800,38400,57600,115200,230400),(460800)

OK
AT+IPR=19200

OK


Ab hier findet der Anruf statt. Nachdem das "RING" empfangen wurde, wird mittels "AT+CLCC" die anrufende Telefonnummer ermittelt. Nach der Überprüfung und dem Schaltvorgang wird nun mit "AT+CHUP" aufgelegt und nach einiger Zeit zurückgerufen. Wird zurück gerufen, hat das Relais angeschalten, wird nur aufgelegt, wurde ausgeschaltet.


RING
AT+CLCC

+CLCC: 1,1,4,0,0,"49172xxxxxxx",145,"Basti H",0

OK

RING
AT+CHUP

OK
ATD 0172xxxxxxx

BUSY

Ein wirklich tolles Projekt, das mir viel Spaß gemacht hat, und was auch einen guten Nutzen hat. Mit dem verwendetet Finder 5V-Relais lassen sich Lasten bis 10A ohne Probleme schalten.

 
 
  Copyright by Bastian  
 
=> Willst du auch eine kostenlose Homepage? Dann klicke hier! <=