Peter Hofbauer’s private Homepage
Selbstbauprojekte eigene Entwicklungen
Impressum Letzte Änderung: 08.Juli 2013 Copyright: frei! Impressum Letzte Änderung: 01.01.2023 Copyright: frei!

Solarzellen-Logger mit Batteriebetrieb

Home Home

Wozu soll das gut sein?

Die Preise für Strom haben inzwischen eine Höhe erreicht, das ich mir Gedanken über eigene Fotovoltaik mache. Dabei habe ich ein Problem. Mein Haus hat ein Flachdach und ich wohne in Norddeutschland. Aufgeständerte Solarmodule auf ein Flachdach sind mir zu gefährlich bei unseren Stürmen. Es gibt zwar im Netz Berichte über solche Anlagen, die einen starken Sturm überstanden haben. Solche Stürme kommen aber jährlich. Durch Vibrationen und Rütteln an der Dachhaut entstehen darin (trotz Bewährung durch Leinengitter usw)  Risse in der Dachhaut. Die entstehen übrigens auch ohne mechanische Belastung durch Sonne/Winter im Laufe der Jahre. Das hatte mein Dach nur 30 Jahre überlebt bis ich es neu machen musste. Und flach aufs Dach legen geht nicht weil dann der Regen die Module nicht mehr reinigen kann. Und der Ertrag ist zu gering. Eine kleine Lösung kann die senkrechte Montage eines PV-Moduls an einer Wand sein. Geeignet sind zwei 6m hohe Hauswände, an deren oberen Ende keine Verschattung  auftritt. Das sieht nicht gut aus, ist aber von der Straße nicht einsehbar.  Kann also toleriert werden. Bleibt die Frage: wie viel bringt es? Diese Frage soll mein Solarzellen-Logger klären helfen.

Meine Überlegungen

Solange die Belastung einer Solarzelle dafür sorgt, das deren Spannung (pro Einzelzelle) unter etwa 0,3V bleibt, liefert die Zelle einen (fast) konstanten Strom dessen Höhe direkt proportional zum Energie-Ertrag ist. Der Logger zeichnet die Stromdaten von vier kleinen Solarzellen auf. Der Logger wird mit 3 Monozellen betrieben. Die können das Gerät mindestens ein ganzes Jahr betreiben. Eine Solarzelle wird in idealer Position und Winkel montiert. Deren Daten dienen als später als Referenz um den prozentualen Ertrag der anderen Positionen zu berechnen. Die übrigen drei kommen dort hin wo später PV-Module hin könnten.   Es gibt im www Tabellen, was man je nach Winkel der PV- Module erwarten kann, aber deren Daten sind in meinen Fall wertlos. Mein Haus mit senkrechten PV-Modulen hat ganz andere Verhältnisse, das Haus steht dabei im Weg. Die Bedienung erfolgt nur über eine RS232 mit einer dafür entwickelte Software. Der Logger selbst bekommt keine Bedienelemente und keine Anzeige. Nur eine Taste um die RS232 zu aktivieren, was mit einer blauen LED angezeigt wird. Eine Echtzeituhr mit Weckfunktion aktiviert den Logger alle 1 Minute. Dann werden alle 4 Ströme gemessen. Nach 20 Minuten wird ein Mittelwert berechnet und zunächst im RAM gesichert. Nach Ablauf von 20 Stunden, das ist die maximal mögliche Zeit, werden die Daten eines Tages im EEPROM gesichert. Vorgesehen sind Daten für maximal 500 Tage. Die Daten können über die RS232 vom Logger abgeholt werden. Dann kann der ganze Datensatz als csv-Datei gesichert und auch wieder geladen werden. Die verwendeten Solarzellen liefern 60mA bei maximalen Sonnenschein.  
An X3 ist die 4,5V-Batterie angeschlossen. Ein Stabi U3 setzt die Spannung auf 3,3V herunter. Damit wird nur die CPU betrieben. Der zweite Stabi U2 wird von der CPU mit Q2 und Q1 eingeschaltet wenn gemessen werden soll. Daran sind die OPs U1, der EEPROM U4 und der Schnittstellen-IC U6 angeschlossen. Der Strom von den vier Solarzellen S1 bis S4 wird über eine Shunt von 4R7 in Spannung gewandelt . Die OPs verstärken auf 3V bei einen Strom von 60mA. Die Uhr in der CPU wird mit einen Uhrenquarz Q3 getaktet. Die CPU selber mit den  internen FRC auf 4 MHz getaktet. Verwendet wird ein 16-bit Prozessor PIC24F16KA102. Im normalen Modus benötigt die CPU etwa 4mA. Mit allen anderen ICs benötigt die Schaltung etwa 10mA. Nach Ablauf vom 100ms wird die CPU schlafen gelegt und benötigt nur noch 0,18mA. Nach einer Minute wird die CPU durch den Wecker per Interrupt aktiviert. Die RS232-Taste S99 kann die CPU ebenfalls aktivieren. Der arithmetische Mittelwert der Stromaufnahme beträgt: 10mA : 599 = 0,0167mA, dazu noch die 0,18mA ergibt etwa 0,2mA. Über R6 und R9 überwacht die CPU die Batterie. Die Stiftreihe X5 dient als Reserve, Testausgänge und für die RS232-Taste und Led. Nachträglich mussten für den Batterietest die Pins 25 und 26 (RA15 und RB14) der CPU verbunden werden, hatte ich im Layout vergessen.  
SLG9400

Der Schaltplan

Die Software

Das ganze System kann erst getestet werden, wenn beide, also Firmware für den PIC24F und Software für den PC funktionieren. Das hat die Entwicklung etwas verkompliziert, irgendwie ein “Henne-Ei-Problem”. Die PIC24F-Firmware Der PIC24F wird mit Befehl “pwrsav #0” in den Tiefschlaf versetzt. Der Wecker erzeugt alle 1 Minute einen Interrupt der den PIC24F aufweckt. Dann wird ein Zyklus zur Messung aktiv: der Wecker wird auf die folgende Minute gestellt der Stabi U2 für die anderen ICs eingeschaltet 100ms warten, damit der analoge Teil seine Cs aufladen kann  Der Messzyklus startet o nach 20x wird ein Mittelwert berechnet und im RAM gesichert o nach erreichen der “Tages-Endezeit” kommt der ganze Datensatz ins EEPROM und könnte via RS232 abgeholt werden. der PIC24F wird wieder in den Tiefschlaf versetzt. Parallel dazu und auch gleichzeitig ist die RS232 mit einen Interrupt aktivierbar. Die Taste S99 erzeugt diesen Interrupt. Nach 30 Sekunden wird die RS232 wieder inaktiv falls vorher keine Bedienung erfolgt. Das RS232-Protokoll Das Protokoll ist ganz einfach aufgebaut. Das erste Byte ist ein Kommando, dahinter kommen die Daten und ans Ende eine Prüfsumme. Die Prüfsumme ist ein Byte das durch die Addition aller Bytes ohne die PS selber entsteht. Die Daten werden so übertragen wie sie im EEPROM des Loggers stehen, also im Binärformat. Ob eine Übertragung fehlerfrei war, wird an 3 Eigenschaften erkannt: 1. das Kommando 2. die Anzahl der Bytes 3. die Prüfsumme Wenn ein Fehler erkannt wurde, wird einfach 2 Sekunden lang nichts getan. Daran erkennt die Gegenseite den Fehler und setzt seine Zeiger entsprechend neu.   Befehl:  Start-Daten vom SLG abholen: PC > SLG = 2Byte: A+ PS SLG > PC = 16Byte: a + 14 Byte Startdaten + PS Uhrdaten: Jahr (1Byte), Monat (1 Byte), Tag (1 Byte), Stunde (1Byte), Minute (1Byte) Anfangsdatum: Jahr (1Byte), Monat (1 Byte), Tag (1 Byte) Anfangszeit: Stunde (1Byte), Minute (1Byte) Endezeit: Stunde (1Byte), Minute (1Byte) Anzahl der Tage bisher (2Byte) Befehl: Uhr im SLG stellen PC > SLG = 7Byte: B + 5 Byte Uhrdaten + PS SLG > PC = 2Byte: b + PS Uhrdaten: Jahr (1Byte), Monat (1 Byte), Tag (1 Byte), Stunde (1Byte), Minute (1Byte) Befehl: SLG Init und Reset PC > SLG = 9Byte: C + 7 Byte Init-Daten+ PS SLG > PC = 2 Byte: c + PS Init- und Reset-Daten Anfangsdatum: Jahr (1Byte), Monat (1 Byte), Tag (1 Byte) Anfangszeit: Stunde (1Byte), Minute (1Byte) Endezeit: Stunde (1Byte), Minute (1Byte) Befehl:  Logger-Daten vom SLG holen: PC > SLG = 4Byte: D + Tages-Nummer + PS SLG > PC = 247Byte: d + 245  Byte Loggerdaten + PS Logger-Daten 6 Byte: Jahr (2 Byte), Monat (1 Byte), Tag (1 Byte), Stunde (1Byte), Minute (1Byte) 3 Messungen der 4 Sensoren  pro Stunde = 12Byte x 20 Stunden = 240Byte 246 Byte pro Tag Die Uhr im PIC24F hat ihre Daten im BCD-Format. Das wird zur Verarbeitung im PIC24F / RS232 ins Bin-Format konvertiert. Die Windows-Software Der Solarzelle-Logger hat keine eigene Anzeige und kann auch nur über eine Software im PC bedient werden. Ich habe die Software mit XPROFAN geschrieben. Verwendet wurde die IDE “LemonEd”. Zuerst muss mit Button “Verbinden” die Verbindung aktiviert werden. Es erscheint dann ein Fenster mit den/der vorhandenen  Schnittstelle. Nach Auswahl einer Schnittstelle werden die Daten vom Logger zur Anzeige gebracht: Anfangsdaten, ab wann der Logger starten soll, in welcher Uhrzeit Von: / Bis. Und die aktuelle Uhrzeit und das aktuelle Datum im PIC24F. Erst danach sind die anderen Aktionen bedienbar. Die Anfangsdaten für den Beginn (Datum) und Von/Bis (Tageszeit) der Messungen für einen Neustart bzw Reset des Loggers werden mit den Button “SLG94 Reset” zum Logger übertragen. Wegen RESET kommt vorher eine Sicherheitsabfrage. Mit Button “Uhr stellen” wird die Uhrzeit und das Datum in der Uhr des PIC24F neu gestellt. Nach beginn mit “Verbinden” erscheint daneben eine Info wie viel Tagesdaten vorhanden sind. Diese können mit “SLG94  >> PC” vom Logger abgeholt werden. Es werden immer alle geloggten Tage auf einmal übertragen. Das Datum der Tage erscheint in den rechten Listbox. Hinters Datum ist entweder ein ! oder ?. Ein ? zeigt eine nicht mehr ganz gesunde Batterie an. Die Daten könnten dann aber trotzdem noch OK sein. Die Zahl dahinter zeigt die Anzahl der Messdaten. Maximal möglich sind 60 für 20 Stunden pro Tag. Sobald auf ein Datum mit der Maus geklickt wird erscheinen alle Messdaten dieses Tages in der Gridbox daneben. Und eine kleine Grafik dieser Tagesdaten für jede Solarzelle. Mit “Speichern” wird eine Textdatei im csv-Format auf die Festplatte gesichert. Mit “Laden” kann diese wieder in die Anzeige geholt werden.  Eine Übertragung zurück zum Logger ist nicht vorgesehen. Die Daten oben im Bild sind alles künstliche Testdaten. Eine praktische Anwendung mit echten Daten ist noch nicht erfolgt. Das hole ich später nach. Die Software soll auf meinen kleinen EEE-Notebook mit XP laufen. Das Teil habe ich mal geschenkt bekommen. Ist sonst auch für nichts zu verwenden, hat jetzt wenigstens eine kleine Aufgabe.

Der mechanische Aufbau

Die Gehäuse wurden mit meinen 3D-Drucker gefertigt. Die Farbe der Teile ist Zufall und nicht Absicht! Die Platine ist in SMD-Technik gemacht. Dabei habe ich vorhandene Teile verwendet, auch MILF- Teile. Die Stabis waren als SMD nicht lieferbar, ich musste TO92 verwenden und U8 (ADM3202) musste ich mit Drähten verlängern wegen anderes IC-Gehäuse,  nicht schön aber funktioniert. Die 3 Batterien (Monozellen) habe ich angelötet, eine Batteriehalterung mit Kontakten ist mir zu unzuverlässig. Die Batterien liegen lose in einer Schale, der Gehäusedeckel hält sie darin fest. Die Solarzellen sind 42x42mm groß. Die bestehen aus vier in Reihe geschaltete Einzelzellen. Werden deshalb auch als 2V-Solarzelle verkauft. Diese kleinen Solarzellen habe ich mit Siliconmasse in die Sensorgehäuse wasserdicht eingeklebt.

Manöver-Kritik

Das System funktioniert gut, aber was hätte man besser machen können? Ein Text-LCD-Modul zur Anzeige der aktuellen Daten usw die nur bei Bedarf (wie die RS232) aktiv wird, fehlt. Das habe ich weg gelassen aus Sorge um die Lebensdauer der Batterie. Auch weil das  Loggger-Gehäuse wasserdicht sein sollte, bei einer Anzeige im Deckel ist das schwierig zu erreichen. Die PC-Software wird später noch eine größere und bessere Grafik bekommen.

Nachbau?

Wie alle meine Berichte ist auch dieser keine reine Bauanleitung. Hier trotzdem mal ein paar Tipps. Platine und Schaltplan wurden mit KiCAD V5 gezeichnet. Die Platine sollte man überarbeiten. Die beiden Stabis sind als SMD schwer lieferbar, sollte man als THT vorsehen und den ADM3202ARN mit richtigen (kleineres) IC-Gehäuse im Layout vorsehen. Das EEPROM CAT25M01VI-GT3 hat ein kleines IC-Gehäuse, das im Layout vorgesehen ist. Als Ersatz funktioniert 25LC1024 ohne Änderung der Software , hat aber ein breiteres IC-Gehäuse. Die PC-Software läuft auf allen Windows, unter Linux mit Wine ebenfalls. Downloads Hex-Datei für den PIC24F, SLG9400Hex.zip (4kB) KiCAD-Dateien SLG9400KiCAD.zip (71kB) PC-Software und Quelle SLG9400RS232.zip (570kB) Teile für den 3D-Drucker SLG9400-3D-Teile.zip (732kB)

1 Jahr in Betrieb: Solar-Daten vorhanden und ausgewertet

Vom 02. Februar 2023 bis 31. Januar 2024 sind die Daten aufgezeichnet. Die wurden dann als csv-Datei gesichert und in einer Tabellenkalkulation berechnet. Ich hatte 4 Sensoren (Solarzellen) am Haus montiert. Berechnet wurde der prozentuale Ertrag im Verhältnis zur Idealposition. Sensor1 Osten, senkrecht, Ertrag = 62,86% Sensor2 Süden, Balkon, 30 Grad schräg, Ertrag = 76,23% Sensor3 Süden, Balkon, senkrecht , Ertrag = 58,07% Sensor4 Ideale Position, Ertrag = 100% Frage: lohnt sich ein Balkonkraftwerk wenn der Strom selber verbraucht wird? Ich bevorzuge die Position von Sensor1 Ostseite. Gerechnet wird in meiner Gegend (Bremen) mit 930kWh / kWp. Eine preisgünstige Anlage ,mit 0,8kWp liefert: 0,8 x 930 x 0,6286 = 467kWh pro Jahr. Bei einen Strompreis von 0,30€ bringt das 467 x 0,3 = 140,10€. Wenn eine solche Anlage selber aufgebaut wird kostet das mit Glück nur 400€. Das kann sich also lohnen. Es gibt aber ein Problem den ein Stromerzeuger immer hat. Der Strom muss exakt in der selben Zeit gebraucht werden! Schwarz = Sensor1 Ostseite senkrecht Rot = Sensor2 Balkon 30 Grad Grün = Sensor3 Balkon senkrecht Blau = Sensor4 Ideale Position = Referenz Die Skala unten beginnt bei 02:00 und jede Stunde ein Teilstrich. Ende bei 21:40. Die Stromabgabe ist logischerweise ziemlich chaotisch. Mein Haus benötigt im Standby-Modus eine Leistung von etwa 50 bis 100W. Ich habe eine permanente Anzeige für jede der 3 Phasen. Nur wenn Wärmeerzeuger (Herd, Waschmaschine usw) in Betrieb gehen wird es deutlich mehr. Die Solaranlage kann für kurze Zeit maximal etwa 500W liefern. Es ist unmöglich ständig diese Leistung zu verbrauchen. Man muss also damit rechnen das von den 467kWh mit Glück nur die Hälfte gebraucht wird, vermutlich weniger. Schlussfolgerung: es lohnt sich nicht wirklich!
Januar
Januar
Juni
Juni
Juni
Juni
Juni
Downloads: die Daten als csv-Datei 202324.SLG (820kB) Die Datei kann in “SLG9400 Solar-Logger” geladen werden. Für eine Tabellenkalkulation sollt man in 202324.csv umbenennen.