USV für mehrere Raspberrys (Vorstellung meiner Lösung)

Begonnen von bismosa, 27 Juli 2018, 08:24:32

Vorheriges Thema - Nächstes Thema

bismosa

Hallo,

mal wieder ein kleines Bastelprojekt von mir...

Ich habe meine komplette Technik auf einer Platte aufgebaut. Dort laufen immer 2-3 Raspberry Pis, 3 Festplatten und noch einige andere Hardware. Gesamtverbrauch Normallast ca. 17W / Vollast ca. 25W.
Da ich anfangs häufiger Schwierigkeiten mit der Stromversorgung über USB hatte, habe ich mir ein Hutschienen-Netzteil 10A ( https://www.reichelt.de/schaltnetzteil-hutschiene-50-w-5-v-10-a-snt-mw-mdr60-05-p85240.html?&trstct=pos_0 ) besorgt und habe die Spannung auf 5,15V eingestellt.
Meine Raspberrys versorge ich über die GPIO. Für die einfach Verdrahtung habe ich mir extension Boards mit Klemmanschlüssen besorgt ( https://de.aliexpress.com/item/LANDZO-Raspberry-Pi-2-3-model-b-GPIO-Extension-Board-Multifunction-GPIO-Module-For-Orange-Pi/32800758428.html?spm=a2g0s.9042311.0.0.27424c4df2seCc )
Ich finde die echt praktisch.

Seit dem habe ich absolut keine Probleme mehr mit der Spannungsversorgung. Außer bei Stromausfall, denn leider liegt mein Keller und die Außensteckdosen/Schuppen alles auf einer Sicherung...

Daher habe ich nach einer Lösung gesucht, wie ich eine USV für 5V realisieren kann. Die fertigen Module sind alle dafür ausgelegt, einen Raspberry Pi zu versorgen. Hat man mehrere geht es schon wieder nicht mehr.
Eine 230V USV möchte ich derzeit nicht. Die haben meist einen hohen Standby-Verbrauch (teilweise mehr Verbrauch als meine Ganze Anlage)....ich finde das dann auch etwas übertrieben.

Zunächst habe ich nach Lösungen gesucht ähnlich einer PowerBank. Immer Laden und Entladen gleichzeitig. Aber bei 2A ist meist Schluss...5A möchte ich schon abdecken können.

Daher habe ich eine andere Lösung gewählt. Ich nutze einen Simplen Step-Down an einem Akkupack (Bleigel-Akkus) und stelle diesen auf ca. 4,9V ein. Solange das Netzteil funktioniert werden alle Geräte auch vom Netzteil versorgt, da hier eine höhere Spannung als vom Step-Down anliegt. Sobald ein Stromausfall ist oder das Netzteil ausfällt, versorgen sich alle Geräte über den StepDown. Zwar nur auf 4,9V aber das macht in der Regel keine Probleme.

Features:
5A problemlos machbar
Verlustleistung ca. 0,5W
Günstige Lösung

Meine Hardware ist wie folgt aufgebaut (Siehe Bild)
Laden:
Besser wäre hier vermutlich ein richtiger Laderegler für 12V Bleiggel Akkus. Allerdings werden wohl in vielen Alarmanlagen etc. die BleigelAkkus auch nur mit einer Festspannung (Angabe Standby Use auf dem Akku beachten!) betrieben. 

5V Netzteil aus der Grabbelkiste. Daran einen StepUp ( https://de.aliexpress.com/item/LTC3780-DC-DC-5-32V-to-1V-30V-10A-Automatic-Step-Up-Down-Regulator-Charging-Module/32841063143.html?spm=a2g0s.9042311.0.0.63674c4dr1QX3d )
Dieser hat den Vorteil, das der Strom begrenzbar ist! Ich habe diesen auf ca. 800mA eingestellt. Der Akku nimmt sich allerdings selbst "so viel Strom wie benötigt" d.h. bei erreichen der Ladespannung, sinkt der Strom auf wenige mA ab.
Ursprünglich wollte ich den Akku laden mit den vorhandenen 5V Netzteil. Es hat sich aber als sehr schwierig herausgestellt, da bei Akkubetrieb ebenfalls geladen wird... ( https://www.mikrocontroller.net/topic/444040#5293656 ) Daher habe ich jetzt das externe Netzteil mit dem StepUp im Betrieb. Die Verluste durch das zusätzliche Netzteil sind wohl vernachlässigbar.

Akku:
Ich wollte zunächst nur einen 6V Akku benutzen. Bei 4A Entladestrom ist jedoch die Spannung zu weit zusammengebrochen...daher vielleicht gleich besser einen 12V (z.B. 4,5Ah) Akku benutzen. Ich habe jetzt 2x 6V in Reihe.

StepDown:
Ich nutze diesen 12A Regler. Bis 6A getestet und keine Probleme festgestellt:
https://de.aliexpress.com/item/DC-DC-DC-Max-12A-Converter-Buck-Adjustable-4-5-30V-12V-24V-to-0-8/32413781790.html?spm=a2g0s.9042311.0.0.63674c4dr1QX3d

Ich habe nach dem StepDown noch ein Sicherungsautomat 10A angeschlossen...nur zur Sicherheit...

Zusätzlich habe ich dann noch einen Schalter auf meiner Technikplatte um die USV in FHEM zu ignorieren (Wartungsmodus), wenn ich z.B. die Batterien wechsel etc.

Eigentlich war es das dann schon. Allerdings fehlt nun noch eine Überwachung der Anlage. Daher habe ich
1.) Erkennung Stromausfall:
Mein Netzteil hat einen DC-OK Switch eingebaut. Dieser fällt auch ab, wenn die 5V von der USV anliegen. Also habe ich hier einfach 3,3V und ein GPIO des Raspberrys angeschlossen.

defmod GPIO_Spannungsversorgung RPI_GPIO 12
attr GPIO_Spannungsversorgung direction input
attr GPIO_Spannungsversorgung event-on-change-reading state
attr GPIO_Spannungsversorgung interrupt both
attr GPIO_Spannungsversorgung pud_resistor down
attr GPIO_Spannungsversorgung room USV


Sobald nun der Strom ausfällt bekomme ich
a) eine Push-Nachricht (Die nur geht, wenn die Sicherung draußen ist...ist kein Netzwerk mehr vorhanden...geht das natürlich nicht)

defmod di_USV_Stromausfall DOIF ([GPIO_NotstromAktiv:state] eq "on"\
and [GPIO_Spannungsversorgung:state] eq "off"\
){\
Push("STROMAUSFALL","Strom oder Netzteil ausgefallen!!!")...
}\

attr di_USV_Stromausfall do always
attr di_USV_Stromausfall room USV

b) Ein an den Rasperry Pi angeschlossener Piepser fängt an Alarm zu machen

defmod di_USV_StromausfallAlarm DOIF ([GPIO_NotstromAktiv:state] eq "on"\
and [GPIO_Spannungsversorgung:state] eq "off"\
)\
(set GPIO_Alarm blink 3 0.5;;)\
DOELSE ()\

attr di_USV_StromausfallAlarm cmdpause 10
attr di_USV_StromausfallAlarm repeatcmd 30
attr di_USV_StromausfallAlarm room USV


2.) Überwachung Batterien
Ich nutze einen billigen AD-Wandler ( https://de.aliexpress.com/item/PCF8591-module-AD-DA-conversion-analog-digital-analog-conversion-module-temperature-illumination-acquisition/32788331987.html?spm=a2g0s.9042311.0.0.63674c4dr1QX3d )
Zur Überwachung von 12V habe ich also einen Spannungsteiler mit 2 Widerständen gemacht und kann so die Spannung schätzen. Ein altern der Batterie wird nie erkannt! Aber der aktuelle Status (gerade beim Entladen) kann schon geschätzt werden.

Die Überwachung sieht bei mir so aus:

defmod di_USV_Unterspannung DOIF ([i2cAnalog:NotstromSpannung] < 11.1 \
and [GPIO_NotstromAktiv:state] eq "on"\
and [GPIO_Spannungsversorgung:state] eq "off"\
)({\
my $Spannung = ReadingsVal("i2cAnalog", "NotstromSpannung", "0");;\
Alarm("Alarme","USV Spannung $Spannung POWEROFF","USV Spannung nur noch $Spannung V die Systeme werden ausgeschaltet!!",2,"siren");;\
##RUNTERFAHREN!!!\
system('/opt/fhem/poweroff.sh &');;\
\
}) DOELSEIF \
([i2cAnalog:NotstromSpannung] < 11.5 \
and [GPIO_NotstromAktiv:state] eq "on"\
and [GPIO_Spannungsversorgung:state] eq "off"\
)({\
my $Spannung = ReadingsVal("i2cAnalog", "NotstromSpannung", "0");;\
Alarm("Alarme","USV Spannung $Spannung","USV Spannung nur noch $Spannung V",2,"siren");;\
\
}) DOELSEIF \
([i2cAnalog:NotstromSpannung] < 12 \
and [GPIO_NotstromAktiv:state] eq "on"\
and [GPIO_Spannungsversorgung:state] eq "off"\
)({\
my $Spannung = ReadingsVal("i2cAnalog", "NotstromSpannung", "0");;\
Alarm("Alarme","USV Spannung $Spannung","USV Spannung nur noch $Spannung V",2,"siren");;\
\
##Wenn NT OK, aber Batterie leer wird!\
}) DOELSEIF ([i2cAnalog:NotstromSpannung] < 11 \
and [GPIO_NotstromAktiv:state] eq "on"\
)({\
my $Spannung = ReadingsVal("i2cAnalog", "NotstromSpannung", "0");;\
Alarm("RPI_Alarme","USV Spannung $Spannung","USV Spannung nur noch $Spannung V ACHTUNG! TIEFENTLADUNG!!!",0,"pushover");;\
\
}) DOELSEIF ([i2cAnalog:NotstromSpannung] < 11.5 \
and [GPIO_NotstromAktiv:state] eq "on"\
)({\
my $Spannung = ReadingsVal("i2cAnalog", "NotstromSpannung", "0");;\
Alarm("RPI_Alarme","USV Spannung $Spannung","USV Spannung nur noch $Spannung V",0,"pushover");;\
\
}) DOELSEIF ([i2cAnalog:NotstromSpannung] < 12 \
and [GPIO_NotstromAktiv:state] eq "on"\
)({\
my $Spannung = ReadingsVal("i2cAnalog", "NotstromSpannung", "0");;\
Alarm("RPI_Alarme","USV Spannung $Spannung","USV Spannung nur noch $Spannung V",0,"pushover");;\
}) DOELSE (\
## Da kein DO Always -> Hier her springen, wenn alles ok\
)
attr di_USV_Unterspannung room USV


Somit wird der Server runtergefahren, bevor die Batterie ganz tot ist.

So viel Beschreibung mal in Kürze. Achtung beim Nachbau. Elektrisch gesehen ist das so nicht ganz korrekt. Es sollte ein "Rückfluss" der Spannung (sowohl zum Netzteil als auch zum StepDown) verhindert werden. Ich habe jedoch wissentlich darauf verzichtet (Diode zu hoher Verlust...alles andere recht aufwendig) und konnte in den Letzten Wochen keine Probleme feststellen. Ich hatte schon häufiger die Sicherung vom Keller draußen...meine Raspberrys liefen immer problemlos weiter :)

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Frank_Huber

Zitat von: bismosa am 27 Juli 2018, 08:24:32
Achtung beim Nachbau. Elektrisch gesehen ist das so nicht ganz korrekt. Es sollte ein "Rückfluss" der Spannung (sowohl zum Netzteil als auch zum StepDown) verhindert werden. Ich habe jedoch wissentlich darauf verzichtet (Diode zu hoher Verlust...alles andere recht aufwendig) und konnte in den Letzten Wochen keine Probleme feststellen.

Super Anleitung! sieht interessant aus.

Für den Rückfluss nur so als Idee:
Bei Stromausfall über ein Relais am GPIO das 10A netzteil trennen.

CBSnake

Hi,

sehr schön, hab ich bei mir auch noch auf der Liste.

Könnte der StepUp JP1 nicht auch vom Netzteil G2 versorgt werden? Oder gibt das Probleme mit den Potentialen?

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

bismosa

Huhu!
So viel Resonanz! Hatte ich nicht mit gerechnet...eine ähnliche Umsetzung, wie ich es gemacht habe, hatte ich sonst nirgends gefunden...da dachte ich mir, das es vielleicht eher ein Sonderfall bei mir ist...

Zitat von: Frank_Huber am 27 Juli 2018, 09:21:06
Für den Rückfluss nur so als Idee:
Bei Stromausfall über ein Relais am GPIO das 10A netzteil trennen.
Gute Idee. Aber ich denke wenn es wirklich Probleme geben würde, wären diese in dem Zeitraum bis das Relais geschaltet hat auch schon da und könnten die Elektronik beschädigen.
Eigentlich müsste das eher mit einer "Idealen Diode" gelöst werden. (siehe auch https://www.all-electronics.de/ideale-diode-fuer-redundante-stromversorgungen-nachbilden/ ) aber das Thema war für mich zu kompliziert...es würde aber auch China Module geben: https://de.aliexpress.com/item/LTC4359-15A-Solar-Charging-Anti-Reverse-Irrigation-Ideal-Diode-Module-Controller/32820364103.html
Macht das Ganze aber auch gleich wieder teurer...

Zitat von: CBSnake am 27 Juli 2018, 09:36:28
Könnte der StepUp JP1 nicht auch vom Netzteil G2 versorgt werden? Oder gibt das Probleme mit den Potentialen?
Das war meine ursprüngliche Idee. Aber das hat viele Probleme bereitet. Bei Stromausfall fließt ein hoher Strom zum Laderegler...und geht wohl in Richtung automatische Selbstzerstörung. Daher müsste man die Ladeelektronik abklemmen sobald ein Stromausfall ist...aber auch hier vermutlich wieder Probleme bis zum Abschalten der Elektronik..mein Test-Raspberry hat sich bei den Versuchen immer sofort aufgehängt...vermutlich auch durch die Spannungsschwankungen.

Gemessen habe ich ca. 0,5-0,6W Verbrauch am Netzteil (mit einem Energiekostenmessgerät), wenn die Akkus geladen sind. Ich finde das für den Nutzen völlig ok.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Frank_Huber

Zitat von: bismosa am 27 Juli 2018, 10:24:39
Gute Idee. Aber ich denke wenn es wirklich Probleme geben würde, wären diese in dem Zeitraum bis das Relais geschaltet hat auch schon da und könnten die Elektronik beschädigen.
Eigentlich müsste das eher mit einer "Idealen Diode" gelöst werden. (siehe auch https://www.all-electronics.de/ideale-diode-fuer-redundante-stromversorgungen-nachbilden/ ) aber das Thema war für mich zu kompliziert...es würde aber auch China Module geben: https://de.aliexpress.com/item/LTC4359-15A-Solar-Charging-Anti-Reverse-Irrigation-Ideal-Diode-Module-Controller/32820364103.html
Macht das Ganze aber auch gleich wieder teurer...
schneller wäre das ganze wenn Du es über den Schaltausgang des Netzteils direkt machst.
Aber womöglich hat ja das NT bereits eine Trennung integriert?

CBSnake

Zitat von: bismosa am 27 Juli 2018, 10:24:39
Das war meine ursprüngliche Idee. Aber das hat viele Probleme bereitet. Bei Stromausfall fließt ein hoher Strom zum Laderegler...und geht wohl in Richtung automatische Selbstzerstörung. Daher müsste man die Ladeelektronik abklemmen sobald ein Stromausfall ist...aber auch hier vermutlich wieder Probleme bis zum Abschalten der Elektronik..mein Test-Raspberry hat sich bei den Versuchen immer sofort aufgehängt...vermutlich auch durch die Spannungsschwankungen.

Gemessen habe ich ca. 0,5-0,6W Verbrauch am Netzteil (mit einem Energiekostenmessgerät), wenn die Akkus geladen sind. Ich finde das für den Nutzen völlig ok.

Gruß
Bismosa

Stimmt klassische Schleife :-) Die müsste man dann öffnen:

G2 -> JP1 -> G1 -> JP2 Dann müsste man aber wieder schauen was der Akku macht bzw JP1 so einstellen das der Akku nicht kaputt geht :-) Von daher bei dem Verbrauch wohl ok mit G2 und G3 ;-)

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

bismosa

Zitat von: Frank_Huber am 27 Juli 2018, 10:29:06
Aber womöglich hat ja das NT bereits eine Trennung integriert?
Wie bereits geschrieben...ich habe bisher keine Probleme oder Einschränkungen feststellen können. Daher vermute ich mal, das die Trennung bereits vorhanden bzw. gut genug ist um keinen Schaden anrichten zu können.

Gerade vorgestern wieder den Strom abgestellt um mal eben eine Steckdose zu setzen. Alles lief problemlos weiter über den Akku...
Ich habe mal ein Diagramm im Anhang. 19:39Uhr Sicherung ausgemacht und 19:55Uhr wieder eingeschaltet...warum die Batteriespannung während des Zeitraums wieder Steigt weiß ich nicht genau. Vielleicht war am Anfang etwas mehr Last...

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Frank_Huber


Gernott

#8
Zitat von: bismosa am 27 Juli 2018, 10:45:52
...warum die Batteriespannung während des Zeitraums wieder Steigt weiß ich nicht genau. Vielleicht war am Anfang etwas mehr Last...
In's Blaue geraten könnte das auch ein kurzer Kurzschluss am Anfang sein, von dem sich der Akku dann wieder erholt. - Nein, doch nicht, die grüne Akkuspannung bleibt ja konstant. Komisch.

Gruß
G.

Papa Romeo

....was spricht gegen eine schnelle Schottky-Diode statt Relais......
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Gernott

...oder man nimmt gleich ein gepuffertes USV-Netzteil, z.B. von Meanwell AD(D)-55 o.ä. Da ist alles schon drin. Gibt es auch für die Hutschiene, als DRC-Serie.

fiedel

Sehr ist schön auch diese 12V USV. Stepdown(s) dahinter und man ist fast so sischeee wie Blüms Rente.  ;)
Die hat auch nen Ausgang für "Akku fast leer". Ich hab allerdings die ganz kleine mit der Lithiumzelle, da die
für den Dreamplug voll ausreicht.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423