Projektvorstellung: Kettenölung und Griffheizung die 2.

UPDATE: Ein Nachfolgerprojekt ist gerade am Entstehen. Diesmal mit Schaltplänen und noch größerem Umfang. Es findet auch ein Wechsel vom Arduino auf den NodeMcu statt (Code bleibt weiterhin Arduino).
Nachfolgeprojekt auf GIT

Vor langer langer Zeit habe ich hier mal mein Projekt vorgestellt. Es geht darum am Motorrad die Kette automatisiert wegstreckenabhängig zu ölen und die Heizgriffe automatisch abhängig von der Außentemperatur zu regeln.
Die aktuellen Zustände sollen an einem Display ablesbar sein und irgendwie muss man das Ding dann auch noch Parametrieren.

Meine vorherige Lösung war ein Arduino UNO mit einem DOGM163 (also Textlcd) und einem DS18B20 für die Temperaturmessung. Dazu zwei Logiklevel Mosfets zur Ansteuerung der Griffe und der Pumpe.
Zwei Taster am Display dienten dazu per Menüführung die Einstellungen zu machen.

Das Ergebnis war jetzt einige Jahre (ich glaube 4) in meinem Motorrad verbaut und hat ordentlich funktioniert.

Warum jetzt nochmal von vorn?

  1. Das Display ist ungeschickt. Die Ziffern sind zu klein und die Informationen in reiner Textform nicht immer sinnvoll. Außerdem geht mir so langsam die Oberfläche kaputt und es wird schlecht lesbar. Das will ich jetzt anders machen.
  2. Die Taster am Display sind sinnlos. Das braucht man nicht und die Einstellerei geht mit anderen Mitteln deutlich besser.
  3. Es sind einige Funktionen integriert, die nicht wirklich Sinn machen (z.B. progressive Kettenölung)
  4. Es fehlen Funktionen, die Sinn machen würden (z.B. verzögerte Kettenölung abhängig von der Geschwindigkeit)
    • und das ist der Hauptgrund - will ich das Projekt diesmal so realisieren, dass es auch einfach nachgebaut werden kann.

Features:

  • Automatische Ölung der Kette durch Pumpe gemäß einstellbarer Wegstrecke
  • Verzögernug der Ölung, bis das passende Geschwindigkeitsfenster erreicht ist. (je schneller man fährt, desto schneller ist die Kette und umso mehr wird vom frischen Öl sofort abgeschleudert. Daher versuche ich einen Zeitpunkt zum ölen zu finden, wenn die Kette langsam genug ist. Natürlich wird nach einer gewissen Zeit unabhänig von der Geschwindigkeit geölt)
  • Automatische Aktivierung und Regelung der Heizgriffe abhängig von der Außentemperatur. Die Regelung erfolgt linear.
  • Anzeige der Zustandsinformationen in einem Display (Außentemperatur, anliegende Heizleistung, aktuelle Geschwindigkeit, aktuelle Wegstrecke und Anzeige des Notlaufmodus, wenn das Tachosignal fehlt)
  • Einstellung der Parameter über Bluetooth (Android App, aber auch über andere serielle Übertragung möglich)

Nötige Hardware:

  • Arduino Nano (china clone)
  • DS18B20
  • Dog s102
  • HC-06 Bluetooth Adapter
  • 2x IRF 3708 (als Treiber)
  • 4,7k Widerstand (Pullup für den Dallas)
  • BAT42 (Tachosignal)
  • 1n Kondensator (ebenfalls Tacho)

Spannungsschutz

  • Zener Diode 5W, 15V
  • 47mü Drossel
  • 10mü Kondensator

Dazu noch bischen Kabelkram zum verdrahten.

Preislich sollte sich das Ganze in Grenzen halten.
Arduino ca. 8€, DS als wasserdicht 4€, das OLED 10-11€, Bluetooth 7-8€. Der Rest ist Kleinkrust.
Man sollte also mit knapp über 35€ für die Steuerung ansich hinkommen. Fehlt halt dann noch Gehäusekram (Display und Controller) und dann halt Griffe sowie Pumpe.

Warum hab ich mich für das OLED entschieden?
Ganz einfach: Es gibt keine anderen kleine I2C fähigen Displays. Ich hab noch ein DOGS102 zur Hand. Das muss man aber 1. beschalten (3 Kondensatoren), 2. Steuersignale wandeln (es will 3,3V) und 3. mit ganzen 7 Adern anbinden anstatt mit nur 4. Die ganze Kabelarbeit ist sowieso schon fummelig genug.
Außerdem ist 128x64 denke ich ein ganz gängiges format (findet man viele Displays), so dass man ohne große Codeänderung auch ein anderes Display verwenden könnte (das Layout würde passen).

Im Endeffekt soll man den Controller modular verwenden können. Wer kein Display will/braucht, schließt halt einfach keins an. Wer nur die Heizung will, lässt halt den Öler weg, wer nur ölen will, lässt halt die Heizung weg.
Updates und Änderungen sind jederzeit einfach zu machen, sofern man den Arduino nicht festlötet. Abziehen, an den PC hängen, hochladen und fertig.

Leider hab ich gestern mein Display geschrottet (ohne dritte Hand an so nem Miniding löten ist halt einfach nix) und jetzt muss ich warten, bis das Neue da ist. Daher gibts jetzt auch noch keine Bilder, wie die Sache nachher aussehen wird. Das kommt dann ein wenig später.

Hier ein paar Bilderchen

Fliegender Aufbau der Schaltung mit Potis zum simulieren der Temperatur und der Geschwindigkeit

So sieht das Display im Gehäuse aus, wenn es noch nicht vergossen ist

Und hier das fertig vergossene Display. Hat leider nicht 100%ig geklappt, ich hätte die Kaltglasur erst noch andicken lassen müssen. So war sie zu dünn und es ist ein wenig unten durchgelaufen. Dadurch ist sie eingesackt.
Die Beleuchtung ist übrigens weiss, ich hab sie aber per Widerstand gedimmt und dann wird sie leicht bläulich. Die Kamera macht daraus ein kräftiges Blau es ist aber in der Realität deutlich weniger blau, als es hier aussieht

Kurz zum Inhalt der Anzeige:
Ganz groß die Außentemperatur. Das ist für mich auf Dauer die interessanteste Information. Unten die Geschwindigkeit und der zurückgelegte Weg bis zur nächsten Ölung als Balken (voller Balken = Ölen).
Rechts dann die aktuelle Einstellung der Griffheizung als Pfeil auf der Skala sowie unten als Zahl (wenn sie Aus ist, dann steht da auch einfach "aus").

Oben oder links hätte ich noch Platz für Symbole, falls ich da was bräuchte. Aktuell seh ich da keinen Bedarf. Allerdings könnte man noch einen Regensensor integrieren, dann kann man da anzeigen, wenn Regen erkannt wurde und der Modus aktiv ist. Oder z.B. den Füllstand vom Öltank anzeigen. Das müsste man dann aber erstmal anlernen und es würde dann halt bei jedem Pumpvorgang ins EEPROM geschrieben (es sei denn ich mach ne Zündungserkennung mit Nachlauf, so dass erst beim Abstellen der Zündung gespeichert wird - wäre aber zu kompliziert).

Die neue Steuerung ist jetzt verbaut. Nach dem Einschalten zeigt sie für 30sec die aktuelle Einstellung an:

Danach wechselt sie in den Betriebsmodus. Leider ist der Kontrast des Displays nicht so besonders. Wenn die Sonne richtig scheint, dann erkennt man nur sehr schwer was. Das war mir aber auch vorher schon klar.

Und hier dann der "Rest" unter der Sitzbank. Der Arduino passt samt der Beschaltung (2 MosFets, Diode, Kondensator, OneWire Widerstand, Bluetooth Dongle und dem Anschluss fürs Display in das relativ kleine Gehäuse - die alte Variante mit Arduino Uno war deutlich größer). Pumpe und Öltank sind in der Seitenverkleidung versteckt, Strom kommt über ein Relais samt eigener Sicherung. Der Temperatursensor ist vorne unter der Lufthutze versteckt (vor Sonne geschützt und bekommt trotzdem gut Luft).
Was hier noch fehlt ist der Netzfilter. Der kann sogar klein ausfallen, da er keine Leistung abkönnen muss. Die Mosfets schalten ja auf Masse durch und Pumpe sowie Heizgriffe hängen direkt an der Versorgung (da muss man ja nix filtern).

Was Vibrationen angeht: Das Gehäuse ist nochmal in Schaumstoff eingepackt. Ich habs nur rausgeholt, damit man sieht, wie ich das gelöst habe.
Das Display ist auch ein anderes. Zuvor hatte ich 0,96", das neue ist jetzt 1,3" und das ist deutlich angenehmer zu lesen. Leider hats beim Bearbeiten des Gehäuses diesmal nicht so gut geklappt und ich hab Macken reingemacht. Die Glasur hab ich vorher ein wenig anziehen lassen, war aber nicht lang genug, es ist wieder ein wenig eingesackt. Also nächstesmal noch länger warten.

Das OLED Display mit I2C hatte leider Probleme mit der Datenübertragung. Es hat sich öfter mal aufgehängt und nicht mehr aktualisert. Bei der Fehlersuche hab ich dann leider alles gegrillt (aus Dummheit falsch angeschlossen).
Ergo alles nochmal neu mit dem noch vorhandenen 2. Arduino aufgebaut und das andere Display verwendet (das DOGS102).

Hier gibts die Sourcen (für Eclipse IDE) samt kurzer readme:
Sources

hi,

Das Display ist ungeschickt. Die Ziffern sind zu klein

jaja, auch biker werden älter... 8)

viel spaß mit dem projekt und

gruß stefan

Nee hat mit dem Alter nix zu tun. Liegt am schlechten Kontrast bei Sonnenlicht. Große Ziffern kann man dann noch relativ gut erkennen aber kleine Ziffern leider nicht.

Davon abgesehen: Mit ner tollen Grafik kommts halt auch cooler.
Wobei ich zugeben muss. Das OLED Display ist bei direkter Sonne auch nicht mehr ablesbar. Aber ich hab kein anderes kleines FSTN pos. Display gefunden, das auch I2C kann. Die ganzen anderen Displays der DOG Serie sind leider zu groß oder Textdisplays oder sie können kein I2C.

doch, doch, es interessiert mich schon, welche Pumpe du da verwendest.....
:o

Ich selber hab ne Webasto 9012868C DP30. Die hab ich damals gebraucht aber voll funktionstüchtig für 25€ erstanden.

Alternative ist eine Dellorto PLE 6 (kostet um die 35€ zzgl Versand). Die hat allerdings ne deutlich geringere Fördermenge, man muss also die Wegstrecke reduzieren und man braucht unterschiedliche Schlauchdicken bzw. muss sich nen Adapter bauen (bei der Webasto sind beide Anschlüsse gleich).
Die hab ich mit einem Rehoiler bei meinem Vater im Motorrad verbaut aber bisher haben wir noch nicht das richtige Setting gefunden, damit die Kette passend geschmiert ist (wir sind aber mit der Konfiguration auch noch nicht so viel gefahren).

Letzte mir bekannte taugliche Pumpe ist die Pumpe vom McCoi, die bekommt man auch einzeln. Die ist mit 46,50€ aber schon richtig teuer im Vergleich.

Wichtig bei der Pumpe ist halt, dass es eine Dosierpumpe ist, weil die Steuerung auch davon ausgeht. Somit gibt es auch keine vorgegebene Einschaltzeit oder sowas. Es wird einfach für eine ausreichend lange Zeit eingeschaltet (das ist der Pumpstoß) und dann wieder ausgeschalten. Eine Dauerpumpe würde nicht funktionieren.

Ja, Standheizungspumpen hatte ich auch auf dem Schirm.
Aber neu sind die wirklich irre teuer. 70€ ist da schon billig.
Werde mal schauen, was der Schrotti meines Vertrauens, so in der Wühlkiste hat.

Der ursprünglicher Plan war, eine simple Ganganzeige zu bauen.
Denn mein Wintermotorrad und das Sommermotorrad unterscheiden sich beim "Schaltgefühl".
Die Umstellung dauert lange. Ich suche dauernd den letzten Gang, obwohl schon drin.

Tachosignal und Zündimpuls sollten reichen um eine "Letzter Gang ist drin" LED zum leuchten zu bringen.
Ein ATTiny war auf dem Plan.

Aufgepeppt mit einem Kettenöler reizt das noch mehr. Ein Pro Mini (noch ein paar auf Lager) sollte das dann bequem alles abhandeln können.

Ich werde diesen Thread also aufmerksam verfolgen.

hi,

wegen der lesbarkeit:
wäre da nicht ein e-paper das richtige? einen kindle kann man auch in der sonne lesen...

http://www.ebay.de/itm/4-5-E-paper-Shield-for-Arduino-pcDuino-/271786713018?pt=LH_DefaultDomain_0&hash=item3f47c01fba

scheint per SPI angesprochen zu werden.

gruß stefan

E-paper ist viel zu groß und zu teuer (die andern Displays liegen um die 10€).

Ein Shield ist nicht praktikabel, da der Arduino selbst irgendwo versteckt angebaut wird (Heckverkleidung oder sowas). Das Display ist ne extra Komponente, daher ja der Wunsch nach I2C.

Den ganzen Arduino irgendwo Sichtbar zu verbauen hatte ich auch schon überlegt aber das wird 1. relativ groß und 2. hat man da eine Unmenge von Kabeln.

Versorgung Masse
Versorgung 12V
Pumpe +
Pumpe Masse
Heizgriff +
Heizgriff Masse
Dallas Data (es sei denn man baut den mit ins Gehäuse aber dann ist er nicht aus der Sonne raus)
Dallas Masse
Tachosignal
Ggf. Versorgung für Tachosignal falls man nen Hallsensor oder Reed machen muss (ist in meinem Fall leider so)

Das würde alles aus dem Kasten rauschauen mit hübschen bunten Drähtchen (es sei dann man nimmt ein Hauptkabel und versteckt dann irgendwo nochmal ne Kabelbox, dann wird das Kabel aber dick).

Daher die Taktik mit getrenntem Display, das mit seinen 4 Adern schlank irgendwo vorne bei den Armaturen angebracht wird. Der Rest alles hinten versteckt.

Anfangspost aktualisiert, gibt jetzt ein paar Bilder vom Display

Keine Berechtigung, lade die Bilder am besten hier hoch

Danke für die Info, ich habs korrigiert. Leider gingen die Bilder jetzt nicht direkt in den Post (gingen sie ja vorher aber auch nur bei mir).

TelosNox:
Danke für die Info, ich habs korrigiert. Leider gingen die Bilder jetzt nicht direkt in den Post (gingen sie ja vorher aber auch nur bei mir).

Attachment anhängen (schon gemacht)
Post speichern (auch erledigt)

Post bearbeiten
Dann die Linkadresse des Attachments nehmen und img Tags drum rum basteln.
Post speichern.

bilder wieder entfernt

Danke dir, hätt ich mir auch denken können. Ich dachte nur, dass das nicht geht, weil die Attachment links nicht direkt auf die Bilder gehen, sondern auf ein php. Aber das Board kann das wohl erkennen und rendert das dann korrekt.

Bilder sind jetzt oben direkt eingefügt und kommentiert

TelosNox:
Bilder sind jetzt oben direkt eingefügt und kommentiert

gut!
Dann entferne ich sie aus meinem Posting wieder....

Die Platine ist jetzt verlötet. Ich hab alles auf ein Standard Lochraster gebastelt und den Arduino somit festgelötet. Ich hätte auch Steckleisten nehmen können, dann wäre es aber zu hoch geworden und hätte nicht mehr in mein Gehäuse gepackt.

Anschlüsse für Display und das BT-Modul sind steckbar. Vor allem das BT-Modul ist wichtig, damit man es abziehen kann und somit ein Upload über USB wieder möglich ist (das geht ja sonst nicht).

Das Display ist mit einem Drehmel ausgeschnitten und geschliffen. Leider hab ichs nicht so besonders sauber hinbekommen und auch Macken reingemacht.
Damit es dicht wird, ist es vorne mit Kaltglasur vergossen. Auch da gibts leider kleine Probleme. Die Glasur sah glatt und blasenfrei aus, war sie aber nicht. Ich hätte sie durchpinseln müssen. Nächstesmal weiß ichs (ich muss erstmal sehen, obs in der Praxis stört, man sieht halt die Bläschen beim genauen Hinsehen).
Das Display ist ein 1,3" OLED Display mit I2C. Gabs bei Ebay für 11€ (mit entsprechender Wartezeit weil China). Als Contoller ist ein SH1106 drauf. Man kann aber alles verwenden, was 128x64px hat und von U8Glib unterstützt wird (muss lediglich der Konstruktor ausgetauscht werden).

Jetzt muss ich noch die Funktionalität zum Entlüften/Testen der Pumpe und allgemein zum Übertragen der Einstellungen per Bluetooth integrieren. Naja und die App dazu schreiben.

Startposting ist editiert mit Bildern vom fertigen Einbau und noch ein paar Infos.

Nachdem I2C Probleme gemacht hat und ich bei der Fehlersuche leider alles gegrillt habe (selber doof), musste wieder das ursprünglich angedachte DOGS102 in den Ring.
Der Eingangspost ist erweitert (zum letzten Mal, mehr Zeichen sind nicht mehr erlaubt) und ein Bild vom fertigen Display hängt auch mit dran.

Hallo Telos Nox

Ich finde eine Tolles Projekt das Du hier vorgestellt hast.
Ich bin auch dabei eine Steuerung dieser Art zu realisieren, weil meine alte PWM Steuerung auf Basis NE555 zwar stabil arbeitet aber schon etwas umständlich in der Bedienung ist. unterm Fahren an einem Poti drehen das Platz bedingt in der Verschalung sitzt... na ja.

Was vieleicht hilfreich wäre für mich , der Treilbereich Temperaturfühler und umsetzung in PWM

Würde mich freuen über eine wenig Starthilfe.

Für den Displayschutz. Früher habe ich mit Frontscheiben für Displays dahingehend lebst genamcht in dem ich Plaexiglas aufbereitet habe ( machanisch ) und dann an der seite die mit dem Display in kontakt kommt das Sichtfenster präzise abgeklebt habe und mit Lack besprüht. nach trocknen das Klebeband ab und schon hat man eine schöne Blende nach Maß. Schützt das Display und kann ersetzt werden wenn zerkrazt! :wink:

LG

Martin

Hallo Martin,

da ich hier im Forum nicht mehr so oft unterwegs bin, wäre eine PM nicht schlecht gewesen. Jetzt ist schon fast 1 Monat vergangen.

Du solltest eigentlich alles, was du brauchst direkt übernehmen können https://github.com/TelosNox/noxmatic/blob/master/Arduino/sketches/noxmatic/Heater.cpp (den Header mitnehmen nicht vergessen)

Einfach Konstruktor rufen, Init im Setup machen und dann im Loop Process rufen.
Speicherung der Konfiguration musst du dir halt noch was überlegen.

Aktuell ist der Kettenheizöler der 3. Generation in Arbeit. Die Platform wechselt auf den NodeMCU (weil dank WLAN einfacher zu konfigurieren und mit 3,3v wird es am Display deutlich einfacher).
Es wird wieder Kettenölung und Griffheizung mit Display geben. Zusätzlich ist geplant, dass GPS und Gyro für die Wegstreckenberechnung einsetzbar sind (somit kein Tachosignal mehr nötig). Eventuell kommt dann auch eine Schräglagenmessung mit rein. Da muss man aber erstmal rausfinden, ob sich das sinnvoll berechnen lässt.
Die Heizgriffe werden jetzt getrennt angesteuert. Somit kann man Heizverluste am linken Griff dann ausgleichen.

Noch ist das Projekt in den Kinderschuhen, die veröffentlichten Sourcen sind vorbereitet und kompileren für den NodeMCU. Konfiguration fehlt noch komplett und ob alles läuft ist aktuell noch unklar (ich warte grad auf bestellte Hardware...).

Ich mache das Projekt diesmal auch nicht alleine, sondern habe Unterstützung.

Prinzipiell sollte der Code auch auf dem Arduino laufen, sofern man die ESP spezifischen Teile rausnimmt und Pins dann passend anpasst. Ich versuche es so zu gestalten, dass die Spezifika extra liegen, um eine einfache Adaption zu ermöglichen.

Projekt auf GIT