GPS Daten an PC schicken

  • Antworten:15
Simon Brem
  • Forum-Beiträge: 6

07.07.2010, 16:32:39 via Website

Hallo Gemeinde,

Ich bin relativ neu hier, dementsprechend erstmal HALLO!!!!
zu meinem Problem: Ich sitzt seit dieser Woche an einem Projekt, bei dem ich die Signalqualität von GSM und GPS eines Android Telefons live an einem PC aufzeichnen und auswerten soll. Dabei ist mir relativ freigestellt, wie ich Telefon und PC verbinde und wie ich die Daten bekomme. Bei GSM ist das auch alles halb so wild, über Bluetooth verbunden und mittels AT-Commands die Daten abgefragt. Problematisch wirds bei den GPS Daten. Meine Ideen dazu waren einmal, über Ad Hoc und einem SSH/Telnet/... Client direkt auf das Telefon zuzugreifen, scheitert aber bislang daran, dass man ohne das Telefon zu rooten nicht über SSH oder sonstiges drauf zugreifen kann (bitte berichtigen wenn das nicht stimmt), zum anderen wüsste ich dann, wenn ich über ssh auf dem Telefon bin auch noch nicht, wie ich dann an die GPS Daten komme. Andere Idee war, mittels einer App GPS daten kontunuierlich über Bluetooth rauszuschicken (BlueNMEA sollte das machen, klappt aber bei meinem Desire nicht, bricht mit einem Fehler ab). Soweit zu meiner Situation. Jetzt wollt ich euch fragen, ob ihr schon Erfahrung oder Ideen habt, wie ich das bewerkstelligen kann. Das das ganze live erfolgt ist dabei sehr wichtig, ich muss also am PC sagen können, dass ich zu einem Bestimmten Zeitpunkt mir die aktuellen GPS Daten hole. Hoffe ich hab das ganze soweit verständlich beschrieben.
Vielen Dank schon mal im Voraus!!!!!

Grüße

Antworten
Andy N.
  • Forum-Beiträge: 3.112

07.07.2010, 22:56:46 via Website

Eine eigene App schreiben, die Daten zwischen PC und Android austauscht willst Du nicht?

Antworten
Simon Brem
  • Forum-Beiträge: 6

07.07.2010, 23:07:45 via Website

Das wäre so eine Art Notlösung. Lieber wärs mir, wenn ich ne Lösung finden würde, die es mir ermöglicht, einfach ein beliebiges Android Telefon zu nehmen, es mit dem PC zu verbinden (Bluetooth, Wlan...) und mir dann die Daten davon zu holen ohne dort noch was installieren zu müssen. Gibt es da eine Möglichkeit, wie ich ohne das Telefon zu rooten, Zugriff auf telefoninterne Daten bekomme? Und vielen Dank schon mal für die Antwort!

Antworten
Timo D.
  • Forum-Beiträge: 30

07.07.2010, 23:37:42 via Website

Ich wollte eigentlich schon früher eine App schreiben die das Androidhandy als Bluetooth GPS-Maus ausgibt. Leider gibt es da ein Probleme. Ich habe ein Tattoo und da kann man das Bluetooth nicht verwenden zumindest mit Android 1.6 :-(

Wenn du Interesse und 1 bis 2 Wochen Zeit mit deinem Projekt hast würde ich aber mal versuchen Android 2.2 auf mein Handy zu spielen und die App programmieren. Würde dein Projekt dann als Motivation nehmen. Wollte die App dann auch kostenlos zur Verfügung stellen. Evtl. können wir ja auch ein Opensource Projekt draus machen.
Allerdiengs habe ich noch nicht geprüft ob sowas überhaupt machbar ist. (Ich könnte mir vorstellen das man evtl. nicht die gewünschten Daten vom GPS bekommt und das man evtl. doch root braucht wegen bluetooth aber notfalls geht es auf jedenfall wenn man noch eine Anwendung für den PC programmiert.

Antworten
Simon Brem
  • Forum-Beiträge: 6

07.07.2010, 23:46:37 via Website

Das klingt doch nach einem Wort, 1-2 Wochen hab ich noch Zeit, das sollte nicht das Problem sein. Das rooten sollte aber auf jeden Fall vermieden werden, soweit das möglich ist. Danke auch an Andy für den Link. Das bringt mich auch ein Stück weiter. (An der Stelle auch gleich noch mal ein Lob an die Community. Konstruktive Beiträge gleich am ersten Tag! Spitze!)

Antworten
Simon Brem
  • Forum-Beiträge: 6

08.07.2010, 11:41:41 via Website

hatte gerad noch eine Idee. Prinzipiell würde es mir auch reichen, daten direkt auf dem Android zu loggen und dann nach Ende der Messung mit dem PC auszutauschen und auszuwerten. Da ich jedoch auch mehrere Telefone im Vergleich testen soll, müsste ich die App remote vom PC aus gleichzeitig starten. Dafür sollte es doch eine Möglichkeit geben, Apps einfach remote starten und beenden zu können?

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

08.07.2010, 12:57:28 via Website

Das einfachste wäre sicherlich folgendes:

Telefon per USB an PC anschließen ...
Am PC aufrufen: adb shell cat /sdcard/gpsdaten.txt >gpsdaten.txt

Systemvoraussetzungen:
Pc mit USB Schnittstelle, Android SDK Tools am PC installiert, USB Kabel, USB Treiber am PC installiert.
Android Handy mit einer App welche die Daten am Handy nach /sdcard/gpsdaten.txt logged.

Das wäre einmal eine ganz simple Möglichkeit.

Darüber hinaus gibt es Apps die einen kleinen Webserver auf dem Handy implementieren so das Du per WLan auf das Handy zugreifen könntest. (Auf die SDCARD) oder per FTP ...

Eine etwas elegantere Methode um auf Live Daten zuzugreifen wäre, die zuerst beschriebene Methode so anzuwenden, dass nicht ein Logfile nachträglich abgeholt wird, sondern die Dateliefernde App am Handy die GPS Daten in den normalen Logger schreibt mit bestimmten TAGs. Dann wieder per USB Kabel eine Verbindung herstellen und den adb shell Logcat mit einem Filter auf das entsprechende TAG aufrufen und diesen Output auf einen Inputstream der Applikation auf dem PC umleiten ...

Letzteres wäre meiner Meinung nach die eleganteste Methode die auch am einfachsten, quasi schon fast mit Bordmitteln zu erledigen wäre.

lg Voss

Antworten
Simon Brem
  • Forum-Beiträge: 6

08.07.2010, 14:05:44 via Website

Danke Jörg, das sind top Vorschläge. An die Variante mit einem USB Kabel hab ich auch schon gedacht, leider fällt jegliche Kabelverbindung aus. Letztendlich dient das System der Messung der Empfangsstärke eines Telefons in unterschiedlichsten Varianten, sprich es kann sich in der Hostentasche oder auch irgendwo verschlossen befinden, deswegen Fallen leider die Kabelgebundenen Varianten aus. Aber die Idee mit dem Webserver klingt auch nicht schlecht, nur wüsst ich da auch noch nicht, wie ich konkret live an die GPS Daten rankomme? könntest du das weiter ausführen?
Grüße und vielen Dank!

Antworten
Matthias H.
  • Forum-Beiträge: 550

08.07.2010, 14:58:07 via Website

wie wärs wenn du irgend son tracker nimmst der dir die daten in google earth anzeigt da sind die gps daten ja drin wenn diese auch noch mit uhrzeit sind kannste die dann ja mit den gsm daten abgleichen.... oder hab ich irgendwas nicht verstanden?

Antworten
Simon Brem
  • Forum-Beiträge: 6

08.07.2010, 15:05:47 via Website

Die Daten sollen exakt zur gleichen Zeit gemessen worden sein, heißt ich müsste die Zeiten von PC und Android Phone zuerst synchronisieren, danach muss die Aufzeichnungsperiode auch noch identisch sein, sonst wird das ganze je länger ich es laufen lassen immer ungenauer. Wenn das ganze 5 Minuten läuft, dann würde das sicher noch vertretbar sein, aber wenn ich mal 3 Stunden Daten sammle werden die Zeiten sicherlich ordentlich auseinanderlaufen. Das ganze habe ich nicht wenn ich alles periodisch von einer zentralen Instanz aus abfrage (PC). (Versteh mich nicht falsch, ich bin für jeden Tipp dankbar! Nur will ich das ganze so sauber wie möglich lösen und da kommt für mich eine Nachsynchronisation erst sehr spät in Frage. Trotzdem Danke!)

Antworten
Matthias H.
  • Forum-Beiträge: 550

08.07.2010, 15:11:53 via Website

naja die idee stammt nicht direkt von mir sondern so wird bei spiegel reflex kameras oftmals das geotagging vorgenommen. da gibt es für die so n geotagger kostenpunkt 30-50 euro die mit der zeit der cam gesynct werden und dann eben den gnazen tag im rucksack/hosentasche des fotografen mitgenommen werden und dann abends den entsprechenden bildern zugeordnet werden... aber wenn dir das nicht reicht dann weiß ich derzeit auch nicht weiter...

Antworten
Timo D.
  • Forum-Beiträge: 30

09.07.2010, 01:16:44 via Website

Also ich habe mal geschaut und man kann direkt die NMEA Daten abgreifen allerdings erst ab Android 2.0.
Für dich vielleicht auch interessant man kann sich auch über die Java API eine liste von Sateliten zurückgeben lassen und deren Signal to Noise ratio abfragen.
Da ich aber eine App machen möchte die eine GPS-Maus emuliert werde ich die daten als NMEA schicken.

Antworten
Jochen Rühl
  • Forum-Beiträge: 133

09.07.2010, 12:08:36 via Website

Hi Simon,

ein Vorschlag mit recht wenig Aufwand wäre einen Webserver zu benutzen, der auf die Android Funktionalität zugreifen kann.
So einer wäre zum Beispiel der PAW Server.

Mit einem einfachen Skript (wenn Dir das reicht) wäre es möglich das GPS ein/aus zu schalten und auf die Daten zuzugreifen.

So ein Skript könnte im einfachsten Fall so aussehen:

1<bsh>
2if(parameters.get("startGps") != null) activateGps(true);
3if(parameters.get("stopGps") != null) activateGps(false);
4if(parameters.get("data") != null) print(getGpsLocation());
5</bsh>

Du könntest dann die Kommandos recht einfach mittels HTTP an den Server schicken.
In obigem Fall würde die Ausgabe beim Parameter "data" so aussehen:

1Location[mProvider=gps,mTime=1278669908000,mLatitude=48.22395348548889,mLongitude=8.118851981163025,
2mHasAltitude=true,mAltitude=189.0,mHasSpeed=true,mSpeed=0.0,mHasBearing=true,mBearing=57.65625,
3mHasAccuracy=true,mAccuracy=24.0,mExtras=null]

Gruß
Jochen

— geändert am 09.07.2010, 12:22:12

Antworten
Timo D.
  • Forum-Beiträge: 30

21.07.2010, 15:58:17 via Website

Also ich habe jetzt einen ersten Prototypen von meiner GPS Bluetooth Maus fertig. Wer das mal Testen möchte kann mir gerne ne Naricht mit seiner Email schicken.

Im Prinzip gibt sich das Android Handy mit der App als GPS Maus aus (Also es wird ein Serieller Port angeboten). An den kann man sich dann mit jedem Rechner der Bluetooth hat verbinden. Auf dem port werden dann NMEA daten ausgegeben. Diese können von allen üblichen Karten und Navigationsprogrammen ausgelesen werden.
Root is NICHT nötig. Und es sind auch keine speziellen Treiber auf dem anderen Rechner nötig

Antworten
Justin T.
  • Forum-Beiträge: 1

10.08.2010, 14:30:03 via Website

Auch wenn es jetzt wohl etwas spät kommt aber es gibt da eine App namens BlueNMEA, die eigentlich genau das macht :)

Antworten