DIY BMS v2.0 modular & Wireless

So wie versprochen alle Daten zum Download, in dem Zip sind folgende Dateien:

  • BMSNode.ino: Arduino Programm für die Spannungs/Temperaturmessung mit dem D1 Mini
  • Stromsensor.ino: Arduino Programm für die Kontaktlose Strommessung mit dem D1 Mini und einem Hall Sensor
  • Broker-Raspberry.py: MQTT Broker für den Rapsberry Pi, nimmt die Daten von den Sensoren an und schickt diese an einer InfluxDB
  • Schaltplan_qucs.sch: Schaltplan des Spannungs/Temperatursensors mit dem D1Mini (zum Anzeigen Qucs verwenden)
  • Schaltplan.eps: Der Schaltplan als Grafik
  • Ansonsten müsst ihr eine InfluxDB und Grafana am laufen haben. Hierfür gibts sehr viele gute Anleitungen im Internet. Einfach mal Grafana InfluxDB Raspberry Pi in Google eingeben. [192=96-BMS.zip|attachment](upload://pV2nD3PjgxAhjOjU4qBTwvFuF4K.zip) (13.7 KB)
    1 „Gefällt mir“

    Coooooool!!!

    ich such nach einer einfacheren Lösung, die auch die machen können; die keine Ahnung von Linux (Raspberry PI) haben, bzw. programmieren können. Ich bin dran und melde mich . . . habe vielleicht schon was :mrgreen:

    Andreas: RESPEKT!!

    Frohes Löten . . .

    Wenn du was Gutes hast, immer her damit :grin:
    Meins läuft jetzt, bin noch die letzten Kinderkrankheiten am ausmerzen und dann stelle ich es online.

    Hallo Andreas,

    ich beschäftige mich auch gerade mit Grafana und Co.
    Machst Du das über einen MQTT-Broker?
    Zudem schaue ich mir noch Home Assistant an. Dort kann man sich auch schöne Dashboards zusammenstellen, da ich auch ein wenig Homematic-Zeugs habe.
    Gruß,
    Zorrex

    Ja genau, ich benutze diesen mosquitto Broker und fange die Daten über ein Python Skript auf dem Raspberry. Da verwende ich die paho mqqt Bibliothek.

    ich habe einige smarte Steckdosen, wo MQTT drauf läuft.
    Die Daten werden in die Influxdb geschrieben und von dort geht es in Grafana.
    Gruss,
    Zorrex

    Hi Andreas,

    nutzt Du für jedes Pack einen eigenen D1 mini für die Temperatur und Spannungsmessung?

    Gruß,
    Zorrex

    Jo genau so mache ich das, ist echt ziemlich Idiotensicher und funktioniert wirklich sehr sehr gut bisher.
    Bei Gelegenheit stelle ich das mal vor.

    Jo genau so mache ich das, ist echt ziemlich Idiotensicher und funktioniert wirklich sehr sehr gut bisher.
    Bei Gelegenheit stelle ich das mal vor.
    Hallo Andreas

    Interessiere mich sehr für die Schaltung und Programmierung
    Wehre echt super wenn du diese mal ins Forum einstellen würdest


    LG
    Andreas aus der Pfalz
    Jo genau so mache ich das, ist echt ziemlich Idiotensicher und funktioniert wirklich sehr sehr gut bisher.
    Bei Gelegenheit stelle ich das mal vor.
    Hallo Andreas

    Interessiere mich sehr für die Schaltung und Programmierung
    Wehre echt super wenn du diese mal ins Forum einstellen würdest

    LG
    Andreas aus der Pfalz
    Yes, das wäre spitze. Schließe mich diesem Wunsch an. Dauert ja immer ne Weile, bis der Chinakram hier ist. Und bis zum Frühling ists nicht mehr lang hin.

    Hallo Leute,
    ich hab nach Andreas Entwurf mal sowas gebaut.



    Das Ding wird direkt vom Pack mit Energie versorgt, misst die aktuelle Spannung und Temperatur in beliebigen Abständen und sendet das ganze per MQTT wohin man möchte.
    Das ganze kann in den Deep Sleep modus gesetzt werden und alle x Sekunden geweckt werden um Daten zu senden.
    Wer möchte kann auch noch ein Display dran basteln. :wink:

    498=72-IMG_3775.jpg

    gebraucht habe ich:
    Hardware:
    1x Wemos D1 mini
    1x DC DC Spannungswandler 0,9V - 5V auf 5V 600mA (https://www.amazon.de/ARCELI-Control-Steigern-Ladeger%C3%A4t-Netzteilmodul/dp/B07MY2HYD2/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=arceli+pfm&qid=1579289214&sr=8-1)
    1x 100K Ohm Wiederstand
    1x 4,7K Ohm Wiederstand
    1x DS18B20 Thermofühler
    1x Leiterplatte 7x3 cm 2,54mm Lochabstand
    3x Anschlussklemmen Block 2 Pin 5,08 mm Lochabstand (https://www.amazon.de/IZOKEE-Terminal-Schraubklemme-Steckverbinder-Arduino/dp/B07DBX63QP/ref=sr_1_5?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=anschlussklemmen&qid=1579289295&sr=8-5&th=1)
    USB Kabel zum Flashen des D1 mini
    Lötkolben
    Lötzinn
    ein paar Kabel
    optional:
    OLED 128x64 Pixel 0,96 Zoll I2C Display

    Software:
    ESP Easy: (https://www.letscontrolit.com/wiki/index.php/ESPEasy)
    Download: (https://github.com/letscontrolit/ESPEasy/releases/tag/mega-20191208)



    Als erstes habe ich den Wemos D1 mini mit ESP easy und der Firmware ESP_Easy_mega-20191208_normal_ESP8266_4M1M.bi geflasht.
    Dazu gibt es ausreichend gute Anleitungen im Netz.
    Eingestellt wird der D1 dann später.

    Am DC DC Spannungswandler habe ich den USB Anschluss ausgelötet um Platz zu sparen.
    Danach habe ich die Leiterplatine mit den Anschlussklemmen + Kopfleisten weiblich und den DC DC Spannungswandler + D1 mit Kopfleisten männlich bestückt.
    Die Ausgänge des DC DC Spannungswandler mit 5V und GND des D1 verbunden.
    1 Anschlussklemmenblock mit den Eingängen des DC DC Spannungswandlers verbunden. Die Anschlussklemmen werden dann SPÄTER mit dem AkkuPack verbunden. Am besten + und - auf den Klemmenblock schreiben.
    Einen 100K Ohm Widerstand zwischen PackEingabg + und D1 mini A0 eingelötet für die Spannungsmessung.
    Einen 4,7K Ohm Widerstand für den DS18B20 Temperaturfühler zwischen D1 mini 3,3V und D5 eingelötet. Dann D5, 3,3V und GND mit den Klemmblöcken verbunden und den Termofühler angeschlossen
    4 Kabel fürs Display an D1 mini 3,3V GND D1 und D2 gelötet und mit dem Display verbunden.
    Dann das ganze ans Pack angeschlossen und fertig.

    Jetzt wirds für die, die es noch nicht getan haben Zeit, sich mit ESP Easy zu beschäftigen. Google wird Euer Freund werden.
    Jedenfalls kann nach der Grundkonfig mit den Devices weiter gemacht werden. Den DS18B20 sollte Goggle geklärt haben.
    Die Spannungsmessung läuft überden Analog Input. Dazu ist es günstig die Aktuelle Spannung vom Pack möglichst genau zu kennen.
    Im Bereich Devices Analog Input gibts eine Two Point Calibration. Ziemlich Cool. Damit könnt ihr die Volt Anzeige kalibrieren.
    Im Bereich Display habe ich das OLED SSD1306/SH1106 Framed gewählt.
    Was Ihr angezeigt haben möchte könnt Ihr dort festlegen.

    Alle Werte können an einen MQTT Broker gesendet werden. Der wird unter Controllers festgelegt.
    In den einzelnen Devices solltet Ihr noch den Haken bei Data Acquisition Send to Controller setzen wenn die Daten auch gesendet werden sollen. Vergisst man schon mal gerne. :wink:

    Den Sleep Mode findet Ihr unter dem Reiter CONFIG.

    Und wenn der ganze Datensalat mal per MQTT raus ist könnt Ihr damit ja alles mögliche anstellen.
    Eure Packs notfalls abschalten, tolle Grafiken machen, in die Hausautomation einbinden, usw.

    Bei mir laufen jetzt 5 von den BMS seit einigen Tagen zuverlässig durch.
    Wenn jemand noch Verbesserungen hat, immer her damit!

    In diesem Sinne viel Spass.

    Ps. Um den Metalltei des Therosensor habe ich noch einen Schrumpschlauch getüddelt wegen Kurzschluss und so. Kommt ja schon mal vor.:confounded:
    498=75-IMG_3768.jpg

    498=76-IMG_3770.jpg

    Hallo DWL,

    ich habe es so ähnlich, nur ohne Display.
    Ich schicke die Daten in eine Infludb und das werte ich mit Grafana aus.
    Zur Zeit lasse ich mir aus Grafana Emails zusenden, wenn Temperatur oder Spannungen Auffälligkeiten aufweisen.
    Zudem möchte ich noch einen kleinen Websever auf den D1Mini installieren, um darüber ein Relais zu schalten. (eventuell auch Emailversand)
    Grafana, MQTT laufen als Container auf einen kleinen Proxmox Server.

    Gruß,
    Zorrex

    Jau, Influx und Grafana laufen bei mir im Docker auf ner Synology. Ausserdem gehts noch zu openhab. Aber Hauptgrund ist natürlich eine Notabschaltung bei Über oder Unterspannung mittes SSR und das generelle Verhalten der Packs.

    :sunglasses: @Zoraxx
    Hast du auf den D1 Esp easy drauf? Damit kannst du auch Relais schalten und Notifs schicken.

    Hallo DWL,

    ich hatte mir das ESP easy heruntergeladen und probiert.
    Dieses Testversion habe ich aber direkt in der Arduino-Umgebung/Sketch programmiert.

    Gruß,
    Zorrex

    Schöne Arbeit !

    Bitte mehr Bilder oder ein Schaltplan…denke dann kann die Masse das auch einfacher nachbauen…DANKE

    Grüße

    Toll gemacht DWL,
    würde mich auch übern Schaltplan freuen, ggf könnt ma ja ein kleines Platinchen draus machen :slight_smile:

    Das ist leider alles was ich mit meinen Mitteln zur Verfügung stellen kann. Eine Handskizze wollt Ihr nicht. :wink:
    517=78-BMS.png

    Super gemacht.
    Habe mir gerade die Teile bestellt, und wird nachgebaut:-=)

    Werde es dann wohl per MQTT im iobrocker triggern.

    Wie wirst Du die Steuerung / Totschaltung realisieren? Welches Relais bietet sich hier an, um das + Kabel vom Pack im Fehlerfall zu schalten? Das Relais sollte ja im Normalzustand auf aus sein. Und nur wenn alle Bedingungen stimmen ( iobroker true, Temperatur true, VSpannung true) darf das Relais auf ein schalten.
    Eventuell macht auch noch ein zusätzlicher Stromsensor Sinn.

    Gruß
    Mark