Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:controllers:ferrariszaehler_lesekopf_rpi_gpio

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hardware:controllers:ferrariszaehler_lesekopf_rpi_gpio [2014/09/12 16:57] ronny_whardware: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 Erstellung !!</note> 
 {{ :hardware:controllers:ferraris_rpi:alte_ferrariszaehler.jpg?nolink&200|}} {{ :hardware:controllers:ferraris_rpi:alte_ferrariszaehler.jpg?nolink&200|}}
-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 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).
  
-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.+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://volkszaehler.solarautonomie.de/frontend/?uuid=30d92400-a7c4-11e3-8460-e1409057da36|hier]] zu finden (Photovoltaik Summenzähler). Ein Test System ist [[http://volkszaehler.solarautonomie.de/frontend/?uuid=30d92400-a7c4-11e3-8460-e1409057da36|hier]] zu finden (Photovoltaik Summenzähler).
Zeile 13: Zeile 12:
   * Potenziometer zur Justage der Empfindlichkeit des Lesekopfs   * Potenziometer zur Justage der Empfindlichkeit des Lesekopfs
   * Anschluss direkt am GPIO Port des Raspberry   * Anschluss direkt am GPIO Port des Raspberry
-  * Erfassung bis zu S0- Kanäle über den GPIO Port möglich+  * Erfassung bis zu S0- Kanäle über den GPIO Port möglich
   * durch doppelseitiges Klebeband jederzeit demontierbar   * durch doppelseitiges Klebeband jederzeit demontierbar
  
-Die Java- Aplikation kann auch für die Erfassung von LED Zähler Impulsen verwendet werden. -> Doku Folgt!+Die Java- Aplikation kann auch für die Erfassung von LED- / S0-Zähler Impulsen verwendet werden. -> Doku folgt!
  
 ===== Stromlaufplan ===== ===== Stromlaufplan =====
Zeile 26: Zeile 25:
 ===== Bestückungsplan ===== ===== Bestückungsplan =====
  
-Durch die Verwendung der traditionellen HMD Löttechnik kann die Leiterplattenbestückung ohne spezielle Werkzeug erfolgen.+Durch die Verwendung der traditionellen HMD Löttechnik kann die Leiterplattenbestückung ohne spezielles Werkzeug erfolgen.
  
 {{:hardware:controllers:ferraris_rpi:leiterplatte_ferraris_rpi.jpg?200|}}{{:hardware:controllers:ferraris_rpi:leiterplatte_bestueckt_oben.jpg?200|}}{{:hardware:controllers:ferraris_rpi:leiterplatte_bestueckt_unten.jpg?200|}} {{:hardware:controllers:ferraris_rpi:leiterplatte_ferraris_rpi.jpg?200|}}{{:hardware:controllers:ferraris_rpi:leiterplatte_bestueckt_oben.jpg?200|}}{{:hardware:controllers:ferraris_rpi:leiterplatte_bestueckt_unten.jpg?200|}}
Zeile 32: Zeile 31:
 <note>Ursprünglich vorgesehen war eine RJ12 Stecker und eine RJ12 6P6C Buchse. Aus Kostengründen und der Montagevereinfachung wurde dies jedoch beim fertigen Lesekopf weggelassen. Dies ist aber weiterhin auf der Platine vorgesehen.</note> <note>Ursprünglich vorgesehen war eine RJ12 Stecker und eine RJ12 6P6C Buchse. Aus Kostengründen und der Montagevereinfachung wurde dies jedoch beim fertigen Lesekopf weggelassen. Dies ist aber weiterhin auf der Platine vorgesehen.</note>
  
-Hier ist die Target3001 Datei hinterlegt welche nur mit der kostenlosen Target Version von Conrad zu verwenden ist.+Hier ist die Target3001 Datei hinterlegtwelche nur mit der kostenlosen Target Version von Conrad zu verwenden ist.
  
 {{:hardware:controllers:ferraris_rpi:ferraris_zaehler_sensor_v02.t3000.tar.gz|}} {{:hardware:controllers:ferraris_rpi:ferraris_zaehler_sensor_v02.t3000.tar.gz|}}
Zeile 40: Zeile 39:
 ===== Stückliste ===== ===== Stückliste =====
  
-{{ :hardware:controllers:ferraris_rpi:stueckliste_ferraris_rpi.png?800 |}}+^  **Position**  ^  **Schalplanbezeichnung**  ^  **Beschreibung**  ^  **Stück**  ^  **Völkner  Best Nr.**  ^  **Preis**  ^  **Farnell  Best Nr.**  ^  **Preis** 
 +|  1  |  R1  |  Metallschichtwiderstand 0,25W 1% 1Ok (bei Abnahme 100 Stück)  |  1  |  W76567  |  0,03€  |  2329855  |  0,02€ 
 +|  2  |  R2 / R4  |  Metallschichtwiderstand 0,25W 1% 180r (bei Abnahme 100 Stück )  |  2  |  W 76744  |  0,03€  |  2329818  |  0,02€ 
 +|  3  |  R3  |  Metallschichtwiderstand 0,25W 1% 22k (bei Abnahme 100 Stück)  |  1  |  W76256  |  0,02€  |  2329910  |  0,02  | 
 +|  4  |  C1  |  Elko  axial 1 µ F 35V  |  1  |  W45777  |  0,43€  |  1165430  |  0,77€ 
 +|  5  |  R5  |  Spindeltrimmer 25k  (Einsteller Oben)  |  1  |  W5 1657  |  1,44€  |  2329327  |  2,31€ 
 +|  6  |  D1  |  LED 3mm   Low -Current Rot  |  1  |  Q13006  |  0,19€  |  1142512  |  0,31€ 
 +|  7  |  X1  |  Opto-Reflexkoppler CNY 70  |  1  |  Q61519  |  1,23€  |  1470063  |  1,23€ 
 +|  8  |  IC2  |  Optokoppler Vishay   CNY 17-1 DIP 6 Ausführung Phototransistor/Single  |  1  |  Q17589  |  0,5€  |  1852714  |  0,21€ 
 +|  9  |  IC1  |  Operationsverstärker  Texas Instruments TLC271CP\\ GehäuseartDIP-8 Ausfü hru ng  |  1  |  Q39651  |  0,86€  |  1103011  |  0,84€ 
 +|  10  |  -  |  Modul-Gehäuse ABS Schwarz 54  x 37  x 21 Strapubox  |  1  |  S55511  |  1,76€  |         | 
 +|  12  |  -  |  Flachband -Telefonleitung 4 x 0.09 mm  x 1m  |  2  |  X70890  |  0,84€ |  1202608  |  0,65€ 
 +|  15  |  -  |  RICHCO - PST-4-01 - DRUCKABSTANDSHALTER TEARDROP (Packung\\ mit 25 Stück )  |  4  |  -  |      1675883  |  0,26€ 
 +|  ** **  **Zwischensumme**|||||7,33€|    |  6,64€     
 +|  16  |      Grundplatine (Preis bei Mindestabnahmemenge Conrad Leiterplattenservice 10 Stück)  |          11,00€  |      11,00€ 
 +|  17  | |  Pfostenstecke für GPIO Port  | | | | | 
 +|  18  | |  Klebeband  | | | | |  
 +|  Stand                  11 .09 .20 14  ||   **Endsumme**|||  18,33€  |      17,64€  |
  
-Im "Modul-Gehäuse ABS" müssen Ausparungen für den CNY70 (Vorderseite), die LED, dem Spindeltrimmer und das Flachbandkabel vorgesehen werden.+Im "Modul-Gehäuse ABS" müssen Ausparungen für den CNY70 (Vorderseite), die LED, den Spindeltrimmer und das Flachbandkabel vorgesehen werden.
  
-<note>Wer das Gehäuse und die Platine nicht selbst fertigen möchte, kann sich an ... wenden.</note>+===== Software -Anbindung an Volkszählermiddleware mit Java Applikation=====
  
-<note important>ErrinnerungStückliste muss noch um Pfostenstecker für GPIO Port ergänzt werden und das Klebeband! :!:</note>+Zur Datenerfassung wird eine Java-Applikation eingesetzt, die mit Hilfe der [[http://pi4j.com/|pi4j]] Bibliotheken den GPIO Port ereignisgesteuert überwacht, die Impulse über ein konfigurierbares Zeitintervall aufsummiert und an den lokalen VZ-Server sowie an einen externen Server überträgt.
  
-===== Software -> Anbindung an Volkszählermiddleware ===== +Auf dem Raspberry muss die Java JRE installiert sein: 
- +<code bash>apt-get update && apt-get install openjdk-7-jre</code>
-Zur Datenerfassung wird eine Java- Applikation, die mit Hilfe der [[http://pi4j.com/|pi4j]] Bibliotheken den GPIO Port ereignisgesteuert überwacht, die Impulse über ein konfigurierbares Zeitintervall aufsummiert und an den lokalen VZ-Server sowie an einen externen Server überträgt. +
- +
-Auf dem Rapberry muss die Java JRE installiert sein: +
-<code>apt-get update && apt-get install openjdk-7-jre</code>+
  
 ---- ----
 +\\ 
 Für die Installation von [[http://pi4j.com/|pi4j]] sind folgende Schritte nötig: Für die Installation von [[http://pi4j.com/|pi4j]] sind folgende Schritte nötig:
-<code>wget http://pi4j.googlecode.com/files/pi4j-0.0.5.deb</code> +<code bash>wget http://pi4j.googlecode.com/files/pi4j-0.0.5.deb</code> 
-<code>sudo dpkg -i pi4j-0.0.5.deb</code>+<code bash>sudo dpkg -i pi4j-0.0.5.deb</code>
  
 ---- ----
 +\\ 
 +Für Debugging-Zwecke wird [[http://logging.apache.org/log4j/|log4j]] benutzt. Dies ist im Java s0_logger implementiert und muss daher mit installiert werden:
  
-Für Debuggin- Zwecke wird [[http://logging.apache.org/log4j/|log4j]] benutzt. Dies ist zum Debugging im Java s0_logger implementiert und muss daher mit installiert werden: +<code bash>wget http://mirror.derwebwolf.net/apache/logging/log4j/2.0.2/apache-log4j-2.0.2-bin.tar.gz</code> 
- +<code bash>tar -xzf apache-log4j-2.0.2-bin.tar.gz && rm apache-log4j-2.0.2-bin.tar.gz</code> 
-<code>wget http://mirror.derwebwolf.net/apache/logging/log4j/2.0.2/apache-log4j-2.0.2-bin.tar.gz</code> +<code bash>mv apache-log4j-2.0.2-bin/ /opt/log4j</code>
-<code>tar -xzf apache-log4j-2.0.2-bin.tar.gz && rm apache-log4j-2.0.2-bin.tar.gz</code> +
-<code>mv apache-log4j-2.0.2-bin/ /opt/log4j</code>+
  
 ---- ----
 +\\ 
 Der Java s0_logger: Der Java s0_logger:
  
-{{:hardware:controllers:ferraris_rpi:s0.jar.zip|Hier}} gibt es die compilierte Java Routine zum Abfragen der GPIO Ports. +{{:hardware:controllers:ferraris_rpi:s0.jar.zip|Hier (v2.9.1 22.09.14)}} gibt es die compilierte Java Routine zum Abfragen der GPIO Ports. 
-<code>mkdir /opt/s0_logger</code> +<code bash>mkdir /opt/s0_logger</code> 
-<code>cd /opt/s0_logger</code> +<code bash>cd /opt/s0_logger</code> 
-<code>wget http://wiki.volkszaehler.org/_media/hardware/controllers/ferraris_rpi/s0.jar.zip</code> +<code bash>wget http://wiki.volkszaehler.org/_media/hardware/controllers/ferraris_rpi/s0.jar.zip</code> 
-<code>unzip s0.jar.zip</code> +<code bash>unzip s0.jar.zip</code> 
-<code>ln -s /opt/log4j/log4j-1.2-api-2.0.2.jar /opt/log4j/log4j-api-2.0.2.jar /opt/log4j/log4j-core-2.0.2.jar /opt/pi4j/lib/pi4j-core.jar /opt/s0_logger/+<code bash>ln -s /opt/log4j/log4j-1.2-api-2.0.2.jar /opt/log4j/log4j-api-2.0.2.jar /opt/log4j/log4j-core-2.0.2.jar /opt/pi4j/lib/pi4j-core.jar /opt/s0_logger/
 </code> </code>
  
 ---- ----
 +\\ 
 Es müssen noch zwei Konfigurationsdateien im Verzeichniss "/opt/s0_logger/" angelegt werden: Es müssen noch zwei Konfigurationsdateien im Verzeichniss "/opt/s0_logger/" angelegt werden:
  
 {{:hardware:controllers:ferraris_rpi:config.properties.zip|config.properties}} {{:hardware:controllers:ferraris_rpi:config.properties.zip|config.properties}}
 +
 <code> <code>
 ## SERVER eigener Volkszaehler Remote-Server !nicht localhost! ## SERVER eigener Volkszaehler Remote-Server !nicht localhost!
Zeile 111: Zeile 124:
 ##Hier sind die Impulse/kWh ein zu tragen ##Hier sind die Impulse/kWh ein zu tragen
 s0.impulse=500,1000,1200,300,700,1500,900 s0.impulse=500,1000,1200,300,700,1500,900
 +
 +#maximale Leistungen auf den Kanälen für Plausibilisierung in kW
 +s0.P_max=5.0,10,10,10,10,10,10,10
  
 ## 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 122: Zeile 138:
 s0.duration=100 s0.duration=100
 </code> </code>
 +\\ 
 {{:hardware:controllers:ferraris_rpi:log4j2.xml.zip| {{:hardware:controllers:ferraris_rpi:log4j2.xml.zip|
-log4j.xml}} +log4j2.xml}} 
-<code>+<code xml>
 <?xml version="1.0" encoding="UTF-8"?>  <?xml version="1.0" encoding="UTF-8"?> 
         <Configuration status="debug">          <Configuration status="debug"> 
Zeile 159: Zeile 175:
 <note tip>Mittels Log-Level „info“ können die Programmschritte im Einzelnen überwacht werden; per „error“ kann das auf Fehlermeldungen reduziert werden.</note> <note tip>Mittels Log-Level „info“ können die Programmschritte im Einzelnen überwacht werden; per „error“ kann das auf Fehlermeldungen reduziert werden.</note>
    
-<note important> 
-Also Startscript, log4j2.xml, config.properties und S0.jar liegen alle im gleichen Verzeichniss (/opt/s0_logger/). 
-</note> 
- 
 ---- ----
- +\\  
-Zum automatischen Starten kann folgendes Script verwendet und über den Cronjob aufgerufen werden: +Zum automatischen Starten kann folgendes Script verwendet und über den Cronjob aufgerufen werden:\\ 
-{{:hardware:controllers:ferraris_rpi:starts0.sh.zip| +\\  
-startS0.sh}} +{{:hardware:controllers:ferraris_rpi:starts0.sh.zip|startS0.sh}} 
-<code>+<code bash>
 #!/bin/bash #!/bin/bash
 S0=$(pgrep -f "S0.jar" > /dev/null 2>&1 && echo "aktiv" || echo "inaktiv") S0=$(pgrep -f "S0.jar" > /dev/null 2>&1 && echo "aktiv" || echo "inaktiv")
  
         if  [ $S0 == inaktiv ];         if  [ $S0 == inaktiv ];
-                then +          then 
- java -Xmx64m -Djava.awt.headless=true -classpath .:classes:/opt/pi4j/lib/'*'  -cp .:S0.jar:pi4j-core.jar:log4j-1.2-api-2.0.2.jar:log4j-api-2.0.2.jar:log4j-core-2.0.2.jar  de.solarautonomie.classS0_Sensor >S0-startup-log 2>&1 & +     java -Xmx64m -Djava.awt.headless=true -cp .:S0.jar:pi4j-core.jar:log4j-1.2-api-2.0.2.jar:log4j-api-2.0.2.jar:log4j-core-2.0.2.jar  de.solarautonomie.classS0_Sensor >S0-startup-log 2>&1 &
         fi         fi
 </code> </code>
 +
 +<note important>
 +Also Startscript, log4j2.xml, config.properties und S0.jar liegen alle im gleichen Verzeichnis (/opt/s0_logger/).
 +</note>
  
 Ausführbar machen: Ausführbar machen:
-<code> chmod a+x startS0.sh</code>+<code bash> chmod a+x startS0.sh</code>
  
 crontab Beispiel crontab Beispiel
Zeile 186: Zeile 202:
 </code> </code>
 ===== GPIO Anschluss ===== ===== GPIO Anschluss =====
-<note important>Hier muss noch eine Beschreibung zum Anschluss an den GPIO Port hin.</note>+ 
 +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): 
 + 
 +{{:hardware:controllers:ferraris_rpi:basic-gpio-layout.png?300 |}} 
 +^  GPIO Header  ^  GPIO Kanal\\ s0_logger 
 +|  11  |  1  | 
 +|  12  |  2  | 
 +|  13  |  3  | 
 +|  15  |  4  | 
 +|  16  |  5  |  
 +|  18  |  6  | 
 +|  22  |  7  | 
 +|  7  |  8  | 
 +{{:hardware:controllers:ferraris_rpi:gpio-pins.jpg?300 |}} 
 +^  RJ12 Buchse  ^  GPIO Header  ^  Ader\\ Flachbandkabel 
 +|  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  |  braun  | 
 +|  6  |  -  |  -  | 
 +{{:hardware:controllers:ferraris_rpi:leiterplatte_rj12_ferraris_rpi.jpg?150 |}} Bild anklicken und vergrößern\\ um PIN Belegung zu sehen! 
 + 
 +===== Montage am Zähler ===== 
 + 
 +<note>Hier muss noch eine Beschreibung rein wie die Montage am Zähler erfolgt!</note> 
 ===== Bilder ===== ===== Bilder =====
-{{:hardware:controllers:ferraris_rpi:ferraris_lesekopf_rpi_01.jpg?nolink&300 |}} {{:hardware:controllers:ferraris_rpi:ferraris_lesekopf_rpi_03.jpg?nolink&300 |}} +{{:hardware:controllers:ferraris_rpi:ferraris_lesekopf_rpi_01.jpg?nolink&300|}} 
-{{:hardware:controllers:ferraris_rpi:ferraris_lesekopf_rpi_02.jpg?nolink&300 |}}  +{{:hardware:controllers:ferraris_rpi:ferraris_lesekopf_rpi_03.jpg?nolink&300|}} 
-{{:hardware:controllers:ferraris_rpi:ferraris_lesekopf_rpi_04.jpg?nolink&300 |}}+\\  
 +{{:hardware:controllers:ferraris_rpi:ferraris_lesekopf_rpi_02.jpg?nolink&300|}} 
 +{{:hardware:controllers:ferraris_rpi:ferraris_lesekopf_rpi_04.jpg?nolink&300|}} 
 +\\  
 +{{:hardware:controllers:ferraris_rpi:lesekopf_an_zaehler.jpg?250|}}
hardware/controllers/ferrariszaehler_lesekopf_rpi_gpio.1410533848.txt.gz · Zuletzt geändert: 2014/09/12 16:57 von ronny_w