Ein bisschen Experimentieren
  GPS - GSM
 

GPS - GSM Überwachung

Angelehnt an den Quellcode der Ankerwache erweitere ich das Einsatzgebiet. Anstatt einen Piepton beim Verlassen des "zulässigen" Bereichs ab zu geben, soll eine Kurznachricht (SMS) über ein angeschlossenes Mobiltelefon versendet werden.

Zum Beispiel sind bei Luxus Autos solche Tracker eingebaut. Bei "unbeabsichtigter" in Bewegungsetzung erkennt das GPS Modul die Ortsänderung und meldet das der Zentrale oder dem Besitzer.

In diesem Projekt kommen drei Schlüsseltechnologien zum Einsatz. Den Kern dieses Moduls bildet ein kleiner Atmega8L µController. Er verarbeitet fortwährend die Positions-, Zeit- und Richtungsdaten des GPS-Empfängers. Genauere Literatur zum NMEA Standard, sowie zu der Auswertung der Daten findet sich im Projektarbeitsbericht über APRS.
Am besten erklärt sich die Funktion anhand eines Ablaufs des Einsatzzwecks.

Prinzipiell verwendet dieses Projekt den Algorythmuss des Ankerwache-Projekts. Wird das System in Betrieb genommen und liegen gültige Daten an, besteht die Möglichkeit das Modul "scharf" zu stellen. In diesem Modus wird die derzeitige Position gespeichert. Bewegt sich das Objekt an dem das GPS-GSM-Modul angebracht ist nicht, oder nur in einem bestimmten Tolleranzradius, so bleibt der µC passiv. Die Tolleranz ist in diesem Projekt vorallem wegen der GPS-Ungenauigkeit etwas größer aus zu legen.
Tritt nun das Modul aus dem vorgegebenen Bereich aus, wird über das angeschlossene GSM-Module (hier durch ein Mobiltelefon mit Datenkabel realisiert) eine SMS an eine einprogrammierte Telefonnummer gesendet.
Diese SMS enthält zum einen die Positionsdaten, sowie Zeit und aktuelle Richtung.

Somit ist natürlich ein Tracking des Objekts möglich. Die Intervalle in denen die Positionsdaten versendet werden sollen ist einstellbar.
Genauso hier. In erster Instanz wird µController, GPS und das Handy in drei verschiedenen Modulen zusammenarbeiten. Später soll mindestens der µC und das GPS Modul in einem Gehäuse Platz finden.

Ein erster Test sollte die Kommunikation mit dem Telefon herstellen und Testen. D.h. die Parameter herausfinden. Die meisten Telefone unterstützen mehrere Baudraten, 19200 ist aber anscheinend standartmäßig für alle anwendbar. Auf dem unteren Bild sieht man den TTL-RS232 Konverter, der ja hier auch beschrieben wird, das zugehörige Datenkabel und die Verbindung mit dem PC. Weiter unten zeige ich einen Screenshot der kleinen Software, die ich speziell für die Befehle eines Mobiltelefons geschrieben habe.
Zum Test wurde der Konverter einfach auf einem Steckboard aufgebaut. Die Schaltung geht ja recht schnell und einfach auf zu bauen.



Eventuell erhält das Modul auch noch die Möglichkeit auf Abruf die Positionsdaten zurück zu senden. Dieses Feature ist aber bislang noch nicht in Arbeit. Darüber hinaus gibt es für neuere Handys eine Software, die bei Anruf von einer bestimmten Nummer, das Mikrofon aktiviert, ohne zu klingeln. So kann evtl. sogar mitgehört werden, was drum herum passiert. Diese Funktion ist unabhänig vom µC.
Man muss dazu sagen, dass diese Anwendung Datenschutzrechtlich natürlich bedenklich ist. Aber es ist ja nur eine Idee. Für welchen Einsatzzweck so etwas Verwendung findet kann man ja nie wissen.

Sollte sich das Objekt nach kurzer Zeit wieder im vorgegebenen Bereich befinden, so ist davon auszugehen, dass die Positionsbestimmung nicht fehlerfrei war. In diesem Fall werden keine weiteren Nachrichten gesendet. Lediglich in der Zeit, in der sich das Objekt außerhalb des Bereiches aufgehalten hat.

So findet diese Verschmelzung von GPS und GSM in vielen einsatzgebieten Verwendung. Zum Beispiel das Tracking von Objekten, wie es der APRS-Ansatz auch verfolgt. Bestimmung und Ortung von Personen und Fahrzeugen, sowie tatsächliche Objektüberwachung.



In den ersten Anläufen verliefen die Kommandos und Antworten des Handys zuverlässig. Ein kleines eigenes Tool erleichtert dabei die Arbeit. Das Sony Ericson arbeitet über die serielle Schnittstelle (RS232) mit den Einstellungen 19200,n,8,1.
Verwendung findet hier ein Marktübliches SonyEricsson Mobiltelefon. Entscheidend bei der Auswahl des Telefons ist es, dass es direkt über UART (also seriell) angesteuert werden kann. Dieses Telefon und ich nehme an, die meisten anderen auch können direkt angesteuert werden. Außer Nokiatelefone.
Hardwaremäßig werden also nur drei Kabel benötigt, Rx, Tx und GND. In der Kategorie Quick and Dirty genügen sogar nur zwei Kabel für das Telefon. Denn nach Abschluss des Projektes habe ich erkannt, dass der Atmega mit einen 8KB Programmspeicher an seine Grenzen stößt, so dass die Funktion des reinen SMS Versands und GPS Parsens vorerst alles ist. Also könnte man auf den Rückkanal des Telefons verzichten. Wir könnten auf Meldungen vom Telefon sowieso nicht reagieren.



Als nächsten Einsatz wäre sogar denkbar das Empfangshandy an den PC an zu schließen, der dann die Position auf Karten anzeigt, oder weiter routet und ins Internet überträgt. Siehe googleAPRS.

Das GPS Modul ist derzeit noch ein fertiger Empfänger mit integrierter Antenne. Da der Atmega8 nur einen UART bestzt musste hier eine Lösung gefunden werden. Ist eine komplette Verdrahtung, also GPS Rx, GPS Tx, GSM Rx und GSM Tx notwendig, ist die Überlegung, beide Eingänge über zwei Dioden miteinander zu verbinden und dem µC zu zu führen.

Eine nicht so saubere Lösung wäre, auf alle, nicht unbedingt benötigten "Kanäle" zu verzichten. In erster Überlegung wäre das z.B. der Rx Pfas des GPS-Empfängers. Da sich der µC seine Daten nur aus dem Standartdatensatz "$GPRMC" holt, und dieser grundsätzlich ohne Aufforderung versendet wird, ist ein Sendepfad zum GPS nicht zwingend notwendig. Bei dieser Überlegung muss man bedenken, dass der Empfangspfad zum µC zwischen den Modulen zwar getrennt ist, beide Empfangssignale aber trotzdem am Eingang ankommen. Ind diesem Fall ist es wichtig, dass das GPS während eines Erwarteten Empfangs des GMS Moduls, disabled wird.

Dafür gibt es einen eigenen Enable-Pin am GPS-Empfänger. Dieser schaltet lediglich das Senden der Daten ab, die Positionsbestimmung bleibt davon unberührt. Das heißt, sobald der Enable-Pin wieder aktiviert wirde, liegen sofort wieder gültige Daten an.
Solange aber ein externes GPS-Modul verwendet wird, gibt es diesen Pin aber nicht.

Eine Lösung die dem Bereich "Quick-an-Dirty" zugeordnet werden kann ist, gänzlich auf die Meldungen des GSM-Moduls zu verzichten. Das bedeutet, dass der µC-Rx direkt mit vom Tx-GPS versorgt wird und der Rx-GSM an den Sendepfad des µC angeschlossen wird.

Bei dieser Variante ist es dann aber nicht mehr möglich den Status des Telefons zu erfahren. Das ist aber eigentlich essentiell bei der Versendung einer Nachricht. Denn zu allererst wird dem Telefon über at+cmgs="länge" signalisiert, dass man eine Nachricht senden möchte und wie lange diese sein wird.
Und erst nach dem Acknowledge (einem "> ") des Telefons kann die Nachricht PDU-codiert vom µC an das Telefon übertragen.

Kann man dieses Ack per Timeloop ernahnen, kann auch direkt die Nachricht gesendet werden.
Das funktioniert inzwischen optimal. Da das Timeout des Mobiltelefons sehr großzügig gewählt wurde, kann man vorsichtshalber etwas länger warten und die Daten sicher versenden.
Bitte denkt daran, dass erst at+cmgs=33rn, dann die PDU-Daten + rn und dann mit CtrlZ abgeschlossen die Nachricht versendet, fehlt das rn am Ende der PDU-Daten erzeugen wir einen Fehler.

Mit diesem GSM Quelltext erschließen sich viele neue Einsatzgebiete.
 
  Copyright by Bastian  
 
Diese Webseite wurde kostenlos mit Homepage-Baukasten.de erstellt. Willst du auch eine eigene Webseite?
Gratis anmelden