Temperatur Datenlogger mit OBD-Schnittstelle

  • Kunde: Machbarkeitsstudie
  • Jahr der Umsetzung: 2013

Ziel ist die Erfassung von mehreren Temperaturen in einem Auto. Außerdem sollen einige Daten per Onboard-Diagnose (OBD) ausgelesen werden. Die Messdaten sollen inkl. Zeitstempel auf einer SD-Karte gespeichert werden. Eine spätere Auswertung kann dann mittels üblicher Tools, z.B. Matlab / GNUplot erfolgen.

Es gibt bereits verschiedene Geräte unterschiedlicher Hersteller, welche genau diese Funktionen zur Verfügung stellen. Ziel dieser Studie ist zu zeigen, dass wir in der Lage sind ein solches Gerät von A bis Z selbst zu entwickeln. Weiterhin wollen wir zeigen, dass wir in der Lage sind Sonderwünsche in ein individuelles Produkt zu integrieren. Und das alles zu einem vernünftigen Preis!

Anwendung

Obwohl es sich hier um eine Studie handelt, gibt es ganz konkrete Anwendungsmöglichkeiten für dieses Gerät.

Hauptanwendung ist sicherlich die thermische Vermessung von Fahrzeuginnenräumen. So ist es möglich eine neue Klimaanlagensteuerung unter realen Bedingungen zu testen. Die gesammelten Messdaten können mit den in der Automobilentwicklung üblichen Tools ausgewertet werden.

Umsetzung (Hardware)

Als Basis dient ein Mikrocontroller vom Typ STM32F4 (Cortex M4) mit 168MHz. Dieser ist auf einem Evo-Board mit weiteren Komponenten integriert. Das Board liefert viele Schnittstellen, z.B. SPI, I2C, CAN, Analog I-O, Digital I-O. Wir nutzen die SPI zur Ansteuerung eines kleinen Displays (OLED), 2 Digital Inputs für Taster, sowie 2 Kombi-IOs für die Buskommunikation (1-Wire).

Die Temperatursensoren sind per 1-Wire-Bus digital angeschlossen. Per USB wird das Board mit Strom versorgt. Die OBD-Schnittstelle wird als Erweiterungsplatine per SPI an die Hauptplatine angebunden. Das Ganze ist in einem einfachen Kunststoffgehäuse mit Alu-Frontplatte untergebracht.

STM32F4

Umsetzung (Software)

Eine Besonderheit unserer softwareseitigen Umsetzung ist die Verwendung der Programmiersprache C#. Im Mikrocontroller-Umfeld werden üblicherweise die Sprachen C oder C++ verwendet. Warum nun C#? Ganz einfach: C# ist die modernere und bessere Sprache. Sie bietet viele Vorteile gegenüber C und C++. Dennoch wird sie in diesem Umfeld so gut wie gar nicht einsetzt. Das hat zum einen historische Gründe und zum anderen braucht man eine spezielle .NET-Runtimeumgebung. Diese ist jedoch inzwischen für einige Plattformen verfügbar.

Auf Basis des .NET-Microframeworks haben wir die Software in Visual Studio entwickelt. Besonders spannend war die Implementierung des 1-Wire Treibers. Solche hardwarenahen Programmbestandteile werden üblicherweise in C programmiert.

Ergebnis

Wir konnten zeigen, dass man auch in C# Mikrocontrollerprojekte schnell und einfach umsetzen kann. Die .NET-Laufzeitumgebung hat sich als praxistauglich erwiesen. Das Entwickeln und Debuggen von Controlleranwendungen in Visual Studio war sogar einfacher und besser verglichen mit den üblichen Mikrocontroller-Tools.

  • Mikrocontrollerprojekte in C# umsetzbar
  • .NET-Laufzeitumgebung praxistauglich

1-Wire Bus

1-Wire bzw. One-Wire oder EindrahtBus beschreibt eine serielle Schnittstelle der Firma Dallas Semiconductor Corp., die mit einer Datenader auskommt, die sowohl als Stromversorgung als auch als Sende- und Empfangsleitung genutzt wird. Verfügbar sind integrierte Bausteine zur Temperaturmessung, Akkuüberwachung, Echtzeituhr, kleine Speicher etc.

Die eingesetzten digitalen Sensoren zeichnen sich durch einen niedrigen Preis bei hoher Genauigkeit aus. Anders als übliche analog Sensoren hat die Leitungslänge keinen Einfluss auf das Messergebnis.

Digitaler Temperatur Sensor

2018-03-08T10:37:18+00:0008.07.2013|