Realtime Ladeparameter und Zustand aus der Ferne

Serienmäßig ist dir der Renault ZOE zu langweilig? Hier geht es um besser, schneller, weiter, schöner
AntwortenAntworten Options Options Arrow

Re: Realtime Ladeparameter und Zustand aus der Ferne

UliZE40
  • Beiträge: 3833
  • Registriert: Mi 16. Nov 2016, 20:14
  • Hat sich bedankt: 325 Mal
  • Danke erhalten: 799 Mal
read
Den Zigarettenanzünder wollte ich freihalten um daran "normale" Verbrauchen wie USB-Lader fürs Smartphone etc. betreiben zu können. Dafür ist das R-Link ja leider zu schwach. Jedenfalls will das iPhone daran nicht.
Notfalls werde ich natürlich dort vom USB-Lader eine Buchse belegen.

Aber wie gesagt war ja die Idee diseses Freds dass das Teil auch bei abgeschaltetem Fahrzeug (möglichst stromsparend) läuft um per GSM zu kommunizieren. Zumindest während des Ladens müsste es laufen. Definiert abschalten lassen über den CAN-Bus währe auch kein Problem. Notfalls sogar vollständig via Relais. Nur wäre es halt auch nett es wieder bei Bedarf von selbst aufwachen zu lassen ohne manuelle Tastenbetätigung.

Code: https://github.com/premultiply/ZOEdispl ... r/main.ino
Da lässt sich noch sehr viel verschönern, kürzen und optimieren. Mir war erstmal die prinzipielle Funktion, die Daten und deren korrekte Darstellung wichtig. Ideen und Pull-Requests sind natürlich willkommen.

Hardware:
Arduino Uno https://www.reichelt.de/?ARTICLE=119045
CAN-BUS Shield V1.2 https://www.seeedstudio.com/CAN-BUS-Shi ... -2256.html
Arduino LCD KeyPad Shield (SKU: DFR0009) https://www.dfrobot.com/wiki/index.php/ ... :_DFR0009)
ODB-Kabel https://www.reichelt.de/KFZ-Zubehoer/AV ... ICLE=75389
Anzeige

Re: Realtime Ladeparameter und Zustand aus der Ferne

USER_AVATAR
  • Berndte
  • Beiträge: 7089
  • Registriert: Sa 30. Aug 2014, 19:46
  • Wohnort: Oyten (bei Bremen)
  • Hat sich bedankt: 498 Mal
  • Danke erhalten: 357 Mal
read
Hier mal die Helligkeitssteuerung mittels LDR.
Simple und effektiv... irgendwo habe ich auch noch ein Video davon hier liegen... mal suchen.

Code: Alles auswählen

/*                _______         _______
         GND ----|__10k__|---o---|__LDR__|---- +5V (Arduino)
                             |
                             |
                             o---------------- AnalogInput
*/

int eingang = A1;
int ausgang = 10;
int sensorWert;
int lcdBacklight = 255;


#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);


void setup()
{
Serial.begin(9600);
pinMode (ausgang, OUTPUT);
analogWrite(ausgang, lcdBacklight);

// LCD Display 4x20 Zeichen
lcd.begin(20, 4);
lcd.setCursor(0,0); lcd.print("Display READY"); delay (1000); lcd.clear(); delay (500);


}

void loop(){
  
  sensorWert =analogRead(eingang);

  if (sensorWert > 800) {
    lcdBacklight = 255;
  }
  else{
    lcdBacklight = map (sensorWert, 0, 800, 5, 255);
    analogWrite(ausgang, lcdBacklight);
  }

  
  lcd.setCursor(0,0); lcd.print("Helligkeit  : "); if(sensorWert<10) lcd.print(" "); if(sensorWert<100) lcd.print(" "); if(sensorWert<1000) lcd.print(" "); lcd.print(sensorWert);
  lcd.setCursor(0,1); lcd.print("lcdBacklight:  "); if(lcdBacklight<10) lcd.print(" "); if(lcdBacklight<100) lcd.print(" "); lcd.print(lcdBacklight);
}
2014 - 2019: Renault Zoe Q210
2015 - 2020: Kangoo Maxi ZE
2019 - : Tesla Modell ≡ LR
2020 - : Renault Zoe ZE50 fullhouse
1500km kostenloses SuperCharging für Dich und mich, wenn Du diesen Link zur Bestellung (S/3/X/Y) nutzt:
https://ts.la/bernd30762

Re: Realtime Ladeparameter und Zustand aus der Ferne

UliZE40
  • Beiträge: 3833
  • Registriert: Mi 16. Nov 2016, 20:14
  • Hat sich bedankt: 325 Mal
  • Danke erhalten: 799 Mal
read
Ich hab noch paar Screens mehr eingefügt, kleine Bugs gefixt und etwas aufgeräumt. Jetzt fällt mir langsam nix mehr ein. :roll:

Re: Realtime Ladeparameter und Zustand aus der Ferne

erich
  • Beiträge: 151
  • Registriert: Fr 20. Mai 2016, 14:37
  • Wohnort: Nürnberg, Franken
  • Hat sich bedankt: 2 Mal
  • Danke erhalten: 6 Mal
read
Nach langer Zeit bin ich mal wieder zum Basteln gekommen.
Das mit dem 12V Akku leer saugen war bisher so eine Sache, zu der ich auch noch nicht so die perfekte Lösung hatte.

Als ich nun das tolle Tool von Uli mal ausprobiert habe und es echt toll läuft hatte ich einen Geistesblitz.

Weg vom Arduino und hin zum ESP32, denn er hat WLAN an Bord!

ESP32 (Die gibt es inzwischen auch günstiger, aber ich hatte das noch rum liegen)
https://www.ebay.de/itm/HIMALAYA-ESP32- ... 2544725911

Somit habe ich versucht ein günstiges CAN-Modul mit dem ESP32 zum reden zu bringen.
https://www.ebay.de/itm/3x-MCP2515-CAN- ... 1699929665 (3 Stück für ca 8€)

Nach ein wenig hin und her um die passenden Pins zu finden hatte ich die CAN-Nachrichten in einem Beispiel-CAN-Recieve-Sketch in der Seriellen Konsole.
Bild

Als nächstes habe ich noch ein paar Zeilen für WLAN und BLYNK hinzu gefügt und zum testen die CAN-ID auf einen virtuellen Blynk-Pin geschrieben.

Die ID habe ich mir als "proof" in der BlynkApp mit einer Gauge anzeigen lassen.
Und siehe da, mit jeder gelesenen ID änderte sich die Anzeige im Handy.
https://farm5.staticflickr.com/4480/373 ... ce02_z.jpg

Das schöne an dem ESP32 ist, dass er auch noch einen AkkuAnschluss für eine Lipo-Zelle hat.
Wenn der ESP32 am Strom hängt, dann wird der Akku geladen. Und wenn die Zündung aus ist, dann wird er vom Akku weiter versorgt. Wenn die Akkugröße für 12 Stunden reicht, dann passt das locker für alle Ladevorgänge.

Somit ist dann nur noch das Problem mit dem WLAN unterwegs. Das plane ich entweder mit einem alten Handy im "personal hotspot" Modus oder mit einem kleinen Hotspot-Router.
https://www.amazon.de/Huawei-E5330Bs-2- ... B00INXBW3U
Der hat auch einen Akku drin und müsste auch nur die 12 Stunden durchhalten.

Hier der Test-Scatch mit dem ESP32 dem CanBus-Modul und Blynk:

Code: Alles auswählen

#include <Arduino.h>

/*
Can-Bus Interface mit ESP32

Int = (wird nicht gebraucht)
SCK = IO 18
SI  = IO 23
SO  = IO 19
CS  = IO 5
GND = GND
VCC = 5V
*/

#include <SPI.h>
#include "mcp_can.h"
const int SPI_CS_PIN = 5;
const int LED        = 2;
boolean ledON        = 1;
MCP_CAN CAN(SPI_CS_PIN);                                    // Set CS pin

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "BLYNK_ID";
char ssid[] = "WLAN_ID";
char pass[] = "WLAN_PASS";

void setup()
{
    Serial.begin(115200);
    pinMode(LED,OUTPUT);

    Blynk.begin(auth, ssid, pass);

    while (CAN_OK != CAN.begin(CAN_500KBPS))              // init can bus : baudrate = 500k
    {
        Serial.println("CAN BUS Shield init fail");
        Serial.println("Init CAN BUS Shield again");
        delay(100);
    }
    Serial.println("CAN BUS Shield init ok!");
}


void loop()
{
    Blynk.run();

    unsigned char len = 0;
    unsigned char buf[8];

    if(CAN_MSGAVAIL == CAN.checkReceive())            // check if data coming
    {
        CAN.readMsgBuf(&len, buf);    // read data,  len: data length, buf: data buf

        unsigned char canId = CAN.getCanId();

        Serial.println("-----------------------------");
        Serial.println("get data from ID: ");
        Serial.println(canId);

        Blynk.virtualWrite(10, canId); // hier die ID an Blynk Pin Virtual10 senden

        for(int i = 0; i<len; i++)    // print the data
        {
            Serial.print(buf[i]);
            Serial.print("\t");
            if(ledON && i==0)
            {

                digitalWrite(LED, buf[i]);
                ledON = 0;
                delay(500);
            }
            else if((!(ledON)) && i==4)
            {

                digitalWrite(LED, buf[i]);
                ledON = 1;
            }
        }
        Serial.println();
    }
}
Zu Hause im WLAN geht es tadellos. Somit sollte es unterwegs an einem Hotspot auch gehen.

Ich muss mich nun mal in das Filter-setzen einlesen und dann die paar Blynk-Zeilen versuchen mit ein zu bauen.
Das lokale LCD braucht man dann nicht mehr. Denn in der BlynkApp hat man ja alle Werte.
Evtl Ulis Script abspecken, denn da ist ja alles schon schön drin! ;-)

Evtl muss man noch das senden etwas bremsen. Es muss ja nicht der komplette Stream übertragen werden.
Alle Minuten einen Datensatz reicht sicher auch, um das laden des Akkus verfolgen zu können.
Oder alle 5 Minuten mit Wlan-zwischendrin-ausschalten zum Strom sparen.

...Erich

P.S. EDIT
Hab bei dem GSM Sim800l Modul nun noch was gefunden, dass man das Teil schlafen schicken kann.
Werde damit auch noch rumprobieren. Damit könnte ich dann das externe GSM Gateway umgehen und das Wlan könnte ich mir auch sparen. Dann brauche ich den ESP32 "nur" noch wegen der Rechenpower und Geschwindigkeit. Was aber alleine schon ein Vorteil dem Arduino gegenüber ist.
Arduino = 16mHz https://en.wikipedia.org/wiki/Arduino
Esp32 = 160/240mHz dualcore https://en.wikipedia.org/wiki/ESP32

Ein GPS soll ja auch noch mit rein zum Tracking und zum Parkplatzfinden.
Sendeintervalle wären dann in Etwa so angedacht...
Wenn die Zündung an ist ~ alle 20 Sek.
Wenn die Zündung aus ist aber geladen wird ~ alle 2:30 Minuten
Wenn die Zündung aus ist und nicht geladen wird ~ alle 15 Minuten
Jeweils ein Datensatz mit Kilometerstand, GPS-Koordinaten, SOC, realSOC, Reichweite, aktuelle Ladeleistung, (eco Werte, SOH) oder was sonst noch interessant sein könnte...
Primär soll er am Zündungs geschalteten 12V hängen und den Rest von seinem Akku bestreiten.
Hat die 12V Bordsteckdose beim Laden strom oder ist sie aus? Muss ich echt mal nachschauen beim nächsten laden.
Zuletzt geändert von erich am Mi 1. Nov 2017, 20:20, insgesamt 1-mal geändert.
Tesla Referal-Code: https://ts.la/erich21076

Re: Realtime Ladeparameter und Zustand aus der Ferne

USER_AVATAR
  • TobsCA!
  • Beiträge: 566
  • Registriert: Do 25. Jun 2015, 20:22
  • Wohnort: Leonberg
  • Hat sich bedankt: 2 Mal
  • Danke erhalten: 13 Mal
read
für die Stromversorgung könnte man auch eine Powerbank mit Pass Through benutzen.
Z.b. eine Zendure A8
Bringt auch den Luxus das man sein Handy angeschlossen im Auto lassen kann damit es weiter geladen wird.
Und für den Urlaub nimmt man das Teil dann mit und hat Powerbank und Verteiler ( 4x USB, 1 davon Quickcharge).

Mfg
Twizy Sport Black 06/15 - 03/17 20961km
Q210 Zen in Perlmutt 03/17 bis 05/19 34826km
SXT Light Eco 05/17 bis 05/19 400km
Ioniq Premium 04/19 - 08/20 30 271km
Ninebot One E+ seit 05/19 schon 200km gefahren
Model 3 seit 1.09.20 schon 12 000km

Re: Realtime Ladeparameter und Zustand aus der Ferne

UliZE40
  • Beiträge: 3833
  • Registriert: Mi 16. Nov 2016, 20:14
  • Hat sich bedankt: 325 Mal
  • Danke erhalten: 799 Mal
read
Eine stabile Stromversorgung (ohne Hardwareumbauten am Fahrzeug) bekommt man nur über den USB-Anschluss vom R-Link hin. Die 12V-Dose wird häufiger und schneller abgeschaltet. Der R-Link-USB bleibt beim laden dauerhaft an und wird sonst erst ca. 10 Minuten nach verlassen des Fahrzeugs abgeschaltet. Wenn man auf die Meldungen im Tiefschlaf verzichten kann braucht man somit auch keinen zusätzlichen Akku. Ich frage mich auch wozu das gut sein sollte, da sich das Fahrzeug weder bewegt noch sich an den Zuständen etwas ändert. Ausserdem wird auch auch der CAN-Bus vermutlich in diesem Zustand vollständig ausser Betrieb sein oder es werden sich zumindest nur ganz wenige Steuergeräte darauf tummeln.
Ansonsten: 12V-Dauerstrom gibt es direkt am ODB-Stecker. Mit einer kleinen Batteriewächterschaltung kann man somit auch den ohnehin vorhandenen Fahrzeugakku nutzen.

Re: Realtime Ladeparameter und Zustand aus der Ferne

item
  • Beiträge: 79
  • Registriert: Fr 13. Nov 2015, 08:48
read
Habt ihr angedacht das ganze auch anderen technisch nicht ganz so geschickten Zoe Besitzern anzubieten?
Meine Begehrlichkeit wäre geweckt :-)
Mercedes BEV (03/2016 + 04/2018) und Zoe Q90 (seit 12/2017)

Re: Realtime Ladeparameter und Zustand aus der Ferne

UliZE40
  • Beiträge: 3833
  • Registriert: Mi 16. Nov 2016, 20:14
  • Hat sich bedankt: 325 Mal
  • Danke erhalten: 799 Mal
read
Das Teil kannst du dir aus Arduino-Standardbauteilen selbst zusammenzimmern und die Software von mir draufladen.

Kleines Update:
Ich hab mal begonnen vor ein paar Tagen einen internen Energiezähler mit integriertem Kostenrechner zu implementieren.
So kann man an der Ladesäule sofort sehen wie teuer es (ungefähr) wird. Den kWh-Preis kann man direkt am Display einstellen. Funktioniert schon recht gut.
IMG_2810.JPG
Bildschirmansicht zur Energiemessung beim ZOE-Laden
Oben links steht die Differenz an hinzugewonnener Akkukapazität in kWh (hier 0.0 da nicht am Fahrzeug angeschlossen), oben rechts der Netzbezugsenergiezähler, links unten der editierbare kWh-Preis und unten rechts der daraus errechnete Energiepreis.

Ausserdem gibts inzwischen auch eine Ladestoppuhr (für Zeittarife) und Ladeschlussprognose als Zeitpunktangabe (erspart das Kopfrechnen wan man die ZOE ggf. wieder abholen muss und speichert zudem den tatsächlichen Ladeschlusszeitpunkt), die Aktivität des PTC-Zuheizers wird korrekt angezeigt und ein eigener Innenraumtemperatursensor wurde hinzugefügt (DS18x20, hatte ich noch rumliegen). Ausserdem wurde die Bildschirmseitenreihenfolge auf die Bedürfnisse beim Fahren und Laden angepasst und die Tastenfunktionen erweitert.

Den aktualisierten Quellcode lade ich hoch sobald ich die neuen Funktionen noch etwas mehr testen konnte.
Insbesondere eine möglichst hohe Präzisision des Energiezählers (so gut wie anhand der ZOE-internen Messdaten möglich) ist mir wichtig. Da muss ich ggf. noch ein paar Vergleiche anstellen.

Fröhliche Weihnachten!

Re: Realtime Ladeparameter und Zustand aus der Ferne

UliZE40
  • Beiträge: 3833
  • Registriert: Mi 16. Nov 2016, 20:14
  • Hat sich bedankt: 325 Mal
  • Danke erhalten: 799 Mal
read
So. Neue Version fertig.

Changelog:
* Energiezähler (Netzbezug und Akkukapazitätsdifferenz)
* Stoppuhr mit 4 verschiedenen Auto-Triggern (Ladezeit, Netzbezug/Ready, Kabel verbunden, Fahren)
* PTC-Aktivitätsanzeige
* Bildschirmabhängige Tastenfunktionen
* Umsortierte Bildschirmansichten
* EEPROM Backup+Restore der wichtigsten Benutzereinstellungen und Daten (z. B. letzten Ladung, Startansicht, kWh-Preis, ...)
* Integriertes PID Diagnosetool mit Multi- und Single-Byte in Hex- und Binär-Darstellung, Freeze-Funktion und Intervalltimer
* Code entrümpelt, aufgeräumt und optimiert
* Hardware-Option: Separater Innenraum-Temperatursensor (DS18x20 via OneWire-Bus)


Download & Co. wie gewohnt von https://github.com/premultiply/ZOEdisplay

Frohes Neues! :D

Re: Realtime Ladeparameter und Zustand aus der Ferne

wipo
  • Beiträge: 109
  • Registriert: So 5. Jul 2015, 10:20
  • Danke erhalten: 2 Mal
read
Tolles Projekt, UliZE40 ! :hurra:

Habe schon fast alle Teile beisammen um deinen Arduino Stack nachzubauen :-)
Die Verbindung von Pin10 und D3 am LCD-Shield ist auf den Fotos gut zu sehen, aber welche Leiterbahnen hast du dann unterbrochen? Meintest du die Trennung der Steckverbindung von Pin10 des LCD's zum D10 des Arduinos, sodass der verlötete Bypass von Pin10 -> D3 kein Verbindung auf D10 hat (vom CAN-Bus-Shield genutzt)?

Hat schon jemand um ein SIM900 GPRS-Shield erweitern können?
https://de.aliexpress.com/item/Free-shi ... 50132.html

Von erich gefällt mir die Blynk Anbindung sehr gut. Pefekt wäre für mich eine Mischung aus lokaler fixer Anzeige im Fahrzeug und eine Fernabfragemöglichkeit über GPRS-Shield und Blynk-App. Im 2.Schritt wäre dann ein steuerndes Eingreifen über ODB für Fernklimatisierung, Batterievortemperierung oder aufgeweckt lassen um das Boardnetz ohne Belastung der 12V Batterie betreiben zu können, ein Traum!
PV 30 kWp solaredge + 39,0 kWh E3/DC + Renault ZOE Intens Q210(41kWh), eingetragene AHK, Volldämmung, geteilte Rückbank, LED-Hauptscheinwerfer, TCU entfernt
Anzeige
AntwortenAntworten

Zurück zu „ZOE - Modifikationen“

Gehe zu Profile
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag