Das Projekt "Öldruck- und -temperaturanzeige" Marke Eigenbau geht mal wieder ein wenig weiter.
Bislang nutze ich nur einen Arduino Nano, "China" Druck- und Temperatursensor, I²C Display und CP2012.
Das Arduino ist selbst programmiert, Kennlinie vom Temperatursensor ist selbst aufgenommen und daraus Steinhart–Hart Koeffizienten ermittelt für die Berechnung unter EInbeziehung der Eingangsspannung zur Fehlerminimierung. Display im Getränkehalter plus Daten auf den I-BUS gesendet und von der I-BUS App da eingesammelt und angezeigt. (Beta-Version only). Beide Sensoren sind direkt ins Ölfiltergehäuse gesetzt.
Temperaturen habe ich im Vergleich gemessen und bin doch recht nah am echten Wert ![]()
Aktueller Fortgang: Einsatz eines 16bit Wandlers ADS1115* und evtl. Kommunikation via CAN BUS statt I-BUS, damit die Werte (vor allem Druck) "live" und nicht nur aller 2 Sekunden in der #ibusapp ankommen. Dazu habe ich begonnen einen BOSCH PST-F1 Sensor (misst Druck und Temperatur) einzubinden.
Wenn alles läuft schreib ich vielleicht mal eine Stückliste zusammen für DIY-Nachbauten. In "Produktion" wird das so nicht gehen ![]()
Ich bitte auch um Bewunderung des Ausschnitts in den Getränkehalter. 
Das Provisorium hält jetzt schon eine Weile und wird bei Gelegenheit mal schick gemacht ![]()
Falls Werte für den M57D30 interessieren:
Öldruck kalt im Leerlauf: ~2,5bar
Öldruck warm im Leerlauf: ~1,0bar
Sonst ist der Öldruck immer "200-500mbar" über der Drehzahl.. also z.B. 2.000 1/min ==> 2,2-2,5bar (bei betriebswarmen Motor)
Öltemperatur bei normaler Fahrt (auch AB Tempomat 130 km/h) um die 88-90°C - Volllast habe ich noch nicht gemessen.
*Arduino Nano hat "nur" 10-bit Analog-Eingänge: heißt 0-5Volt werden in 1.024 Schritten aufgelöst. Das ADS1115 hat mit 16-bit 65.536 Schritte - allerdings (je nach Range) für +/- 6,144V, also ca. 26.000 Schritte für 0-5V ==> kleinere Schritte heißt "ruhigeres" Messsignal bzw. weniger Glättung nötig. Praktisch heißt das für den (zum Glück linearen Drucksensor) mit nur dem Nano "rauscht" das Signal um 0,02bar - mit ADS1115 um nur 0,001bar ![]()
DIY Öldruck- und -temperaturanzeige
-
-
Hi,
ich bin eben auf dieses tolle Projekt gestoßen, da ich mir ebenfalls eine Öldruck-/Temperaturanzeige als DIY Projekt für meinen M57D30 basteln möchte. Ich finde deinen Aufbau simpel und genial!
Gibt es eine Stückliste die du vielleicht zur Verfügung stellen könntest für einen Nachbau?
Freue mich über eine Rückmeldung! VG -
Nettes Projekt. Aber viel zu viel analoges Zeug. Das im Auto, naja, kann man machen. Ich würde (bzw. habe) für was ähnliches einen Hella OPS-T verwendet. Ein super geiler Sensor. Die Auswertung ist sehr einfach, ein bisschen hin und her rechnen, kein analoges Gedöns.
*Arduino Nano hat "nur" 10-bit Analog-Eingänge: heißt 0-5Volt werden in 1.024 Schritten aufgelöst. Das ADS1115 hat mit 16-bit 65.536 Schritte - allerdings (je nach Range) für +/- 6,144V, also ca. 26.000 Schritte für 0-5V ==> kleinere Schritte heißt "ruhigeres" Messsignal bzw. weniger Glättung nötig. Praktisch heißt das für den (zum Glück linearen Drucksensor) mit nur dem Nano "rauscht" das Signal um 0,02bar - mit ADS1115 um nur 0,001bar

Wie kommst Du zu diesen Parameter / Werten? Wenn ich mir Deine Schaltung ansehe, sehe ich keine Präzisionsspannungsquelle (REF02 wäre so eine IC). SIeht so aus als würdest Du das ganze aus einem normalen Spannungsregler versorgen. Da von "Präzision" zu reden, nun ja. Der 10-bit ADC des Atmega ist mehr als ausreichend, selbst mit Standardbeschaltung an AVCC und AREF. Bei einem 16-bit ADC misst Du mehr Rauschen als Signal...
-
Hi,
ich bin eben auf dieses tolle Projekt gestoßen, da ich mir ebenfalls eine Öldruck-/Temperaturanzeige als DIY Projekt für meinen M57D30 basteln möchte. Ich finde deinen Aufbau simpel und genial!
Gibt es eine Stückliste die du vielleicht zur Verfügung stellen könntest für einen Nachbau?
Freue mich über eine Rückmeldung! VGHi, Ziel war es den Aufbau simpel und günstig zu halten. Ich schau mal, ob ich eine Liste zusammen stellen kann. Progammieren musst Du es dann "nur noch"

Nettes Projekt. Aber viel zu viel analoges Zeug. Das im Auto, naja, kann man machen. Ich würde (bzw. habe) für was ähnliches einen Hella OPS-T verwendet. Ein super geiler Sensor. Die Auswertung ist sehr einfach, ein bisschen hin und her rechnen, kein analoges Gedöns.
*Arduino Nano hat "nur" 10-bit Analog-Eingänge: heißt 0-5Volt werden in 1.024 Schritten aufgelöst. Das ADS1115 hat mit 16-bit 65.536 Schritte - allerdings (je nach Range) für +/- 6,144V, also ca. 26.000 Schritte für 0-5V ==> kleinere Schritte heißt "ruhigeres" Messsignal bzw. weniger Glättung nötig. Praktisch heißt das für den (zum Glück linearen Drucksensor) mit nur dem Nano "rauscht" das Signal um 0,02bar - mit ADS1115 um nur 0,001bar

Wie kommst Du zu diesen Parameter / Werten? Wenn ich mir Deine Schaltung ansehe, sehe ich keine Präzisionsspannungsquelle (REF02 wäre so eine IC). SIeht so aus als würdest Du das ganze aus einem normalen Spannungsregler versorgen. Da von "Präzision" zu reden, nun ja. Der 10-bit ADC des Atmega ist mehr als ausreichend, selbst mit Standardbeschaltung an AVCC und AREF. Bei einem 16-bit ADC misst Du mehr Rauschen als Signal...
Danke für die Blumen. Um offen zu sein, ich habe nach digitalen Sensoren gesucht, aber nur für die Temperatur den DS18B20 gefunden. Der ist an sich gut, aber die mechanische Adaption mit den "Hülsen" war mir zu wenig praktikabel. Für den Druck habe ich nichts gefunden. Der Hinweis zum Hella OPS-T ist super und dazu ist er auch noch preislich deutlich attraktiver als der Bosch PST-F1. Wäre was für die nächste Bastelstunde.
Das Thema Präzisionsspannungsquelle (oder Festspannungsregler) hatte ich auch im Sinn, wollte den Aufbau aber simpel halten. Offen gesprochen habe ich in Richtung Elektronik und Programmierung nichts gelernt, wohl aber ein wenig Erfahrung mit Messtechnik. Ich habe etliche Tests gemacht und den Einfluss der Versorgungsspannung für die Temperaturmessung mehr als deutlich gespürt. Ich nutze nur die USB Spannungsversorgung bzw. die 5V vom CP2012 - das läuft im Wagen stabiler als am USB vom PC oder Powerbank. Auch das habe ich mit Messung von Vcc hinreichend getestet und versucht im Code so gut es geht zu kompensieren. Auch wird das Signal so weit geglättet, dass man es "plausibel" ablesen kann, ohne willkürliche Sprünge aus dem Rauschen. Das ist mit 10-bit Auflösung ok, mit dem ADS1115 war es nochmal deutlich stabiler und weniger Glättung nötig. Dabei habe ich die Temperatur immer mit externem Thermometer und dem DS18B20 gegen gemessen, mit den Hausmitteln die man da hat im Bereich -10°C bis 98°C und lag kein halbes Kelvin daneben. In sofern denke ich, ist die Messung halbwegs validiert. Ich hatte in den zwei Jahren Entwicklung (wie man eben so Zeit findet) einigen Aufwand damit.
Aber bleiben wir mal auf dem Boden: welche Messgenauigkeit fordert man von so einem DIY Projekt? Und was können fertige Lösungen? Eine VDO Anzeige hat für die Temperatur eine Skala mit 10K Teilung und für den Druck 1bar Teilung. Angaben zur Messungenauigkeit gibt es nicht.
In der Praxis ist eine Auflösung von einem halben Kelvin und 0,1 bar doch schon sehr genau - der Messfehler liegt nachweislich deutlich drunter mit dem Aufbau. Dabei habe ich niemals das Wort "Präzision" erwähnt oder auch nur den Anspruch daran
Dennoch vielen dank für den konstruktiven Hinweis.
Hemi kennst du auch einen PWM Drucksensor bis 100bar?
-
Hi, Ziel war es den Aufbau simpel und günstig zu halten. Ich schau mal, ob ich eine Liste zusammen stellen kann. Progammieren musst Du es dann "nur noch"

Genau deshalb finde ich den Aufbau interessant!
Das wäre wirklich sehr nett, dann wäre der Einstieg etwas einfacher. Habe mich vor Jahren mit Arduino-Programmierung beschäftigt, sodass ich die Programmierung (hoffentlich) bei etwas ruhiger Bastelzeit hinbekommen werde. Im Zuge meiner bisherigen Recherche bin ich auf den BOSCH 0 261 544 01F schon gestoßen. Diesen hattest Du in deinem Beitrag ja auch erwähnt. Zu dem Sensor lassen sich die technischen Daten und Diagramme im Netz finden um die einzelnen Messwerte von Öldruck- und Temperatur in Celsius und bar zu interpretieren. Dann müsste man nur die Messwerte mittels Arduino in einem kleinem Display umgewandelt darstellen können. So zumindest mein bisheriger Plan dann.
Eine Frage noch: Was für ein Display ist das kleine orangene Display aus deinem E39 bzw. von welchem Hersteller (Bild 3)? -
Danke für die Blumen. Um offen zu sein, ich habe nach digitalen Sensoren gesucht, aber nur für die Temperatur den DS18B20 gefunden. Der ist an sich gut, aber die mechanische Adaption mit den "Hülsen" war mir zu wenig praktikabel. Für den Druck habe ich nichts gefunden. Der Hinweis zum Hella OPS-T ist super und dazu ist er auch noch preislich deutlich attraktiver als der Bosch PST-F1. Wäre was für die nächste Bastelstunde.
Wenn Du den Hella OPS-T nimmst, habe ich hier eine kleine Testimplementierung mit einem STM32: klick mich Tut ziemlich gut.
Das Thema Präzisionsspannungsquelle (oder Festspannungsregler) hatte ich auch im Sinn, wollte den Aufbau aber simpel halten. Offen gesprochen habe ich in Richtung Elektronik und Programmierung nichts gelernt, wohl aber ein wenig Erfahrung mit Messtechnik. Ich habe etliche Tests gemacht und den Einfluss der Versorgungsspannung für die Temperaturmessung mehr als deutlich gespürt. Ich nutze nur die USB Spannungsversorgung bzw. die 5V vom CP2012 - das läuft im Wagen stabiler als am USB vom PC oder Powerbank. Auch das habe ich mit Messung von Vcc hinreichend getestet und versucht im Code so gut es geht zu kompensieren. Auch wird das Signal so weit geglättet, dass man es "plausibel" ablesen kann, ohne willkürliche Sprünge aus dem Rauschen. Das ist mit 10-bit Auflösung ok, mit dem ADS1115 war es nochmal deutlich stabiler und weniger Glättung nötig. Dabei habe ich die Temperatur immer mit externem Thermometer und dem DS18B20 gegen gemessen, mit den Hausmitteln die man da hat im Bereich -10°C bis 98°C und lag kein halbes Kelvin daneben. In sofern denke ich, ist die Messung halbwegs validiert. Ich hatte in den zwei Jahren Entwicklung (wie man eben so Zeit findet) einigen Aufwand damit.
Wenn Du einen stinknormalen LDO nimmst, sagen wir einen LD1117-5.0, dann hat er einen Ripple von ca +-2%, das heißt also die Ausgangsspannung liegt irgendwo zwischen 4,9V und 5,1V (2% von 5V sind 0,1V). Bei einem 10-bit ADC sind es schon mal 20 Einheiten, wo man ggf. daneben liegt...
Ein REF02 hat einen Ripple 0,05%, sprich Du hast am Ausgang 4,99V bzw. 5,01V... Das ist dann schon eine ganz andere Liga.
Dann, der ADS1115 hat keinen Referenz-Eingang, das heißt der analoge Teil wird ganz normal über VCC versorgt, also mit +-0,1V.
In der Praxis ist eine Auflösung von einem halben Kelvin und 0,1 bar doch schon sehr genau - der Messfehler liegt nachweislich deutlich drunter mit dem Aufbau. Dabei habe ich niemals das Wort "Präzision" erwähnt oder auch nur den Anspruch daran

Dennoch vielen dank für den konstruktiven Hinweis.
Das Bezog sich auf Deine Ausführungen unter dem *
Diese theoretische Werte erreicht man vielleicht im Labor auf dem Tisch, niemals im Fahrzeug, never ever. Aber das ist auch nicht schlimm, denn mal ehrlich, es ist doch völlig Latte ob die Anzeige 2,1 oder 2,3 Bar anzeigt. Wir messen keine Spannungen an der Nerst-Zelle eines LSU 4.9...
Hemi kennst du auch einen PWM Drucksensor bis 100bar?

Ich kenne nur 1-2 Analoge, aber keine PWM. Hast Du schon bei Digikey / Mouser geschaut?
-
Hi, Ziel war es den Aufbau simpel und günstig zu halten. Ich schau mal, ob ich eine Liste zusammen stellen kann. Progammieren musst Du es dann "nur noch"

Genau deshalb finde ich den Aufbau interessant!
Das wäre wirklich sehr nett, dann wäre der Einstieg etwas einfacher. Habe mich vor Jahren mit Arduino-Programmierung beschäftigt, sodass ich die Programmierung (hoffentlich) bei etwas ruhiger Bastelzeit hinbekommen werde. Im Zuge meiner bisherigen Recherche bin ich auf den BOSCH 0 261 544 01F schon gestoßen. Diesen hattest Du in deinem Beitrag ja auch erwähnt. Zu dem Sensor lassen sich die technischen Daten und Diagramme im Netz finden um die einzelnen Messwerte von Öldruck- und Temperatur in Celsius und bar zu interpretieren. Dann müsste man nur die Messwerte mittels Arduino in einem kleinem Display umgewandelt darstellen können. So zumindest mein bisheriger Plan dann.
Eine Frage noch: Was für ein Display ist das kleine orangene Display aus deinem E39 bzw. von welchem Hersteller (Bild 3)?Nach Hemis Beitrag fühle ich mich als kleiner Fisch, aber muss dennoch darauf hinweisen: die Basis für eine halbwegs korrekte Temperaturmessung sind zwei Punkte:
* Kennlinie vom Temperatursensor ermitteln (Ausnahme sind die Werte vom Bosch PST-F1)
* daraus Steinhart–Hart Koeffizienten berechnen
Und ideal nur mit inits rechnen, nicht mit umgewerteten Spannungen oder ermittelten Widerständen - das bringt einen Rattenschwanz an Rundungsfehlern und unplausible Werte. (Kurzfassung aus den zwei Jahren..
)
Auch das Glätten und Runden spielt eine erhebliche Rolle für eine saubere Anzeige.
Den Einfluss der Versorgungsspannung wie Hemi sagt sollte man dann wohl doch mehr Beachtung schenken. Hier wäre nur zu schauen ob und wie man den Widerstand und die zwei Kondensatoren aus dem Beispieldiagramm vom REF02 mit einbaut.
Das Display ist ein übliches I²C 0,91 OLED in Weiß plus eine Rot-Orange Folie (#033) die appliziert ist.
Grob wäre es OHNE den ADS1115 (so wie es in meinem mittlerweile Ex-E39 läuft):Pos. Bezeichnung Artikelnummer Anzahl Preis Gesamt 1 AZDelivery Nano V3.0 mit Atmega328 7091357778080 1 13,99 € 13,99 € 2 AZDelivery Nano Terminal 4251850500707 1 5,99 € 5,99 € 3 MakerHawk 2 x I2C Display OLED 0,91 Zoll Weiß 128X32 0190033828051 0,5 8,49 € 4,25 € 5 Temperatur Geber Öl Kühlmittel Wasser - 1/8 NPT 1 8,90 € 8,90 € 6 DC 5V 1/8NPT Druck Sensor mit Kabel, 100psi 1 13,00 € 13,00 € 7 Kabel, z.B. 6x0,6mm² / 5 1 10,55 € 10,55 € 8 Textilklebeband 1 4,99 € 4,99 € 9 Widerstände, .. 1 5,00 € 5,00 € 66,67 € -
Alles anzeigen
Danke für die Blumen. Um offen zu sein, ich habe nach digitalen Sensoren gesucht, aber nur für die Temperatur den DS18B20 gefunden. Der ist an sich gut, aber die mechanische Adaption mit den "Hülsen" war mir zu wenig praktikabel. Für den Druck habe ich nichts gefunden. Der Hinweis zum Hella OPS-T ist super und dazu ist er auch noch preislich deutlich attraktiver als der Bosch PST-F1. Wäre was für die nächste Bastelstunde.
Wenn Du den Hella OPS-T nimmst, habe ich hier eine kleine Testimplementierung mit einem STM32: klick mich Tut ziemlich gut.
Das Thema Präzisionsspannungsquelle (oder Festspannungsregler) hatte ich auch im Sinn, wollte den Aufbau aber simpel halten. Offen gesprochen habe ich in Richtung Elektronik und Programmierung nichts gelernt, wohl aber ein wenig Erfahrung mit Messtechnik. Ich habe etliche Tests gemacht und den Einfluss der Versorgungsspannung für die Temperaturmessung mehr als deutlich gespürt. Ich nutze nur die USB Spannungsversorgung bzw. die 5V vom CP2012 - das läuft im Wagen stabiler als am USB vom PC oder Powerbank. Auch das habe ich mit Messung von Vcc hinreichend getestet und versucht im Code so gut es geht zu kompensieren. Auch wird das Signal so weit geglättet, dass man es "plausibel" ablesen kann, ohne willkürliche Sprünge aus dem Rauschen. Das ist mit 10-bit Auflösung ok, mit dem ADS1115 war es nochmal deutlich stabiler und weniger Glättung nötig. Dabei habe ich die Temperatur immer mit externem Thermometer und dem DS18B20 gegen gemessen, mit den Hausmitteln die man da hat im Bereich -10°C bis 98°C und lag kein halbes Kelvin daneben. In sofern denke ich, ist die Messung halbwegs validiert. Ich hatte in den zwei Jahren Entwicklung (wie man eben so Zeit findet) einigen Aufwand damit.
Wenn Du einen stinknormalen LDO nimmst, sagen wir einen LD1117-5.0, dann hat er einen Ripple von ca +-2%, das heißt also die Ausgangsspannung liegt irgendwo zwischen 4,9V und 5,1V (2% von 5V sind 0,1V). Bei einem 10-bit ADC sind es schon mal 20 Einheiten, wo man ggf. daneben liegt...
Ein REF02 hat einen Ripple 0,05%, sprich Du hast am Ausgang 4,99V bzw. 5,01V... Das ist dann schon eine ganz andere Liga.
Dann, der ADS1115 hat keinen Referenz-Eingang, das heißt der analoge Teil wird ganz normal über VCC versorgt, also mit +-0,1V.
In der Praxis ist eine Auflösung von einem halben Kelvin und 0,1 bar doch schon sehr genau - der Messfehler liegt nachweislich deutlich drunter mit dem Aufbau. Dabei habe ich niemals das Wort "Präzision" erwähnt oder auch nur den Anspruch daran

Dennoch vielen dank für den konstruktiven Hinweis.
Das Bezog sich auf Deine Ausführungen unter dem *
Diese theoretische Werte erreicht man vielleicht im Labor auf dem Tisch, niemals im Fahrzeug, never ever. Aber das ist auch nicht schlimm, denn mal ehrlich, es ist doch völlig Latte ob die Anzeige 2,1 oder 2,3 Bar anzeigt. Wir messen keine Spannungen an der Nerst-Zelle eines LSU 4.9...
Hemi kennst du auch einen PWM Drucksensor bis 100bar?

Ich kenne nur 1-2 Analoge, aber keine PWM. Hast Du schon bei Digikey / Mouser geschaut?
Danke für die ganzen Infos - obgleich ich mich damit irgendwie wie ein Erstklässler fühle. Aber hey, ich hab das ja auch nicht gelernt oder so
Ganz offen, ich finde die Projekte bei github spitze. Nur steig ich da selten durch. Muss ich mich wohl mal detailliert mit beschäftigen.
Den Hinweis zum REF02 nehme ich dankend an und schau mal, wie man das umsetzt oder ob ich doch eher auf den Hella OPS-T gehe, wenn ich sowas wieder bastel. Da gibt es auch ein paar Arduino Projekte mit. Und wenn ich PWM richtig verstanden habe ist der Einfluss der Versorgungsspannung hier nicht so relevant und auch die Verkabelung ist einfacher, da nur 3 Litzen nötig sind.
Sonst bin ich bei Dir, es geht bei solchen Projekten mehr um eine Ahnung vom echten Werte die keinen hohen Anspruch an minimalste Fehler stellt.
Danke für die konstruktive Kritik, auch wenn ich bei den Begrifflichkeiten oft Google fragen muss
- so ehrlich darf ich sein.
Was den "100bar Drucksensor" angeht: da habe ich nur nach "100bar PWM Drucksensor" gesucht und bin nicht fündig geworden. Ist auch mehr eine Idee aktuell. -
Besten Dank für die Zeit und Mühe eine kleine Teileliste zusammengestellt zu haben und weiteren Infos. Freue mich schon darauf bald mit dem Basteln beginnen zu können! VG