FreeSol Raspi: Unterschied zwischen den Versionen
Aus FreeSol-Wiki
Zeile 105: | Zeile 105: | ||
*** Anleitung zum Einrichten eines Raspi: http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_Install.html | *** Anleitung zum Einrichten eines Raspi: http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_Install.html | ||
== Installation der FreeSol-Software == | === Installation der FreeSol-Software === | ||
* '''Verzeichnis für die Software auf dem Raspi anlegen''' | * '''Verzeichnis für die Software auf dem Raspi anlegen''' | ||
** Kommando: '''mkdir FreeSol''' | ** Kommando: '''mkdir FreeSol''' |
Version vom 2. Mai 2019, 06:47 Uhr
Ü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) (In meinem Modell: innere Pinreihe, 8. Pin vom Boardrand, schwarzes Kabel im Bild unten)
- 3V3 (In meinem Modell: innere Pinreihe, 9. Pin vom Boardrand, weißes Kabel im Bild unten)
- 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://www.raspberrypi.org/documentation/usage/gpio/
- Soweit benötigt, GPIO Zero installieren mit
- sudo apt install python3-gpiozero
- Das Pinout am Raspi kann dann mit dem Komando pinout angezeigt werden.
Installation der Software
Installation des Raspi-Betriebssystems als Schritt-für-Schritt-Anleitung
- Raspian Image downloaden: https://www.raspberrypi.org/downloads/raspbian/
- Als Version genügt Raspian Stretch Lite auswählen und als ZIP-File laden, Größe sind 352 MB. Weitere benötigte Pakete sind dann bei Bedarf einfach nachinstallierbar.
- Man kann auch "Raspian Stretch with desktop and recommended software" nehmen, das ist umfangreicher, Größe knapp 2 GB. Diese Version enthält auch weitere Software, wenn man etwas mit dem Raspi spielen will.
- getestet mit Version: April 2019, Release date: 2019-04-08, Kernel version: 4.14
- 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 Raspi Strech Lite Images für das Raspi Betriebssystem muss ein zusätzliches Paket 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
- Die beiden Anschlusskabel müssen nun mit den beiden Ausgangsklemmen des S0-Zählers verbunden werden
- Mit dem Programm S0_Solar_Test.py kann ausprobiert werden, ob die S0-Signale richtig im Raspi ankommen.
- Dazu das Programm herunterladen und mit FileZilla per FTP auf den Raspi ins Verzeichnis FreeSol hochladen.
- Nun das Programm auf dem Raspi starten (nach Verbinden mit mit Putty) mit dem Kommando
- sudo python3 FreeSol/S0_Solar_Test.py
- Der S0-Anschluss funktioniert korrekt, wenn beim Blinken des S0-Zählers immer die Meldung Impuls empfangen im Terminal auftaucht. Dazu muss natürlich die Sonne scheinen. :-)
- Testweise kann man auch einfach die beiden Pinkabel kurz miteinandern verbinden, was jeweils einen Impuls auslöst.
- Das Programm kann mit Ctrl-C wieder beendet werden.
Einbindung in andere Visualisierungssoftware
Sonstiges
- Eine Einführung in Python, dort besonders auch ein kostenloser Python2-Online Kurs bei codecademy.