Das Programm zu unserem Versuchsaufbau schreiben wir in Java. Um die GPIO zu steuern und die Messwerte auszulesen, verwenden wir die Tools i2c-detect und gpio, die das Java-Programm als Subprozesse startet (Listing 4).
Listing 4
Programm zum Steuern und Messen
import java.util.Scanner;
public class SaltBattery {
public void setup() throws Exception {
new ProcessBuilder( "/usr/bin/gpio","mode","1","out" ).start();
new ProcessBuilder( "/usr/bin/gpio","mode","4","out" ).start();
loadOff();
unLoadOff();
}
public int switchBytes(int input){
input =((input & 0x00ff) << 0x08)|((input >> 0x08)&0x0ff);
int sign=1;
if (0<(input&0x8000)){
sign=-1;
input=((~input)&0xffff)+1;
}
return sign*input;
}
public void loadOn() throws Exception {
new ProcessBuilder( "/usr/bin/gpio","write","1","0" ).start();
}
public void loadOff() throws Exception {
new ProcessBuilder( "/usr/bin/gpio","write","1","1" ).start();
}
public void unLoadOn() throws Exception {
new ProcessBuilder( "/usr/bin/gpio","write","4","0" ).start();
}
public void unLoadOff() throws Exception {
new ProcessBuilder( "/usr/bin/gpio","write","4","1" ).start();
}
public double measureCurrent() throws Exception {
Process p = new ProcessBuilder("i2cget","-y","1","0x40","0x03","w").start();
Scanner s = new Scanner(p.getInputStream());
return switchBytes(Integer.decode(s.next()))/20;
}
public double measureVoltage() throws Exception {
Process p = new ProcessBuilder("i2cget","-y","1","0x40","0x04","w").start();
Scanner s = new Scanner(p.getInputStream());
return switchBytes(Integer.decode(s.next()))/1000;
}
public void go() {
double sumCurrentUnload=0;
double sumCurrentLoad=0;
double current=0;
int mesurementSteps=600;// Sec
try {
setup();
System.out.println("Start Battery load");
loadOn();
for (int i=1; i<mesurementSteps ; i++) {
current = measureCurrent();
sumCurrentLoad +=current;
Thread.sleep(1000);
}
loadOff();
System.out.println("Start Battery unload");
Thread.sleep(2000);
unLoadOn();
for (int i=1; i<mesurementSteps ; i++) {
current = measureCurrent();
sumCurrentUnload += current;
System.out.println("Voltage:"+measureVoltage());
if(current==0.0) break;
Thread.sleep(1000);
}
unLoadOff();
} catch (Exception e) {
System.out.println(e);
}
System.out.println("Load:"+sumCurrentLoad+" mAs");
System.out.println("UnLoad:"+sumCurrentUnload+" mAs");
}// go
public static void main(String[] args) {
SaltBattery b=new SaltBattery();
b.go();
}// main
}// class
Hierbei spielt die Methode switchBytes() eine besondere Rolle. Sie vertauscht das High- und Low-Byte und interpretiert das Most Significant Bit als Vorzeichen. Ist die Zahl negativ, bildet das Programm das Zweierkomplement und setzt das Vorzeichen. Diese Klimmzüge benötigen wir, weil das INA2331-Modul die Messwerte in einem maschinennahen Format liefert, das Java nicht kennt.
Das eigentliche Messprogramm befindet sich in der Methode go(). Die erste For-Schleife misst beim Laden der Batterie einmal pro Sekunde den Strom. So erhalten wir die in die Batterie geladene Energiemenge. Die zweite For-Schleife entlädt die Batterie über einen Lastwiderstand. Beim Entladen gibt das Programm bei jeder Messung die aktuelle Spannung der Batterie mit aus. Auch hierbei ermittelt es die entnommene Energiemenge.
Am Ende des Zyklus gibt das Skript die Messwerte aus. Um ein wenig über die Eigenschaften der Batterie herauszufinden, entladen wie sie über unterschiedliche Lastwiderstände. Die Tabelle “Ergebnisse” fasst die Resultate zusammen.
|
Lastwiderstand |
Geladene Energie |
Entladene Energie |
|---|---|---|
|
10 Ohm |
13207 mAs |
-395 mAs |
|
30 Ohm |
13798 mAs |
-440 mAs |
|
100 Ohm |
14358 mAs |
-462 mAs |
|
100 Ohm |
14370 mAs |
-483 mAs |
|
100 Ohm |
14374 mAs |
-507 mAs |
Dabei fällt ins Auge, dass unsere aus Haushaltsgegenständen gebaute Batterie keinen besonders guten Wirkungsgrad aufweist. Ein Großteil der Ladeenergie geht verloren, aber es zeigt sich auch eindeutig, dass der Akku auch Energie speichert. Zudem sieht es so aus, als ob die Kapazität mit der Anzahl der Ladezyklen steigt. Daneben fällt auf, dass die Batterie bei geringerer Entladung etwas mehr Leistung abgeben kann.
Unsere kleine Testreihe zeigt auf jeden Fall, dass eine Salzwasserbatterie prinzipiell funktioniert. Im nächsten Abschnitt schauen wir uns deshalb eine im Handel erhältliche Salzwasserbatterie an.
Im Handel
Es gibt Hersteller, die sich auf die Produktion dieser umweltfreundlichen Energiespeichersysteme spezialisieren. So hält Bluesky Energy [7] mit dem Greenrock-System ein Produkt sowohl für die private als auch für die industrielle Nutzung im Portfolio vor.
Die Speichersysteme sind nur für den stationären Einsatz vorhergesehen und eignen sich hervorragend, um die von Solaranlagen erzeugte Energie für den Eigenverbrauch zu speichern. Wie Abbildung 4 zeigt, kann es eine Salzwasserbatterie durchaus mit den anderen am Markt befindlichen Stromspeichersystemen aufnehmen. Es gibt nur zwei Kategorien, in denen sie schlechter abschneidet als ein Lithium-Ionen-Akku: bei der Energiedichte und der C-Rate.
Die Energiedichte fällt zwar schlechter aus als die von Lithium-Ionen-Akkus, aber immer noch so gut wie die eines Bleiakkus. Durch die geringere Energiedichte fallen die Speicher bei gleicher Kapazität größer und schwerer aus als Lithium-Ionen-Akkus, was allerdings beim Einsatz in Gebäuden kein wirkliches Problem darstellt.
Die C-Rate gibt an, wie schnell sich die Energie wieder entnehmen lässt. In diesem Punkt entpuppt sich die Salzwasserbatterie eher als Marathonläufer: Sie liefert über einen langen Zeitraum eine konstante Menge an Energie, eignet sich aber nicht dafür, kurzzeitig hohe Ströme abzugeben. Auch das entspricht aber wieder dem Einsatzszenario in Gebäuden.
Kommen wir nun zu den Vorteilen von Salzwasserbatterien im Vergleich zu Lithium-Ionen-Akkus. Hier gibt es gleich mehrere Pluspunkte. Neben der Umweltfreundlichkeit und der geringen Brandgefahr spielt hier die Verfügbarkeit der Ressourcen eine große Rolle.
Durch die Diskussion über die E-Autos wissen wir alle, dass der Abbau von Lithium erhebliche Umweltschäden verursacht. Es zu recyceln ist sicher eine gute Idee, benötigt jedoch eine Menge Energie und verursacht einen hohen Aufwand. Salzwasserbatterien schneiden in diesem Punkt um Längen besser ab; sie verursachen kaum Umweltschäden und lassen sich leicht recyceln. Die Komponenten der Salzwasserbatterie gibt es auf der Erde in großen Mengen, Lithium nicht.
Ein wirklich gravierender Punkt, der gegen den Einsatz von Lithium-Ionen-Akkus in Gebäuden spricht, ist ihre Brennbarkeit. Ein Youtube-Video [8] zeigt, was für ein Feuerwerk brennende Akkus dieser Bauart zuweilen verursachen. Eine Salzwasserbatterie dagegen zeigt sich auch nach längerem “Grillen” reichlich unbeeindruckt [9].
Fazit
Unser einfacher Versuchsaufbau demonstriert, dass sich mit einfachsten Haushaltsgegenständen ein Energiespeicher aufbauen lässt. Der RasPi half uns dabei, die Lade- und Entladezyklen immer gleich zu gestalten und dabei die Ladung zu messen. Zar handelt es sich in unserem Szenario lediglich um einen nicht produktiv nutzbaren Versuchsaufbau, der aber funktioniert und lässt sich für weitere Experimente abwandeln. Eine interessante Frage wäre zum Beispiel, wie stark die Selbstentladung des Aufbaus ausfällt.






