FreeSol Raspi
Aus FreeSol-Wiki
Überblick
Diese Seite beschreibt den Aufbau eines solaren Datenloggers, der sich aus Impulsdaten einer S0-Schnittstelle speist, die Daten in einem Raspberry Pi sammelt und mit Hilfe eines Python-basierten Webservers (CherryPy) visualisiert.
Für Fragen und Diskussionen gibt es einen Thread bei photovoltaikforum.com.
Stand:
- 2019-04-25: Start Betaphase:
- Der Logger läuft bei mir an verschiedenen Anlagen und erfasst dort außer S0-Signalen auch Energiedaten aus anderen Zählern.
- Start der Dokumentation
- Während der Suppportphase bin ich für Rückfragen unter der Mailadresse raspi-support (at) freesol.de erreichbar.
- Mit dem USB-Programmieradapter habe ich noch nicht gearbeitet, scheint mir aber zukunftssicherer als SD-Adapter und SD-Kartenleser, die es nicht mehr in jedem PC gibt.
Alternative
Als Variante sollte man sich auf jeden Fall die Installation eines Volkszaehlers auf einem Raspi angucken, weil dort ein fertig entwickeltes Projekt vorliegt.
Kauf des Materials
Grundpaket: FreeSol Raspi
Position | Komponenten | Lieferant | Einzelpreis | Stückzahl | Gesamtpreis |
---|---|---|---|---|---|
1 | Raspberry Pi B3+ | Sertronics | 32,40 | 1 | 32,40 |
2 | Gehäuse zu Raspberry Pi B3+ | Sertronics | 5,90 | 1 | 5,90 |
3 | Steckernetzteil | Sertronics | 5,90 | 1 | 5,90 |
4 | microSDHC-Speicherkarte 8 GB Class 10 | Sertronics | 3,50 | 1 | 3,50 |
5 | Kartenadapter für USB | Sertronics | 1,60 | 1 | 1,60 |
6 | Kabel für S0-Signal | Sertronics | 2,90 | 1 | 2,90 |
Summe | 52,20 |
Hinweise:
- Keine Versandkosten bei Kauf über 29 EUR
- Bitte nicht an der Speicherkarte sparen, hier ein Markenprodukt nehmen
- Ggf. weiteres Kabel mitkaufen, falls die Entfernung zum Zähler groß ist und das S0-Kabel verlängert werden muss
- Ggf. Lüsterklemmen mitkaufen, falls man keinen Lötkolben hat, um das Verlängerungskabel anzulöten
- Ggf. Netzwerkkabel mitbestellen, zumindest für die Ersteinrichtung des Raspi. Danach kann dieser ggf. auch per WLAN eingebunden werden.
Energiezähler anschließen
S0-Zähler
- Falls kein S0-Signal vorhanden ist:
- S0-Zähler kaufen und einbauen lassen.
- Die Pulszahl im Programm ist im Moment fest auf 1000 Pulse pro kWh eingestellt, wird aber bei Bedarf noch variabel einstellbar gemacht.
- Für das S0-Signal werden die folgenden zwei Pins verwendet (im GPIO.BCM Numerierungsschema)
- GPIO.input(22)
- Das Pinout am Raspi kann mit dem Komando pinout angezeigt werden.
- Weitere Informationen zum PIN-Layout finden sich hier:
- https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering?newreg=86e0900fde854eee97bdd4f78e3c6e7b
- https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering?newreg=86e0900fde854eee97bdd4f78e3c6e7b
Installation des Raspi als Schritt-für-Schritt-Anleitung
- Raspian Image downloaden: https://www.raspberrypi.org/downloads/raspbian/
- Dort "stretch with recommended software" auswählen und als ZIP-File laden. Größe sind knapp 2 GB
- getestet mit Version: April 2019, Release date: 2019-04-08, Kernel version: 4.14
- Dort "stretch with recommended software" auswählen und als ZIP-File laden. Größe sind knapp 2 GB
- Entpacken des Downloads
- Karte in den Kartenadapter stecken und dann Kartenadapter in den USB Port stecken
- Betriebssystem-Download auf Karte schreiben mit Win32DiskImager
- Vorbereiten Headless Boot (das bedeutet, man will den Raspi Starten, ohne dort eine Tastatur und einen Bildschirm anzuschliessen, man will stattdessen sofort direkt über Netzwerk zugreifen)
- Dazu einfach ein leeres File mit dem Namen ssh ohne Erweiterung mit Windows Erplorer ins Hauptverzeichnis der Karte kopieren, dann ist Raspi nach Boot per ssh erreichbar. Ein solches File befinet sich hier (nicht wundern, das File ist wirklich leer). Wichtig: Das File beim Herunterladen unter dem Namen ssh und nicht unter ssh.txt abspeichern, notfalls umbenennen.
- weitere Hinweise: https://www.raspberrypi.org/documentation/configuration/wireless/headless.md
- Den Raspi per Netzwerkkabel mit dem PC verbinden
- Den Raspi per Netzteil mit Strom versorgen
- Hinweis: Beim Ausschalten ist es sicherer, den Raspi vor Abstecken des Netzteils definiert herunterzufahren mit einem Kommandozeilenbefehl "sudo shutdown" im Raspi.
- Im Router des Netzwerks herausfinden, unter welcher IP-Adresse der Raspi zu finden ist (z.B. 192.168.178.32).
- Diese Adresse im Router auch so einstellen, dass sie immer gleich bleibt.
- Mit dem Raspi über SSH unter der herausgefundenen IP-Adresse mit dem Programm Putty verbinden.
- Die beim erstmaligen Verbinden erscheinende Warnmelkdung, dass dies eine neue Verbindung ist, kann man mit "Ja" bestätigen
- Login erfolgt mit User pi und Passwort raspberry
- Hinweis für das Arbeiten mit dem schwarzen Kommandozeilen-Fenster in Putty:
- Hier auf der Webseite beschriebene Kommandos kann man mit der Maus markieren und dann mit Ctrl-C in die Zwischenablage kopieren. Wechselt man nun in das schwarze Kommandozeilen-Fenster, kann man dort die Kommandos einfach mit einem rechten Mausklick an die aktuelle Position kopieren und spart sich so das Abtippen.
- raspi-config für Ersteinrichtung
- Kommando: sudo raspi-config
- Navigation mit den Pfeiltasten, Page Up und Page Down, der Tab-Taste und Return
- Man kann das User Passwort von raspberry auf einen anderen Wert setzen (sollte es aber aufschreiben ;-) )
- 4: Localisation Options -> I1 Change Locale -> (durch Drücken der Leertaste Haken setzen bei "de_DE ISO-8859-1", dann Tabulator und Return zum Bestätigen, im nächsten Bildschirm de_DE auswählen durch Markieren und Return
- 4: Localisation Options -> I2 Change Timezone -> (Europe -> Return -> Berlin -> Return)
- 4: Localisation Options -> I3 Change Keyboard Layout -> Auswählen und einfach Return drücken, Keyboard wird dann angepasst.
- 4: Localisation Options -> I4 Wifi Country -> DE Germany auswählen
- Tool verlassen mit Finish
- Das Tool kann jederzeit wieder aufgerufen werden.
- Betriebssystem-Software aktualisieren
- Die folgende zwei Kommandos eingeben, die Ausführung dauert jeweils etwas:
- sudo apt-get update
- sudo apt-get upgrade
- Die Frage "Do you want to continue?" mit Return bestätigen
- Weitere Informationen, wenn es jemanden genauer interessiert
- Eine schöne generelle Einführung in den Raspi findet sich z.B. hier
- Ein paar grundlegende Infos zu Kommandos in der Shell finden sich z.B. [hier http://www.raspberry-pi-geek.de/Magazin/2013/05/Einfuehrung-Linux-auf-dem-Raspberry-Pi]
- Anleitung zum Einrichten eines Raspi: http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_Install.html
- Die folgende zwei Kommandos eingeben, die Ausführung dauert jeweils etwas:
Installation der FreeSol-Software
- Verzeichnis für die Software auf dem Raspi anlegen
- Kommando: mkdir FreeSol
- Hinweise:
- mit dem Kommando ls -l müsste jetzt das Verzeichnis zu sehen sein
- mit dem Kommando pwd sieht man, in welchem Verzeichnis man sich befindet
- mit dem Kommando cd, z.B. cd FreeSol oder cd .., kann man das Verzeichnis wechseln
- Folgende zu übertragende Programme von hier herunterladen:
- FreeSolRaspi_SolarZaehl.py
- S0_Solar.py
- CherryPy-Zaehler.py
- Dateien z.B. nach c:\temp\FreeSol speichern.
- Die Programme mit einem FTP Programm (z.B. Filezilla) auf den Raspi übertragen
- Zum Aufbau der Verbindung in FileZilla folgende Daten eingeben
- Server: IP-Adresse des Raspi, z.B. 192.168.178.32
- Benutzer: pi
- Passwort: raspberry (oder das geänderte Passwort)
- Port: 22
- Danach auf Verbinden klicken
- Als Quellverzeichnis links das Verzeichnis auswählen, in dem die heruntergeladenen FreeSol-Datein liegen, z.B. c:\temp\Freesol . Die drei Dateien sollten nun unten angezeigt werden.
- Als Zielverzeichnis rechts das Verzeichnis /home/pi/FreeSol auswählen durch Doppelklick auf FreeSol
- Nun die drei Dateien aus dem linken Verzeichnis durch Doppelklick auf jede Datei auf den Raspi hochladen
- Zum Aufbau der Verbindung in FileZilla folgende Daten eingeben
- (Nur bei Verwendung des Lite Images für das Raspi Betriebssystem muss ein zusätzliches Pakete installiert werden, sonst gibt es Fehlermeldungen im nächsten Schritt)
- sudo apt-get -y install python3-pip
- Weitere benötigte Python-Module nachladen und Verzeichnisse vorbereiten mit den folgenden Kommandos:
- sudo pip3 install cherrypy
- sudo apt-get install python3-pandas
- Abfrage "Do you want to continue?" wieder mit Return bestätigen
- sudo mkdir /webserv
- Das Webserverskript CherryPy-Zaehler.py zum Autostart des Raspi hinzufügen
- Das Autostart-File mit dem Kommando sudo nano /etc/rc.local aufrufen
- Mit den Pfeiltasten an das Ende des Files navigieren, das angezeigt wird
- Fast am Ende des Files, vor der Zeile exit 0 nacheinander folgende zwei Zeilen einfügen (statt Abtippen besser kopieren wie oben unter Putty beschrieben)
- sudo python3 /home/pi/FreeSol/S0_Solar.py >/home/pi/FreeSol/S0_err.log 2>&1 &
- sudo python3 /home/pi/FreeSol/CherryPy-Zaehler.py >/home/pi/FreeSol/CherryPy_err.log 2>&1 &
- Das File nach Abspeichern verlassen (Ctrl-X und dann Y; falls man ohne Speichern abbrechen will, Ctrl-X und dann N)
- Den Raspi neu starten
- Kommando: sudo reboot
- Hinweis: Den Raspi nie einfach vom Strom trennen, vorher sauber ausschalten mit sudo shutdown.
Testen des Webservers von FreeSol
- FreeSol sollte nun erreichbar sein, indem man in einem Browser im heimischen Netz die IP-Adresse des Raspi eingibt. Es wird eine leere Grundleiste angezeigt in der Art wie:
Anschluss des S0-Ausgangs an den Raspi
- fehlt noch ...
Einbindung in andere Visualisierungssoftware
Sonstiges
- Eine Einführung in Python, dort besonders auch ein kostenloser Python2-Online Kurs bei codecademy.