Migrate StromMonitor

epvpn
Robert Jacob 2 years ago
parent e2fe2b8bcc
commit ac43db7e13
  1. 84
      content/projekt/StromMonitor/index.md
  2. 0
      content/projekt/StromMonitor/liste.png
  3. 0
      content/projekt/StromMonitor/material1.png
  4. 0
      content/projekt/StromMonitor/power24.png
  5. 0
      content/projekt/StromMonitor/power7d.png
  6. 0
      content/projekt/StromMonitor/s0.png
  7. 0
      content/projekt/StromMonitor/schaltplan-testaufbau2.gif
  8. 0
      content/projekt/StromMonitor/schaltplan.gif
  9. 0
      content/projekt/StromMonitor/testaufbau.png
  10. 0
      content/projekt/StromMonitor/zaehler.png

@ -5,10 +5,9 @@ status: in Vorbereitung
difficulty: Einfach bis Medium, je nach Vorkenntnissen
time: 4 Stunden bis 4 Wochen ;-)
date: 2017-03-19
image: /images/Strom-Monitor-s0.png
image: s0.png
---
## Ziel und Funktionsweise
Bau eines Netzwerkfähigen lokalen StromMonitors, der via
@ -24,7 +23,7 @@ für den genaueren Überblick muss man loggen...
Klassisch geht das per Papier und Schreibzeug, aber man verliert
schnell die Lust.
{{< fluid_img alt="Liste von Hand" src="/images/Strom-Monitor-liste.png" >}}
{{< fluid_img alt="Liste von Hand" src="liste.png" >}}
Alternative:
Elektronisch
@ -33,12 +32,12 @@ Wie geht das?
Das hängt vom Stromzähler ab, der vor Ort ist. In Konstanz dieser:
{{< fluid_img alt="Konstanzer Stromzaehler" src="/images/Strom-Monitor-zaehler.png" >}}
{{< fluid_img alt="Konstanzer Stromzaehler" src="zaehler.png" >}}
Der hat zwar keine bidirektionale Schnittstelle mit Abfragemöglichkeit,
aber eine kleine unscheinbare Öffnung,
{{< fluid_img alt="IR-LED der S0-Schnittstelle" src="/images/Strom-Monitor-s0.png" >}}
{{< fluid_img alt="IR-LED der S0-Schnittstelle" src="s0.png" >}}
Hier verbirgt sich eine IR-LED, die also 10000 mal blinkt,
bis 1 KWh bezogen wurde,
@ -55,33 +54,31 @@ Let's test
- Spannungsquelle 5-6 Volt (1 x 1,5 V Batterien, Netzteil, o. ä.)
- zum Verbinden oder aufbauen Kabel, Krokoklemmen, Breadboard,
(was Ihr so nehmt)
- Pappe, Kabelbinder, Tesafilm, etc zum Fixieren
{{< fluid_img alt="Schaltplan Testaufbau" src="/images/Strom-Monitor-schaltplan-testaufbau2.gif" >}}
- Pappe, Kabelbinder, Tesafilm, etc zum Fixieren
{{< fluid_img alt="Schaltplan Testaufbau" src="schaltplan-testaufbau2.gif" >}}
Beim Verbinden auf die Polarität achten
- LED langes Bein plus
- IR-Transistor Langes Bein minus
- LED langes Bein plus
- IR-Transistor Langes Bein minus
IR-Transistor in Reihe mit dem Vorwiderstand und der LED an die Spannungsquelle hängen.
{{< fluid_img alt="Testaufbau mit 5V Spannung IR-Transistor und LED" src="/images/Strom-Monitor-testaufbau.png" >}}
{{< fluid_img alt="Testaufbau mit 5V Spannung IR-Transistor und LED" src="testaufbau.png" >}}
Alles Richtig? Dann muss die LED (Verbrauch vorausgesetzt) blinken ...
## zusätzliches Material für den StromMonitor
{{< fluid_img alt="Raspberry Pi" src="/images/Strom-Monitor-material1.png" >}}
{{< fluid_img alt="Raspberry Pi" src="material1.png" >}}
- 1 Raspberry PI oder ähnliches Embedded System, egal welches,
(Hauptsache, Ihr könnt ein OS aufsetzen und kommt an die GPIOs,
bei mir lag ein PI B + rum) (zwischen 6 und 36 Euro Neuwert)
- SD-Karte ( 4-10 Euro Neuwert)
- Netzteil ( ca 8 Euro Neuwert)
- LAN/WLAN-Anschluss (0 - 8 Euro, je nach Modell uind lokalen Möglichkeiten)
- 1 Raspberry PI oder ähnliches Embedded System, egal welches,
(Hauptsache, Ihr könnt ein OS aufsetzen und kommt an die GPIOs,
bei mir lag ein PI B + rum) (zwischen 6 und 36 Euro Neuwert)
- SD-Karte ( 4-10 Euro Neuwert)
- Netzteil ( ca 8 Euro Neuwert)
- LAN/WLAN-Anschluss (0 - 8 Euro, je nach Modell uind lokalen Möglichkeiten)
## Vorbereitung
@ -91,7 +88,7 @@ wer steht schon gern im Keller mit Monitor und Keyboard).
## Verkabelung
{{< fluid_img alt="Schaltplan Strom-Monitor" src="/images/Strom-Monitor-schaltplan.gif" >}}
{{< fluid_img alt="Schaltplan Strom-Monitor" src="schaltplan.gif" >}}
Damit der PI auch die Daten empfangen kann, hängen wir den IR-Transistor
an GPIO 23/ PIN 16 und verbinden ihn mit auf der anderen Seite mit
@ -101,16 +98,16 @@ Damit wir uns wohlfühlen und eine optische Rückmeldung im Keller haben,
kommt zwischen Pin 1 (3.3V) und PIN 11 /GPIO 17 die LED mit dem Vorwiderstand von eben.
## Software
ich habe die Software in 2 Häppchen zerlegt.
Ich habe die Software in 2 Häppchen zerlegt.
- Strom.py arbeitet kontinuierlich. Zum einen wird ein Thread
angestossen, der die LED als Rückmeldung kurz triggert,
zum anderen wird eine Logzeile mit
Standard-Linux Zeitstempel und den Sensor-Datenstrom
(Anzahl der Impulse/ Minute) jede Minute in die Datei
(Anzahl der Impulse/ Minute) jede Minute in die Datei
imp_min.txt geschrieben.
### Quelltext:
```python
@ -119,9 +116,9 @@ ich habe die Software in 2 Häppchen zerlegt.
#
# strom.py
#
# StromMonitor Anzeige, konkret:
# StromMonitor Anzeige, konkret:
# SENSOR in imp/min wandeln
#
#
# Author: Kresse
#
#
@ -278,7 +275,6 @@ diese wird ebenfalls minütlich beschickt
### Quelltext:
```python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
@ -371,23 +367,20 @@ for x in range(1,len(liste_imp)):
# print x # Anzahl der Datensätze
print time.ctime(liste_zeit[x-1])[0:16],": "," {p:8.3F} KWh ".format(p=(imp_d/10000.0))
print "*** LETZTER Tag nicht vollstaendig! ***"
```
```
Zum Schluss wird das ganze per Bash zur Ausgabe gedrängt ;)
Zum einen werden zwei RRDTOOL Graphiken erzeugt:
Impulse/min über 24 h
Mittlere Impulse/Min über 7 Tage.
Als Drittes gibt es eine Textausgabe mit der KWh-Abnahme pro Tag.
Als lokale "Veröffentlichungsvariante" habe ich folgendes installiert:
Die Dateien werden dann auf ein eingehängtes CIFS-Verzeichnis
kopiert, das lokal als Web-Server fungiert.
Zum Schluss wird das ganze per Bash zur Ausgabe gedrängt ;)
Zum einen werden zwei RRDTOOL Graphiken erzeugt:
Impulse/min über 24 h
Mittlere Impulse/Min über 7 Tage.
Als Drittes gibt es eine Textausgabe mit der KWh-Abnahme pro Tag.
Das folgende Bash-Skript wird dazu per cronjob
alle 3 Stunden angestartet,
Als lokale "Veröffentlichungsvariante" habe ich folgendes installiert:
Die Dateien werden dann auf ein eingehängtes CIFS-Verzeichnis
kopiert, das lokal als Web-Server fungiert.
Das folgende Bash-Skript wird dazu per cronjob
alle 3 Stunden angestartet,
### Quelltext:
@ -401,7 +394,6 @@ python impleser.py >ausgabe.txt
cp ausgabe.txt REMOTEWEB/STROM
```
## Darstellung
Damit kann ich im Hausnetz die Dateien dann problemlos per Weblink
@ -409,15 +401,13 @@ abrufen.
#### Als Graphiken:
{{< fluid_img alt="Wochenverteilung" src="/images/Strom-Monitor-power7d.png" >}}
{{< fluid_img alt="Tagesprofil" src="/images/Strom-Monitor-power24.png" >}}
{{< fluid_img alt="Wochenverteilung" src="power7d.png" >}}
{{< fluid_img alt="Tagesprofil" src="power24.png" >}}
#### Und als Text:
```
```nohighlight
Gesamtimpulse : 4282664
Anzahl der Messungen : 61776
Minimum Imp/min : 14
@ -432,8 +422,6 @@ Tue Feb 7 : 9.481 KWh
...
```
## Was bringt das?
Mir hat das ganze beim Aufsetzen viel zum Nachdenken/Nachschlagen/Probieren gegeben.

Before

Width:  |  Height:  |  Size: 515 KiB

After

Width:  |  Height:  |  Size: 515 KiB

Before

Width:  |  Height:  |  Size: 425 KiB

After

Width:  |  Height:  |  Size: 425 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Before

Width:  |  Height:  |  Size: 388 KiB

After

Width:  |  Height:  |  Size: 388 KiB

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before

Width:  |  Height:  |  Size: 577 KiB

After

Width:  |  Height:  |  Size: 577 KiB

Before

Width:  |  Height:  |  Size: 970 KiB

After

Width:  |  Height:  |  Size: 970 KiB

Loading…
Cancel
Save