© 2011 Sandro Liebscher Kabel_eingesteckt

Datenübertragung vom Auto ins Internet

Dieser Artikel beschäftigt sich damit, wie die Daten überhaupt vom Modellauto auf unsere Internetseite kommen. Daran sind die verschiedensten Technologien beteiligt, die präzise zusammen arbeiten müssen, um letztlich die Anzeige zum Beispiel der Raddrehzahl in einem Diagramm auf der Internetseite zu ermöglichen.

Datenerzeugung und -verarbeitung auf dem Auto

Drehzahlsensor

Der Drehzahlsensor nimmt das "Zebramuster" auf dem Inneren der Felge wahr.

Genaue Ansicht des Zebramusters

Im ausgebauten Zustand ist das Zebramuster noch besser erkenntlich, (links: Sensor und Bremse, rechts: Felge mit Schwarz-Weiß-Zebramuster)

Als erstes müssen Messwerte auf dem Auto über Sensoren erfasst werden. Dies ist im Artikel Raddrehzahlsensoren näher erläutert. Ganz ähnlich funktioniert es auch mit den weiteren Sensoren für Gierrate, Lenkwinkel und so weiter. Nachdem die Daten aufgezeichnet wurden, werden sie auf unserem Microcontroller vorverarbeitet. Dies passiert in der Programmiersprache C, da diese sehr systemnah und schnell ist.

Der Mikrocontroller  wandelt die Daten nun in CAN-Botschaften um. Der CAN-Bus ist besonders im Automobilbereich stark verbreitet und legt ein Austauschformat für die Vernetzung von Steuergeräten fest. Die Botschaften werden in diesem Format vom Microcontroller zu einem WLAN-Modul gesendet, wo die Daten das erste mal die Ebene der Kabel und des Metalls verlassen und “durch die Luft” übertragen werden.

Der Aufzeichnungsrechner – Mittler zwischen Auto und Server

Der Rechner (bei uns ein ganz normaler Laptop) empfängt die Daten per WLAN und verarbeitet sie in einem Java-Programm. Java verwenden wir, da damit erstellte Programme auf verschiedenen Betriebssystemen laufen und wir somit ein relativ unabhängiges System haben. Weiterhin ist Java sehr ausgereift und mittlerweile auch richtig schnell.

Schon beim Starten hat sich das Programm beim Server angemeldet und von diesem die Zugangsdaten zur Datenbank erfahren. Die Datenbank ist darauf spezialisiert, Daten in großer Anzahl über lange Zeiträume zu speichern und stellt sozusagen das Gedächtnis unserer Versuche dar. Damit ist nun alles so weit bereit für die nächste Umwandlung und Übertragung der Daten. Sobald die Daten benötigt werden, kann das Programm die vom WLAN erhaltenen Datensätze sammeln und in festen Abständen über das Internet an die Datenbank versenden. Das Sammeln ist notwendig, da das Auto alle 5 Millisekunden nahezu alle Sensorwerte und Zustände (Geschwindigkeit, Blinkerstatus, Radschlupf, …) sendet, was einfach ein zu kurzer Abstand für den langen Weg über das Internet ist. Eine Datenbank verträgt es eher, wenn sie in größeren Abständen eine ganze Menge an Daten verarbeiten darf. Deswegen senden wir alle halbe Sekunde mehrere hundert Werte.

Der Server – Arbeiten nur wenn es sein muss

Der Server  ist der Mittelpunkt des Versuches. Er arbeite jedoch nur auf Anfrage. Zum Beispiel wenn die Daten in die Datenbank geschrieben werden müssen. Oder wenn der Nutzer die Daten sehen will. Er ist somit auch Übersetzer zwischen den Sprachräumen. Er läuft in Ruby On Rails, einem recht jungen Framework, welches extra für die agile Erstellung moderner Internetseiten geschaffen wurde.

Daten beim Nutzer – Endlich am Ziel

Der Nutzer hat den Versuch im Browser geöffnet und hat die Abfrage der Daten gestartet. Über JavaScript (einer Programmiersprache für dynamische Internetseiten, die in letzter Zeit immer beliebter wird und übrigens nichts mit dem oben schon erwähnten Java zu tun hat) wird regelmäßig gefragt, ob neue Daten vorhanden sind. Der Server liefert diese als JSON an den Browser des Nutzers. JSON ist ein weiteres Austauschformat, welches sich durch einen gutes Verhältnis aus Nutzdaten und Overhead auszeichnet. Der Browser verarbeitet die Daten dann ein letztes Mal und stellt sie – natürlich dynamisch, ohne neu Laden der Internetseite – in der gewünschten Form dar. Dazu kann beispielsweise ein Diagramm dienen.

Ein Diagramm auf der Internetseite

So könnten dann die Drehzahlen auf der Internetseite dargestellt werden.

Zusammenfassung

Die Daten durchlaufen viele verschiedene Stationen und werden in diverse Formate umgewandelt, um den langen Weg vom Auto auf den Bildschirms des Nutzers unbeschadet und möglichst schnell zurück zu legen. Für jeden Zwischenschritt wurde versucht eine möglichst effektive Art der Übertragung und Speicherung zu finden. So hängt die Geschwindigkeit letztlich beinahe ausschließlich von der Geschwindigkeit der Internetverbindungen ab. Im Idealfall sind die Daten in etwas mehr als einer Sekunde diesen langen Weg gegangen.

Der Kommunikationsablauf im Ganzen noch einmal an Hand einer Grafik erklärt. Dabei sind alle Technologien und Austauschformate aufgeführt. (Anklicken zum Vergrößern)

One Trackback

  1. By iSuPIa » CAN-Bus mit JAVA auslesen on 1. März 2012 at 10:59

    [...] Wie das Zusammenspiel der einzelnen Komponenten erfolgt haben wir bereits im Artikel Datenübertragung vom Auto in das Internet genauer erklärt. An dieser Stelle wollen wir nun einen genaueren Blick darauf werfen, wie man [...]

Kommentieren

Emailadresse wird niemals gezeigt oder weitergegeben. Obligatorisch *

*
*

Diese HTML tags funktionieren: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>