Entprellung der Eingangsimpulse

Diverse Impulszähler haben mechanische Kontakte (Durchflußmesser, Reedkontakte), welche prellen können und damit eine Fehlzählung verursachen.Ein Tiefpass (RC-Glied) mit 18 kOhm und 100 nF kommt deshalb zum Einsatz. Der ESP8266 hat Schmitt-Trigger-Eingänge, welche die verrundeten Signalflanken einwandfrei erkennen. Nähere Informationen zum Tiefpass sind in Wikipedia zu finden.

RC-Tiefpass

 

 

Impulse können mit einem Tiefpass R1/C1 entprellt werden. Der Sensor S1 kann ein Reedkontakt oder Open-Collector sein. Über Widerstand R2 (Pullup) werden permanent 3,3V an den Schalter angelegt. Erst wenn der Sensorschalter schließt, fließt ein Strom von 5mA. Der Widerstand des GPIO-Pin ist sehr hochohmig und belastet den Schaltkreis kaum. Die nachfolgenden Messung der Eingansgspannung Uin und Ausgangsspannung Uout sind im Schaltplan gekennzeichnet.

Fallende Flanke am RC-Glied

 

 

 

Der blaue Einschaltimpuls Uin stammt vom sich schliessenden Zählersensor. Das gelbe Signal (Uout) ist der Ausgang des RC-Glieds bei einer fallenden Eingangssignalflanke.

Steigende Signalflanke am C-Glied

 

 

 

Das gelbe Signal ist der Ausgang des RC-Glieds Uout bei einer steigenden Eingangssignalflanke.

Prellender Kontakt

 

 

 

Bei den kurzen Prellimpulsen mechanischer Kontakte ändert sich das Ausgangssignal kaum. Die Preller werden beseitigt, der Arduino zählt nur einen Impuls.

 

SolarTherm Hardware

Das SolarTherm basiert auf dem bewährten Adafruit HUZZAH ESP8266 Modul und beinhaltet einen schnellen RISC-Prozessor und einen WLAN-Chip. Es werden fünf der GPIO-Pins für die Erfassung von S0-Zählerimpulsen verwendet. Jeder Eingang erhält den oben gezeigten Tiefpassfilter, um mechanische Impulsgeber (Reedkontakte, Durchflussmesser) zu entprellen. Jede Level-Änderung an den Eingängen löst im Prozessor einen eigenen Interrupt aus, welcher die zugehörige Zählervariable im ESP8266 erhöht. Zu regelmässigen Zeitpunkten werden die aufsummierten Impulse an OpenHAB per WLAN übertragen.

An einem dreipoligen Steckverbinder K5 können die benötigten fünf Temperatursensoren DS18B20 parallel angeschlossen werden. Der Pullup-Widerstand R6 (4,7kOhm) befindet sich bereits auf dem Board. Es sollten geschirmte Leitung eingesetzt werden, welche kurz zu halten sind (<3m).

 

Schaltplan

Der Steckverbinder K4 dient der Zuführung der Versorgungsspannung aus einem externen Gleichspannungs-Steckernetzteil 5V. Alternativ kann auch ein 12V-Netzteil verwendet werden, dies führt jedoch zu höheren Energieverlusten. Die Kondensatoren C2 und C14 stabilisieren die Versorgungsspannung. Auf dem ESP8266-Breakout ist ein 3,3V-Spannungsregler untergebracht, welcher aus der Eingangsspannung geregelte 3,3V erzeugt, welche für die Peripherie mitverwendet wird. Dort stabilisieren C12 und C3 die 3.3V. Um den EnergieCounter steuern zu können, wird der Taster S6 verwendet. Dieser besteht aus einem Spannungsteiler, um die 3,3V auf die für den Analogeingang 'A' benötigten 1,0V zu reduzieren. Auf Grund der Pin-Knappheit wird der Analogeingang des ESP8266 zur Erkennung des Tastendrucks eingesetzt. Dieser Taster ist unbedingt erforderlich.

Der GPIO-Pin #2 wird an einen dreipoligen Steckverbinder K5 geführt, welche den Anschluß externer Temperatursensoren DS18B20 erlaubt. Diese Schaltung wird beim SolarTherm verwendet, um Temperaturen zu erfassen.

Die fünf Digital-Eingänge bestehen aus einem Pullup-Widerstand R3 mit 1,2kOhm, um die S0-Ausgänge der Zähler zu versorgen. R4 (18kOhm) und C16 (100nF Keramik) bilden einen Tiefpass, welcher Prellimpulse bis 20msec unterdrückt. Fehlte dieses Glied, würden bei jedem S0-Impuls mehrere Interrupts ausgelöst und Fehlzählungen wären die Folge. Der Taster S1 muß nicht bestückt werden, ist aber bei der Softwareentwicklung und Fehlersuche sehr hilfreich, um S0-Impulse zu simulieren. Alle fünf Eingangskanäle sind identisch aufgebaut (siehe Schaltplan für die Bauteilnummern). An einem 10-poligen Steckverbinder K3 sind die fünf Kanäle mit jeweils Ground herausgeführt. Die Zähler können damit mit zwei Drähten einfach angeschlossen werden.

Die PSK-Steckverbinder sind preiswert und verpolungssicher. Durch Abstecken der drei Steckverbinder vom EnergyCounter kann dieser sehr schnell ausgetauscht werden. Die früher von mir verwendeten Schraubklemmen waren wesentlich wartungsintensiver (man musste nach dem Modultausch jedesmal alle Drähte neu verkabeln) und auch teurer.

Es empfiehlt sich, den IC1 ESP8266 über zwei Sockelstreifen auf die Platine zu stecken und nicht direkt einzulöten, damit eine Austausch schneller erfolgen kann.

 

Stückliste

Für den EnergyCounter werden nachfolgende Bauteile benötigt (Stand Okt. 2015):

Pos. Stück Bauteil E-Preis G-Preis Lieferant
LP1 1 Leiterplatte EnergyCounter/Streifenlochraster --- --- ---
IC1 1 Adafruit Huzzah ESP8266 Breakout 10,95€ 10,95€ EXP-Tech
IC1 2 Sockelstreifen je 10-polig, 5mm hoch, RM2,54 0,60€ 1,20€ Reichelt
C1 1 Elko 100uF/25V/RM2,54 0,04€ 0,04€ Reichelt
C5 1 Elko 22uF/63V/RM2,54 0,04€ 0,04€ Reichelt
C2, C3, C4, C6, C7, C8, C9 7 Keramikkondensator 100nF/RM2,54 0.05€ 0,35€ Reichelt
R1, R3, R8, R9, R13 5 Widerstand Metallfilm 1,2K/1%/0,25W 0,08€ 0,40€ Reichelt
R7 1 Widerstand Metallfilm 3,3K/1%/0,25W 0,08€ 0,08€ Reichelt
R5 1 Widerstand Metallfilm 8,2K/1%/0,25W 0,08€ 0,08€ Reichelt
R2, R4, R10, R11, R12 5 Widerstand Metallfilm 18,0K/1%/0,25W 0,08€ 0,40€ Reichelt
K2 1 PSS254/2W, 2-polig, gewinkelt 0,05€ 0,05€ Reichelt
K1 1 PSS254/3W, 3-polig, gewinkelt 0,05€ 0,05€ Reichelt
K3 1 PSS254/10W, 10-polig, gewinkelt 0,09€ 0,09€ Reichelt
K2 1 PSK254/2W 2-polig Kupplungsgehäuse 0,05€ 0,05€ Reichelt
K1 1 PSK254/3W 3-polig Kupplungsgehäuse 0,05€ 0,05€ Reichelt
K3 1 PSK254/10W 10-polig Kupplungsgehäuse 0,05€ 0,05€ Reichelt
K1, K2, K3 20 PSK-Crimpkontakte 0,27€ 0,27€ Reichelt
S1, S2, S3, S4, S5, S6 6 Drucktaster (Schließer), 4-polig 0,17€ 1,02€ Conrad
-- 1 Steckernetzteil 5V 2,95€ 2,95€ Pollin
G1 1 Sensorengehäuse PP42WS 2,14€ 2,14€ Darisius
    Summe:   20,26€  

Wenn Ihr keine eigene Platine erstellen wollt, nehmt eine Streifen-Lochrasterplatine. Da kann man die Schaltung auch schön aufbauen.

 

Versuchsaufbau

Die Hardware besteht aus dem ESP866-Board und einigen passiven Bauteilen. Sie kann leicht auf einem Lochrasterstreifen aufgebaut werden:

EnergyCounter Versuchsaufbau

Das ist bereits die endgültige Variante mit 5 Eingängen, welche sich aktuell im Dauertest befindet. Eine Leiterplatte wurde bereits entwickelt.

Die Platine ist aktuell in der Prototypenfertigung und sollte bis Mitte November eintreffen!

 

Zuordnung der Messwerte

Die zu erfassenden Messwerte müssen folgendermaßen den Eingängen zugeordnet werden, damit die Software korrekt funktioniert:

Stecker Messwert Kommentar
K3 - CH1 Pumpe Ein/Aus Über AC-Modul 230VAC
K3 - CH2 Volumenimpuls Solarfluid  
K3 - CH3 Brenner Ein/Aus optional
K3 - CH4 Warmwasser Ein/Aus optional
K3 - CH5 Brenner Ein/Aus optional
     
K5 5 Stück DS18B20 Temperatursensoren

Vorlauftemperatur Solarfluid
Rücklauftemperatur Solarfluid
Boiler oben
Boiler Mitte
Boiler unten