raspberry:atmos_px25_pellet_verbrauch_messen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
raspberry:atmos_px25_pellet_verbrauch_messen [2019/01/15 22:54] – [Daten mit einem NodeMCU ESP8266 einsammeln] gpipperr | raspberry: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:// | ||
+ | |||
+ | |||
+ | |||
+ | ==== 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, | ||
+ | |||
+ | |||
+ | Also habe ich gleich mal eine Prototypen mit einem " | ||
+ | |||
+ | |||
+ | Dazu diesen Sensor eingesetzt => https:// | ||
+ | |||
+ | 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 " | ||
+ | |||
+ | |||
+ | Dafür wird ein Widerstand in Reihe zum Sensor geschaltet und über den Widerstand wird die Spannung ausgewertet, | ||
+ | |||
+ | |||
+ | 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 " | ||
+ | * 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, | ||
+ | |||
+ | 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: | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | Welche Spannung ist am Last (Burden) Wiederstand zu erwarten? | ||
+ | |||
+ | |||
+ | Aus dem Datenblatt des Split Core Current Transformer ECS1030-L72: | ||
+ | |||
+ | * Turnn ratio : Np: | ||
+ | * 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:// | ||
+ | |||
+ | |||
+ | Für diese Aufgabe gibt es spezielle OP's, wie den LT1017, http:// | ||
+ | Datasheet => http:// | ||
+ | |||
+ | |||
+ | |||
+ | Simulieren wir erst mal etwas mit LTSpice, wie wir das wohl hinkriegen könnten. | ||
+ | |||
+ | |||
+ | Übersicht: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | In der Simulation sieht das dann schon recht gut aus: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | * Grün Eingang | ||
+ | * Blau Ausgang | ||
+ | |||
+ | Eine LT1017 bestellen, hier gab es denn http:// | ||
+ | |||
+ | |||
+ | Der LT1017 enthält zwei Komperatoren, | ||
+ | |||
+ | Wenn sich jemand besser auskennt, wird sich hier wohl bei 50 HZ auch ein " | ||
+ | |||
+ | |||
+ | 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, | ||
+ | |||
+ | |||
+ | der erste grobe Wurf, so würde das mit einem D Flipflop aussehen: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | Mit dem | ||
+ | |||
+ | Datasheet => http:// | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | Quelle => aus http:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 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/ | ||
+ | * 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, | ||
+ | |||
+ | |||
+ | Ergebnis könnte etwas rechteckiger sein: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | Ü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: | ||
+ | |||
+ | Ablauf: | ||
+ | |||
+ | * Interrupt gesteuerter Zähler pro Zeiteinheit | ||
+ | * Sende der Daten in die Influx Datenbank | ||
+ | |||
+ | |||
+ | |||
+ | ==Quellen== | ||
+ | |||
+ | |||
+ | * http:// | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Quellen ==== | ||
+ | |||
+ | Sensor Split Core Current Transformer ECS1030-L72: | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | |||
+ | Komperator Schaltung: | ||
+ | |||
+ | * https:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | |||
+ | Counter/ | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * Mod 10 mit dem 7493 => http:// | ||
+ | * 74LS93 Decade Counter IC => https:// | ||
+ | |||
+ | |||
+ | Sensor: | ||
+ | |||
+ | * https:// | ||
+ | * http:// | ||
+ | |||
+ | |||
+ | Lösungsansätze mit dem ESP8266 | ||
+ | * https:// | ||
+ | |||
+ | Direkt den Brenner auslesen: | ||
+ | |||
+ | * https:// | ||
raspberry/atmos_px25_pellet_verbrauch_messen.txt · Zuletzt geändert: 2019/01/15 22:54 von gpipperr