Benutzer-Werkzeuge

Webseiten-Werkzeuge


raspberry:atmos_px25_pellet_verbrauch_messen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
raspberry:atmos_px25_pellet_verbrauch_messen [2019/01/15 22:54] – [Daten mit einem NodeMCU ESP8266 einsammeln] gpipperrraspberry:atmos_px25_pellet_verbrauch_messen [2019/01/15 22:54] (aktuell) – [50 Hz Signal teilen um den MicroController etwas zu entlasten] gpipperr
Zeile 1: Zeile 1:
 +====== Betriebsstundenzähler zum Ermitteln des Pellet Verbrauchs eines Pelletkessel Atmos PX 20 =====
 +
 +**Aufgabe:**
 +
 +Der Verbrauch an Pellet mit einem [[https://atmos24.de/atmos/pelletkessel-px-serie/1375-product.html|Pelletkessel Atmos PX 20 ]] soll möglichst genau aufgezeichnet und in Relation zur erzeugten Wärmemenge gesetzt werden.
 +
 +
 +
 +==== Idee ====
 +
 +Die Förderschnecke für den Brenner läuft in einer gleichmäßigen Drehzahl und fördert in einer Zeiteinheit im Großen und Ganzen immer die gleiche Menge an Pellets an den Brenner, in meinen Fall kann die Schnecke **18,45 kg / h** fördern.
 +
 +
 +Die Regelung des Brenners baut auch darauf auf das in der hinterlegten Zeiteinheit die passende Menge an Pellets gefördert wird. Die Förderschnecke wird je nach Bedarf vom Brenner dazu für ein paar Sekunden direkt einfach komplett eingeschaltet. 
 +
 +Dazu ist der Motor der Schnecke über einen 230 Steckdose direkt an Gehäuse des Brenners angesteckt und wird von der Brennereinheit bei Bedarf mit Strom versorgt.
 +
 +D.h. die Zeit in der die Förderschnecke läuft entspricht auch der Menge an Pellets, die an den Brenner geliefert wird.
 +
 +Gemessen wird das ganze, in dem die Pellet Schnecke direkt an 230V mit dem Stecker des Schneckenmmotors 6 Minuten lang angeschloßen wird, dabei den Schlauch vom Brenner abziehen und die Pellets in einen Eimer leiten. 
 +
 +Die in dieser Zeiteinheit geförderte Menge an Pellets wird möglichst genau gewogen. 
 +
 +----
 +
 +
 +
 +
 +==== Lösung: Ein Betriebssekunden Zähler (Impluszähler) =====
 +
 +Wir müssen also nur genau messen, wann der Motor der Förderschnecke wie lange gelaufen ist.
 +
 +Sobald die Förderschnecke läuft kann der Stromverbrauch gemssen werden.
 +
 +Laut Ersatzteil Liste hat der Motor hat 250Watt an 230V , d.h. wir werden einen Strom von um die 1A messen, fließt ein Strom gehen wir davon aus das die Schnecke auch Pellets fördert. 
 +
 +Auch soll nicht groß in die Anlage eingegriffen werden, d.h. wir versuchen direkt das Kabel vom Brenner zur Schnecke mit einer Stromzange auszuwerten.
 +
 +Da der eigentliche Stromverbrauch uns für diese Aufgabe nicht interessiert, reicht es zu messen, ob sich auf dem Kabel etwas tut.
 +
 +
 +Also habe ich gleich mal eine Prototypen mit einem "Non-invasive AC Current Sensor" aufgebaut, der laut Internet Anleitungen ganz einfach funktionieren sollte.
 +
 +
 +Dazu diesen Sensor eingesetzt => https://www.exp-tech.de/en/sensors/currentvoltage/4485/non-invasive-current-sensor-30a, siehe Datenblatt => [[https://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Current/ECS1030-L72-SPEC.pdf|Split Core Current Transformer ECS1030-L72]].
 +
 +Allerdings sind dann doch zwei Abend Session in das Land gegangen, bis ich festgestellt habe was ich hier falsch mache. Laut diesen Anleitungen ( siehe Quellen) weiter unten  müsste das doch ganz einfach sein .....
 +
 +
 +Ja, aber nur wenn auch genug Strom fließt! 
 +
 +
 +Unter ca. 1A ist das Signal vom dem Sensor so stark verzerrt und gestört das auf dem Oszilloskop nichts wirklich brauchbares für die weiteren Auswertung auftaucht.
 +
 +Erst ab einer Last von min. 2A wird dann doch mal ein schöner Sinus dargestellt.
 +
 +Die Idee war ja einfach einen "Non-invasive AC Current Sensor", im Endeffekt eine einfache Spule, an die Phase zu hängen und dann das Sinus Signal von 50hz einfach mit einen Arduino oder einen LPC810 auszuwerten.
 +
 +
 +Dafür wird ein Widerstand in Reihe zum Sensor geschaltet und über den Widerstand wird die Spannung ausgewertet, die durch den Stromfluss des Sensors erzeugt wird.
 +
 +
 +Allerdings ist laut Datenblatt der Strom, der durch die Induktion in der Messspule entsteht, so klein bei kleinen Strömen, dass wir hier im mV Bereich unterwegs sind und weit weg von jeden auswertbaren Pegel. Das erzeugte Signal muss daher zuerst noch verstärkt werden.
 +
 +Aber wenn wir das Signal verstärken kann ja dann gleich auch daraus eine passen Rechteck Spannung erzeugt werden.
 +
 +Diese Impulse können wir dann pro Sekunde zählen, entweder gleich über einen GPIO Port oder zuvor über einen Zählerschaltung die dann wiederum mit mehreren GPI Ports abgefragt wird.
 +
 +Zählen können wir per Interrupt Technik direkt am GPIO, ein Stück Software kummuliert die Werte einen separaten Thread und schreibt mit der Zeitinformation die Anzahl der Impulse pro Minute per Rest Call in meine TimeServies Datenbank.
 +
 +D.h. wir brauchen die folgende Komponenten:
 +
 +  * Messsensor an einer Phase der Stromversorgung des Schnecke
 +    * Dieser "Non-invasive AC Current Sensor" wird an eine herausgeführt Phase gelegt ( Zwischenstecker notwendig, das original Kabel darf nicht in Mitleidenschaft genommen werden, ist ja noch Garantie auf der Anlagen .-) )
 +  * Eine OP Komparator Schaltung um aus den Sinus Signal des Current Sensor (so zwischen wenigen mV und 2V) ein stabiles 5 V Rechteck Signal zu erzeugen
 +  * Das Rechteck Signal dient als Eingang für die Impulszählung, entweder direkt am GPIO oder über eine Zählerbaustein 
 +
 +Raspberry Zero
 +  *  Python Script um Interrupts abzufangen, die Impluse pro Minute zu zählen und diese mit der Zeitinformation per REST Call in die Datenbank schreiben
 +
 +
 +----
 +
 +==== Grundlegende Überlegungen ====
 +
 +
 +=== Induktive Strommessung mit einem Non-invasive AC Current Sensor ===
 +
 +Übersicht über die Funktion:
 +
 +
 +{{ :elektronik:stromsensor_v01.png | Non-invasive AC Current Sensor}}
 +
 +
 +Welche Spannung ist am Last (Burden) Wiederstand zu erwarten?
 +
 +
 +Aus dem Datenblatt des Split Core Current Transformer ECS1030-L72:
 +
 +  * Turnn ratio    : Np:Ns=1:2000
 +  * Current Ratio :  30A/15mA
 +
 +
 +D.h. bei 1 A fließen 0,5mA, an 10 Ohm Burden Widerstand wären das dann eine Spannung von 5mv, bei 30A 150mv
 +
 +D.h für kleine Ströme ist so einfache einfache Schaltung wohl nicht so wirklich geeignet.
 +
 +Im nächsten Schritt verstärken wir das Signal daher um zählbare Impulse aus dem ganzen zu erhalten.
 +
 +----
 +
 +
 +==== Komparator Schaltung mit dem LT1017 ====
 +
 +Wir wollen also aus einen Sinus Signal von +/- ~10mv einen Rechteck Impuls mit 5V Flanke erzeugen.  
 +
 +Dazu kann ideal eine OP Schaltung verwendet werden, der einmal das Signal verstärkt und dann auch noch zusätzlich eine Hysterese Funktionalität bietet, Grundlagen siehe  https://www.elektronik-kompendium.de/sites/slt/0311261.htm.
 +
 +
 +Für diese Aufgabe gibt es spezielle OP's, wie den LT1017, http://www.linear.com/product/LT1017, 
 +Datasheet => http://cds.linear.com/docs/en/datasheet/10178ff.pdf
 +
 +
 +
 +Simulieren wir erst mal etwas mit LTSpice, wie wir das wohl hinkriegen könnten.
 +
 +
 +Übersicht:
 +
 +{{ :elektronik:grundschaltung_komperator_fuer_betriebsstunden_zaehler.png | Komperator Schaltung Betriebsstundenzähler}}
 +
 +
 +In der Simulation sieht das dann schon recht gut aus:
 +
 +{{ :elektronik:grundschaltung_komperator_fuer_betriebsstunden_zaehler_simulation.png | Komperator Schaltung Betriebsstundenzähler}}
 +
 +  * Grün Eingang
 +  * Blau Ausgang
 +
 +Eine LT1017 bestellen, hier gab es denn http://www.kessler-electronic.de/Halbleiter/integrierte_Schaltkreise/analog/L/LT/LT1017CN8_i600_10246_0.htm, allerdings ist der nicht gerade günstig (3,98) . In LTSpice aber keine anderen Komparator gefunden, daher diesen verwendet. 
 +
 +
 +Der LT1017 enthält zwei Komperatoren, hier im Beispiel beide verwendet, da sich später herausgestellt hat das in der Praxis das Ausgangssignal etwas stark abfällt, wollte testen ob ich mit einer zweiten Stufe ein schöneres Rechteck Signal bekommen, das Signal ist dann zwar einmal invertiert, aber in der Praxis noch genauso "schräg".
 +
 +Wenn sich jemand besser auskennt, wird sich hier wohl bei 50 HZ auch ein "normaler" günstiger OP mit etwas intelligenter Beschaltung verwenden lassen. 
 +
 +
 +Test hier auch einen LM319N, der kostet nur einen 34 Cent, ob das auch klappen kann.
 +
 +
 +----
 +
 +==== 50 Hz Signal teilen um den MicroController etwas zu entlasten ====
 +
 +Das nun so erzeugte 50 Hz soll nun 1:10 geteilt werden, dazu bietet sich ein 74SL90 oder 74SL93 an.
 +
 +Einen 74LS93 habe ich in der Bastelkiste, daher wird mit diesem Baustein weiter gemacht.
 +
 +
 +der erste grobe Wurf, so würde das mit einem D Flipflop aussehen:
 +
 +{{ :elektronik:mod10_dflipflot_v01.png | Dflip Flopg Mod 10}}
 +
 + 
 +Mit dem 
 +
 +Datasheet => http://pdf.datasheetcatalog.com/datasheets/134/375734_DS.pdf
 +
 +
 +{{ :raspberry:mod10_7493_zaehler.png | 74SL90 - Mod10}}
 +Quelle => aus http://pdf1.alldatasheet.com/datasheet-pdf/view/5753/MOTOROLA/74LS93.html
 +
 +
 +
 +
 +Dann sehen wir mal wenn das praktisch aufgebaut ist, ob das auch so klappt .... 
 +
 +Das ist ein Schmarren .... demnächst der Fix ...
 +
 +
 +----
 +
 +==== Praktische Umsetzung ====
 +
 +Nun das ganze auf einem Bread Board provisorisch aufbauen.
 +
 +
 +Sensor:
 +
 +  * Stecker am Sensor abgeschnitten , Kabel auf eine Pfosten Stecker gelötet
 +  * 230V Buchse/Stecker mit herausgeführter Phase verkabelt, auf sicheren Anschluss achten!
 +  * Sensor über die herausgeführte Phase angebracht
 + 
 +Nun alles nach obigen Plan zusammen stecken, in der Praxis hat sich gezeigt, das der Tiefpass über den Sensor sehr wichtig ist, ein Elektromotor wie z.B. von einer Bohrmaschine, erzeugt soviele Oberschwingungen, das mit der Verstärkung keine 50hz immer sicher am Ausgang garantiert werden können, d.h. das Signal muss geglättet werden.
 +
 +
 +Ergebnis könnte etwas rechteckiger sein:
 +
 +{{ :raspberry:sinus_rechteck_implementierung_lt1017.png?700 | Sinus nach Rechteck OP Schaltung LT1017}}
 +
 +
 +Über ein nachgeschaltetes Logikgatter sollte sich das aber schön optimieren lassen.
 +
 +
 +Demnächst mehr, mein Labornetzteil ist gerade ausgefallen :-( 
 +
 +
 +
 +----
 +
 +----
 +
 +==== Daten mit einem NodeMCU ESP8266 einsammeln ====
 +
 +Zum Einstieg siehe hier =>  [[elektronik:nodemcu_esp8266_erste_schritte|Erste Schritte mit dem ESP8266 / NodeMCU Board mit Lua]].
 +
 +Ablauf:
 +
 +  * Interrupt gesteuerter Zähler pro Zeiteinheit
 +  * Sende der Daten in die Influx Datenbank
 +
 +
 +
 +==Quellen==
 +
 +
 +  * http://www.thalin.se/2015/05/power-meter-pulse-logger-with-esp8266.html
 +
 +
 +----
 +
 +----
 +
 +==== Quellen ====
 +
 +Sensor Split Core Current Transformer ECS1030-L72:
 +
 +  * https://www.exp-tech.de/en/sensors/currentvoltage/4485/non-invasive-current-sensor-30a
 +  * https://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Current/ECS1030-L72-SPEC.pdf
 +
 +
 +Komperator Schaltung:
 +
 +  * https://electronics.stackexchange.com/questions/163253/sine-wave-to-square-wave-schmitt-trigger
 +  * http://www.linear.com/product/LT1017
 +  * http://www.linear.com/solutions/1020
 +
 +Counter/Frequenzteiler:
 +
 +  * https://www.electronics-tutorials.ws/counter/bcd-counter-circuit.html
 +  * https://www.youtube.com/watch?v=oc5CfhXIZl8
 +  * https://www.allaboutcircuits.com/textbook/digital/chpt-11/synchronous-counters/
 +  * Mod 10 mit dem 7493 => http://electronics-course.com/digital-clock
 +  * 74LS93 Decade Counter IC => https://www.youtube.com/watch?v=q6seLjocWK8
 +
 +
 +Sensor:
 +
 +  * https://learn.sparkfun.com/tutorials/environmental-monitoring-with-the-tessel-2?_ga=2.255653004.561595196.1518114429-1052536795.1518114429
 +  *  http://www.homautomation.org/2013/09/17/current-monitoring-with-non-invasive-sensor-and-arduino/
 + 
 +
 +Lösungsansätze mit dem ESP8266
 +  * https://forum.fhem.de/index.php?topic=61731.0
 +
 +Direkt den Brenner auslesen:
 +
 +  * https://www.holzheizer-forum.de/index.php?thread/1560-a25-ext-display-und-datenlogger-f%C3%BCr-brennerdaten/
  
raspberry/atmos_px25_pellet_verbrauch_messen.txt · Zuletzt geändert: 2019/01/15 22:54 von gpipperr