hardware:controllers:ferrariszaehler_lesekopf_rpi_gpio
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
hardware:controllers:ferrariszaehler_lesekopf_rpi_gpio [2014/09/11 12:22] – ronny_w | hardware:controllers:ferrariszaehler_lesekopf_rpi_gpio [2019/08/20 21:15] (aktuell) – Entfernung E-Mailadresse / Kontakt stromsammler10 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
======Ferrariszähler Lesekopf für Raspberry Pi====== | ======Ferrariszähler Lesekopf für Raspberry Pi====== | ||
- | <note important> | + | {{ : |
+ | In vielen Haushalten wird ein Ferrariszähler vom Energieversorger eingesetzt. Auch bei Photovoltaikanlagen wurde / wird dieser als Einspeise- oder Summenzähler verbaut. Es sind zum Teil zwar auch S0-Ausgänge an den alten Ferrariszählern vorhanden, welche aber durch den Energieversorger verplombt wurden. Für einen Anschluss am Ferrariszähler S0-Ausgang muss daher ein Techniker anrücken. (im Raum SHK schlägt dies mit 180€ zu Buche). | ||
- | In vielen Haushalten wird eine Ferrariszähler | + | Mit dem Ferrariszähler-Lesekopf für Raspberry Pi kann die Drehscheibe abgetastet und die Anzahl der Durchläufe der Rot- Markierung ermittelt werden. Somit kann der Techniker-Einsatz gespart werden. |
- | + | Ein Test System ist [[http:// | |
- | Mit dem Ferrariszähler Lesekopf für Raspberry Pi kann die Drehscheibe abgetastet und die Anzahl der Durchläufe der Rot Markierung ermittelt werden. Somit ist kein Energieversorgertecniker nötig. | + | |
- | + | ||
- | Eine Test System ist [[http:// | + | |
===== Features ===== | ===== Features ===== | ||
- | * eine Leuchtdiodenanzeige um den Lesekopf richtig | + | * eine Leuchtdiodenanzeige, um den Lesekopf richtig |
* Potenziometer zur Justage der Empfindlichkeit des Lesekopfs | * Potenziometer zur Justage der Empfindlichkeit des Lesekopfs | ||
- | * Anschluss am GPIO Port des Raspberry | + | * Anschluss |
- | * Erfassung bis zu 7 Stück | + | * Erfassung bis zu 8 S0- Kanäle |
- | * durch Doppelseitiges | + | * durch doppelseitiges |
+ | |||
+ | Die Java- Aplikation kann auch für die Erfassung von LED- / S0-Zähler Impulsen verwendet werden. -> Doku folgt! | ||
===== Stromlaufplan ===== | ===== Stromlaufplan ===== | ||
- | Die Grundschaltung wurde von [[http:// | + | Die Grundschaltung wurde von [[http:// |
+ | |||
+ | {{ : | ||
===== Bestückungsplan ===== | ===== Bestückungsplan ===== | ||
- | Durch die Verwendung der trationellen | + | Durch die Verwendung der traditionellen |
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | |||
+ | Hier ist die Target3001 Datei hinterlegt, welche nur mit der kostenlosen Target Version von Conrad zu verwenden ist. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
===== Stückliste ===== | ===== Stückliste ===== | ||
- | ===== GPIO Anschluss ===== | ||
- | ===== Software -> Anbindung an Volkszählermiddleware ===== | ||
- | Zur Datenerfassung | + | ^ **Position** |
+ | | 1 | R1 | Metallschichtwiderstand 0,25W 1% 1Ok (bei Abnahme 100 Stück) | ||
+ | | 2 | R2 / R4 | Metallschichtwiderstand 0,25W 1% 180r (bei Abnahme 100 Stück ) | 2 | W 76744 | 0, | ||
+ | | 3 | R3 | Metallschichtwiderstand 0,25W 1% 22k (bei Abnahme 100 Stück) | ||
+ | | 4 | C1 | Elko axial 1 µ F 35V | 1 | W45777 | ||
+ | | 5 | R5 | Spindeltrimmer 25k (Einsteller Oben) | 1 | W5 1657 | 1, | ||
+ | | 6 | D1 | LED 3mm Low -Current Rot | 1 | Q13006 | ||
+ | | 7 | X1 | Opto-Reflexkoppler CNY 70 | 1 | Q61519 | ||
+ | | 8 | IC2 | Optokoppler Vishay | ||
+ | | 9 | IC1 | Operationsverstärker | ||
+ | | 10 | - | Modul-Gehäuse ABS Schwarz 54 x 37 x 21 Strapubox | ||
+ | | 12 | - | Flachband -Telefonleitung 4 x 0.09 mm x 1m | 2 | X70890 | ||
+ | | 15 | - | RICHCO - PST-4-01 - DRUCKABSTANDSHALTER TEARDROP (Packung\\ mit 25 Stück ) | 4 | - | | ||
+ | | ** ** **Zwischensumme**|||||7, | ||
+ | | 16 | | ||
+ | | 17 | | Pfostenstecke für GPIO Port | | | | | | ||
+ | | 18 | | Klebeband | ||
+ | | Stand : 11 .09 .20 14 || | ||
+ | |||
+ | Im " | ||
+ | |||
+ | ===== Software -> Anbindung an Volkszählermiddleware mit Java Applikation===== | ||
+ | |||
+ | Zur Datenerfassung | ||
+ | |||
+ | Auf dem Raspberry muss die Java JRE installiert sein: | ||
+ | <code bash> | ||
+ | |||
+ | ---- | ||
+ | \\ | ||
+ | Für die Installation von [[http:// | ||
+ | <code bash> | ||
+ | <code bash> | ||
+ | |||
+ | ---- | ||
+ | \\ | ||
+ | Für Debugging-Zwecke wird [[http:// | ||
- | Für die Installation von pi4j sind folgende Schritte nötig: | + | < |
- | < | + | < |
- | < | + | <code bash>mv apache-log4j-2.0.2-bin/ |
- | Für Debuggin Zwecke benutze ich [[http:// | + | ---- |
+ | \\ | ||
+ | Der Java s0_logger: | ||
- | < | + | {{: |
- | < | + | < |
- | < | + | <code bash>cd /opt/s0_logger</ |
- | < | + | < |
- | < | + | < |
+ | < | ||
</ | </ | ||
- | Es müssen noch zwei Konfigurationsdateien im Verzeichniss "/opt/pi4j/lib/" angelegt werden: | + | ---- |
+ | \\ | ||
+ | Es müssen noch zwei Konfigurationsdateien im Verzeichniss "/opt/s0_logger/" angelegt werden: | ||
+ | |||
+ | {{: | ||
- | config.properties | ||
< | < | ||
## SERVER eigener Volkszaehler Remote-Server !nicht localhost! | ## SERVER eigener Volkszaehler Remote-Server !nicht localhost! | ||
Zeile 69: | Zeile 121: | ||
## Hier sind die auszulesenden GPIO Ports zu aktivieren; der Port 0-7, aktiv 1 / inaktiv 0 | ## Hier sind die auszulesenden GPIO Ports zu aktivieren; der Port 0-7, aktiv 1 / inaktiv 0 | ||
gpio.ports=1, | gpio.ports=1, | ||
- | |||
- | ## S0 Bezeichungen | ||
- | s0.name=Verbraucher1, | ||
##Hier sind die Impulse/kWh ein zu tragen | ##Hier sind die Impulse/kWh ein zu tragen | ||
s0.impulse=500, | s0.impulse=500, | ||
+ | |||
+ | #maximale Leistungen auf den Kanälen für Plausibilisierung in kW | ||
+ | s0.P_max=5.0, | ||
## S0 Volkszaehler UUID: Erzeugt über das Frontend des VZ, Typ S0-Impulse (z.B. Eklektrische Energie (S0-Impulse)) | ## S0 Volkszaehler UUID: Erzeugt über das Frontend des VZ, Typ S0-Impulse (z.B. Eklektrische Energie (S0-Impulse)) | ||
Zeile 86: | Zeile 138: | ||
s0.duration=100 | s0.duration=100 | ||
</ | </ | ||
+ | \\ | ||
+ | {{: | ||
+ | log4j2.xml}} | ||
+ | <code xml> | ||
+ | <?xml version=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
- | log4j.properties | + | |
- | <code> | + | < |
- | # Der Root-Logger | + | < |
- | log4j.rootLogger=ERROR, file | + | < |
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
- | # Konfiguration der Log-Datei | + | <Console name=" |
- | log4j.appender.file=org.apache.log4j.RollingFileAppender | + | < |
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | <Logger name=" | ||
+ | <appender-ref ref="file-log" level=" | ||
+ | </ | ||
+ | <Root level=" | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
- | ## Ziel und Name ggf. anpassen! | + | <note tip> |
- | log4j.appender.file.File=/var/log/ | + | |
- | log4j.appender.file.MaxFileSize=300KB | + | ---- |
+ | \\ | ||
+ | Zum automatischen Starten kann folgendes Script verwendet und über den Cronjob aufgerufen werden:\\ | ||
+ | \\ | ||
+ | {{: | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | S0=$(pgrep -f " | ||
- | # Eine Backup-Datei behalten | + | if [ $S0 == inaktiv ]; |
- | log4j.appender.file.MaxBackupIndex=20 | + | |
- | + | java -Xmx64m -Djava.awt.headless=true -cp .:S0.jar: | |
- | log4j.appender.file.layout=org.apache.log4j.PatternLayout | + | fi |
- | log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %c - %m%n | + | |
</ | </ | ||
- | Hier gibt es die Kombilierte Java Routine zum Abfragen der GPIO Ports. Dies muss auch im Verzeichnis | + | <note important> |
+ | Also Startscript, | ||
+ | </ | ||
- | Zum automatischen starten kann folgender Script verwendet und über den Cronjob aufgerufen werden: | + | Ausführbar machen: |
- | < | + | < |
- | # | + | |
- | S0=$(pgrep -f "S0.jar" > /dev/null 2>&1 && echo " | + | |
- | if [ $S0 == inaktiv ]; | + | crontab Beispiel |
- | then | + | < |
- | cd /opt/pi4j/lib/ | + | @reboot root (cd /Verzeichniss/wo/start/Script_liegt && |
- | java -Xmx64m -Djava.awt.headless=true -classpath | + | |
- | fi | + | |
</ | </ | ||
+ | ===== GPIO Anschluss ===== | ||
+ | Der Ferrariszähler Lesekopf benötig eine Versorgungsspannung von 5V. Daher ist es nötig, den RJ12 Buchsenkontakt 2 mit dem PIN 2 der GPIO-Leiste zu Verbinden (+5V). Der RJ12 Buchsenkontakt 4 muss mit dem PIN 6 der GPIO-Leiste verbunden werden (Ground). | ||
+ | Die CNY17 Ausgänge, RJ12 Buchsenkontakte 3 und 5, sind mit dem gewünschten GPIO-Port zu Verbinden. Wobei zu beachten ist, dass der RJ12 Buchsenkontakt 3 an das +3V Signal anzuschliesen ist und der RJ12 Buchsenkontakt 5 an einen der folgenden GPIO-Ports (=Ground): | ||
- | ===== Bilder ===== | + | {{: |
+ | ^ GPIO Header | ||
+ | | 11 | 1 | | ||
+ | | 12 | 2 | | ||
+ | | 13 | 3 | | ||
+ | | 15 | 4 | | ||
+ | | 16 | 5 | | ||
+ | | 18 | 6 | | ||
+ | | 22 | 7 | | ||
+ | | 7 | 8 | | ||
+ | {{: | ||
+ | ^ RJ12 Buchse | ||
+ | | 1 | - | - | | ||
+ | | 2 | +5V (2 / 4) | gelb | | ||
+ | | 3 | +3V (1 / 17) | grün | | ||
+ | | 4 | Ground (6 / 9 /\\ 14 / 20 / 25) | rot | | ||
+ | | 5 | GPIO Kanal\\ s0_logger | ||
+ | | 6 | - | - | | ||
+ | {{: | ||
+ | ===== Montage am Zähler ===== | ||
+ | < | ||
+ | |||
+ | ===== Bilder ===== | ||
+ | {{: | ||
+ | {{: | ||
+ | \\ | ||
+ | {{: | ||
+ | {{: | ||
+ | \\ | ||
+ | {{: |
hardware/controllers/ferrariszaehler_lesekopf_rpi_gpio.txt · Zuletzt geändert: 2019/08/20 21:15 von stromsammler10