Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Batterie Spannung oder Ladestand. #5

Open
porzelx opened this issue Jan 11, 2025 · 8 comments
Open

Batterie Spannung oder Ladestand. #5

porzelx opened this issue Jan 11, 2025 · 8 comments
Assignees
Labels
enhancement New feature or request

Comments

@porzelx
Copy link

porzelx commented Jan 11, 2025

Eine Spannungsanzeige der optionalen Batterie wäre Praktisch.
Eine Prozentuale Anzeige wäre natürlich am besten. Die Programmierung wird aber wegen der Ladekurve eines Li-Po Akkus bestimmt nicht so einfach.
Dauerhaft ein USB Kabel am Gerät zu haben ist keine schöne Option, deswegen macht der Akku eigentlich Sinn.

@thebluntblade thebluntblade self-assigned this Jan 13, 2025
@thebluntblade thebluntblade added the enhancement New feature or request label Jan 13, 2025
@thebluntblade
Copy link
Owner

Im Projekt, das ich als Vorlage genutzt habe, ist eine Spannungsanzeige implementiert und ich hätte jetzt schon fast geschrieben, dass es sich daher ganz einfach umsetzen lassen sollte. Laut ChatGPT gibt es aber ein paar deutliche Unterschiede zwischen ESP8366, der in der Vorlage eingesetzt wird, und dem ESP32, den wir hier verwenden. Angeblich hat der ESP32 keine integrierte Spannungsmessung und man müsste einen Umbau vornehmen: Man braucht einen Spannungsteiler und misst dann über einen Analogeingang die Spannung. Das kommt mir aber etwas komisch vor und ich bin mir nicht sicher, ob das wirklich nötig ist. Daher würde ich es mal auf einen Versuch ankommen lassen.
Ich selbst habe nicht vor den Rahmen mit einem Akku zu betreiben und auch keinen Akku vorhanden, den ich zum Test nutzen könnte. Würdest du dich denn bereiterklären die Funktion zu testen, sofern ich grundsätzlich eine Möglichkeit finde die Spannung ohne einen Umbau zu messen?

@porzelx
Copy link
Author

porzelx commented Jan 13, 2025

Ja klar würde ich das Testen.
Laut dem Lilygo Beispiel Projekt müsste eine Batterieanzeige möglich sein.
https://github.com/Xinyuan-LilyGO/LilyGo-EPD-4-7-OWM-Weather-Display/blob/main/OWM_EPD47_epaper_v2.5.ino
Das habe ich darin gefunden:
void DrawBattery(int x, int y) {
uint8_t percentage = 100;
esp_adc_cal_characteristics_t adc_chars;
esp_adc_cal_value_t val_type = esp_adc_cal_characterize(ADC_UNIT_1, ADC_ATTEN_DB_11, ADC_WIDTH_BIT_12, 1100, &adc_chars);
if (val_type == ESP_ADC_CAL_VAL_EFUSE_VREF) {
Serial.printf("eFuse Vref:%u mV", adc_chars.vref);
vref = adc_chars.vref;
}
float voltage = analogRead(36) / 4096.0 * 6.566 * (vref / 1000.0);
if (voltage > 1 ) { // Only display if there is a valid reading
Serial.println("\nVoltage = " + String(voltage));
percentage = 2836.9625 * pow(voltage, 4) - 43987.4889 * pow(voltage, 3) + 255233.8134 * pow(voltage, 2) - 656689.7123 * voltage + 632041.7303;
if (voltage >= 4.20) percentage = 100;
if (voltage <= 3.20) percentage = 0; // orig 3.5
drawRect(x + 25, y - 14, 40, 15, Black);
fillRect(x + 65, y - 10, 4, 7, Black);
fillRect(x + 27, y - 12, 36 * percentage / 100.0, 11, Black);
drawString(x + 85, y - 14, String(percentage) + "% " + String(voltage, 1) + "v", LEFT);
}

@thebluntblade
Copy link
Owner

ok. Das sieht ja erstmal vielversprechend aus und so wie ich das sehe sogar mit einer Umrechnung in den Ladezustand.

@thebluntblade
Copy link
Owner

thebluntblade commented Jan 15, 2025

Ich habe zugehörigen Branch einen Entwurf für die Funktion eingefügt. Im kleinen Text unter dem Diagramm erscheint jetzt Voltage und Percentage. Bei mir steht allerdings 0 bei Voltage und 100 bei Percentage, vermutlich bzw. hoffentlich, weil ich keinen Akku dran angeschlossen habe. Wenn du es getestet hast, gib mir bitte Bescheid. Wenn es funktioniert, können wir uns überlegen, ob es als Text oder als Symbol erscheinen soll...
Achja, ich habe in der Make gelesen, dass die Polarität der Stecker an den Akkus und die Anschlüsse an den Boards nicht immer zueinander passen.
image

@porzelx
Copy link
Author

porzelx commented Jan 15, 2025

Habe leider auch Voltage 0 und Percentage 100
(Natürlich im Akkubetrieb getestet ohne USB-C)
IMG_6543
Wenn du willst kann ich dir auch einen Akku zu dir nach hause bestellen, dann kannst du in Ruhe testen. bzw. kann ich dir das Geld für den Akku per Paypal senden und du bestellst ihn selber.

Polarität müsste aber passen, da der Akku Betrieb wunderbar funktioniert.

@thebluntblade
Copy link
Owner

Ich würde erstmal etwas anderes vorschlagen.
Ich habe einen Fork des o.g. Wetterdisplays gefunden, in dem auch eine platformio.ini vorhanden ist, d.h. der sollte ohne großen Aufwand kompilierbar sein: https://github.com/7-rate/EPD_info_display
Willst du mal testen, ob in diesem die Batterieanzeige funktioniert? Dann wüssten wir zumindest schonmal, ob es grundsätzlich gehen sollte...

@porzelx
Copy link
Author

porzelx commented Jan 16, 2025

Image
Bekomme die Fehlermeldung beim Kompilieren. Zufälligerweise sogar bei der Batterie Funktion

@thebluntblade
Copy link
Owner

Versuche mal ADC_ATTEN_DB_12 durch ADC_ATTEN_DB_11 zu ersetzen.
Im von dir gefundenen Beispiel steht 11 und im Fehler in deinem Screenshot wird das auch vorgeschlagen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants