NEWS
Drucksensor mit Tasmota abfragen ?
-
@Fraenki23 Gern geschehen.
Bis bald.
Gruß UB -
ich muss hier auch mal nachfragen.
Derzeit hab ich Probleme mit der Umrechnung.
Ich raffs irgendwie nicht.Ausgangslage:
Habe mir 2 dieser Sensoren eingebaut.
1 x 0,5mPa und
1 x 1.2mPaLt. Beschreibung hat der (wie im thread 1) 1.2 mPa die Werte
Ausgang von 0,5V bis 4,5 V entspricht 0 bis 12 BarDer andere:
Ausgang von 0,5V bis 4,5 V entspricht 0 bis 5 BarIch habe beide Sensoren ohne Widerstand eingebaut. Also der Analog Ausgang (gelbes Kabel) an jeweils einen Wemos D1 mini an A0.
Als Werte bekomme ich geliefert:
Sensor 1.2mPa: Wert=309
Sensor 0.5mPa: Wert=558Diese Werte erscheinen nun erst einmal logisch (Wert 0.5 ist höher als 1.2 Sensor).
Nur wie rechne ich diese nun um ?
Das Beispiel 1 Thread vorher funktioniert nicht (oder ich verstehe es nicht).Aber auch mit diesem Beispiel (bei analoger Anwendung):
https://www.letscontrolit.com/wiki/index.php?title=Analog_Pressure_sensor
komme ich nicht klar.
Es kommen da viel zu hohe Werte raus.
Richtig wäre (lt. alter analoger Anzeige bei der Heizung) ca. 1,8 Bar.Kann mir mal jemand auf die Sprünge helfen.
Die Umrechnung ist ein greul; aber bestimmt wieder Error 50 !mfg
Dieter -
@bahnuhr Hey hier ist mein Lösung/ Ansatz
Ich hab das ganze so gemacht! Vielleicht hilf dir das!
Wemos D1 mini mit diesen Drucksensor. Habe bewusst einen größen Sensor genommen.100 Psi = ca 6,89 Bar warum erkläre ich gleich!.Meine Heizung hat einen max Druck von 4 Bar. Laut Datenblatt sollte an den Sensor 5 V liegen,da aber der Analog Einang nur max 3.3 V vertragen kann hab ich deshalb den größeren genommen Sprich. 4,5 V= 6,89 Bar und ich max 4 Bar brauche , entspricht also einen Max Ausgangsspannung am Analogen Eingang ca 3,3V = 5,05 Bar. Damit ich mir den Analogen Eingang ohne Widerstand kaputt mache :). Du Kannst natürlich einen kleineren Sensor nehmen, nur ich wollte es ohne Widerstand nicht Riskieren. Aber!!! , der Sensor funktioniert auch mit 3,3 V !, und somit hätte ich mir den größeren Drucksensor auch sparen können, probieren statt studieren :D, naja egal. Nun zur Rechnung!
Auf mein Wemos läuft Tasmota, habe den Sensor angeschlossen und er zeigte mir ohne einen Druck den Wert "114" an. Ich habe dieses als Korrektur in BLockly subtrahiert damit ich den Wert 0 habe.
Um das ganze zu verstehen hab ich mir das ganze erstmal schriftlicht runtergerechnet also:
liegen 3.3 V an dem Analogen Eingang bekommst du einen Wert von 1024 angezeigt.
3,3V:1024 = 0,0032 Sprich 0,0032V sind 1 Digi Analogwert.
3,3V= 6,89Bar das teilen wir durch sich selbst. einmal 1 V= 2,087 Bar .
So 1 Digit sind 0,0032V und das teilen wir durch 1 V sind ca 312,5 Digits hab das einfach abgerundent auf 310.
Entspricht das ganze 1 Digit=0,0032V=0,0067 Bar und diesen Wert einfach mit deinen Angezeigten Wert von Tasmota ( Drucksensor) Multiplizieren. wobei ich den von 0,0067 auf ca 0,0082 Korrigiert habe ( Toleranz). habe mir das System so gebastellt, passt soweit. Habe jetzt keinen geeichten Manometer am Kessel,aber der Wert passt sowie es angezeigt wird.
Hier ist der Blocklyscript
Die Werte,werden an 2 verschiedenen Datenpunkten geschrieben.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="f|!^sQM$r%Iek$J8`(b,">Analogwert Korrektur</variable> <variable id="VTXb/=THqURV92j-Z`1c">umrechnung in Volt</variable> <variable id="p*=ZhSX6;c7F`2L]t-|M">umrechnung in Bar</variable> </variables> <block type="on" id="X;}AU{oP.;@5vkIR0nQ[" x="138" y="138"> <field name="OID">sonoff.0.Heizung-Drucksensor.ANALOG_A0</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="VA.lTh9pC!([~uGlY5]-"> <field name="VAR" id="f|!^sQM$r%Iek$J8`(b,">Analogwert Korrektur</field> <value name="VALUE"> <block type="math_arithmetic" id="Y4S#:=V2mha,K56bN.r+"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="i=73j1xn*GCDscbk~$5Z"> <field name="NUM">1</field> </shadow> <block type="get_value" id="/=Sb!!b]Qr#E-/j6,_^r"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Heizung-Drucksensor.ANALOG_A0</field> </block> </value> <value name="B"> <shadow type="math_number" id="rVr?*$}MjY?/6O9!PCn%"> <field name="NUM">114</field> </shadow> <block type="math_number" id=":yU|UQ|vWl-BQ[:s)*7p"> <field name="NUM">114</field> </block> </value> </block> </value> <next> <block type="variables_set" id="J#|e8|X*Hp:{W:|J:8e("> <field name="VAR" id="VTXb/=THqURV92j-Z`1c">umrechnung in Volt</field> <value name="VALUE"> <block type="math_arithmetic" id="nh~RxHD$f6FagDb_d4-B"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="nLsK:IZ)0Rx).Tg$q,0}"> <field name="NUM">1</field> </shadow> <block type="variables_get" id=")4XcnR.~95$?cia@K~DK"> <field name="VAR" id="f|!^sQM$r%Iek$J8`(b,">Analogwert Korrektur</field> </block> </value> <value name="B"> <shadow type="math_number" id="rJqxd@#76P~A9mFhSXr9"> <field name="NUM">32</field> </shadow> <block type="math_number" id="5IbFk[w?SXa[PfAE7/S$"> <field name="NUM">0.004</field> </block> </value> </block> </value> <next> <block type="variables_set" id="SS:Ys[fGR]$PAYH(@s%d"> <field name="VAR" id="p*=ZhSX6;c7F`2L]t-|M">umrechnung in Bar</field> <value name="VALUE"> <block type="math_rndfixed" id="c64Q)%T~B7FW4Q:@=#9^"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="jz1ZKogdX%om{D!.^2}N"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="7RT3zXBy2%q0FXoj_kKO"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id=";ma10FV-x7/%Hj2pYq)n"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="J1XJ83QfAj)3lPkX8swd"> <field name="VAR" id="f|!^sQM$r%Iek$J8`(b,">Analogwert Korrektur</field> </block> </value> <value name="B"> <shadow type="math_number" id="]vm2GIFm2YT.,iqu:qOZ"> <field name="NUM">1</field> </shadow> <block type="math_number" id="s]?~bd6*[BH(Vl~3Osw1"> <field name="NUM">0.0082</field> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="!BRWrov~7D^$r.~}YO)n"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Druckanzeige</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="vh]l3AF@nU`z}|ihIFXg"> <field name="VAR" id="p*=ZhSX6;c7F`2L]t-|M">umrechnung in Bar</field> </block> </value> <next> <block type="control" id="FSIuu@TjnmHRgVz%31)-"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Druckanzeige-Volt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=",0#P.WuJ3a^@9.Fv]2`Y"> <field name="VAR" id="VTXb/=THqURV92j-Z`1c">umrechnung in Volt</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on" id="/t!hkN_I,gVA/$:rlX6("> <field name="OID">javascript.0.Druckanzeige</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="I`#7^OVnV`_{Z8wJ%$2a"> <value name="IF0"> <block type="logic_compare" id="b|XCdYFn9mZzkIsu{^q`"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="BbT|b)x!@7P};h10Yyws"> <field name="ATTR">val</field> <field name="OID">javascript.0.Druckanzeige</field> </block> </value> <value name="B"> <block type="math_number" id="}90LO~mJBH6^**YhK?JF"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="e%Nj]-b!.K,B045ShT(9"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="`ZGsxB`m^WK0O7NlAkVA"> <field name="TEXT">Hey! Bitte überprüfen den Druck der Heizungsanlage</field> </shadow> <block type="text_join" id="J-:klG}VIS03)t_7eJ}("> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="8iT+cR;nMf[dq`]`u+O@"> <field name="TEXT">Hey! Bitte überprüfen den Druck der Heizungsanlage. Der Aktuelle Druck beträgt</field> </block> </value> <value name="ADD1"> <block type="get_value" id="1w@lWr-O;xqe]E-(kI3y"> <field name="ATTR">val</field> <field name="OID">javascript.0.Druckanzeige</field> </block> </value> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </xml>
Hier ist die Vis Vorlage ```
[{"tpl":"tplJqplotGauge","data":{"oid":"javascript.0.Druckanzeige","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","showTickLabels":true,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"min":"0","max":"4","padding":"","needleThickness":"9","needlePad":"0","hubRadius":"10","ringWidth":"8","shadowOffset":"19","shadowAlpha":"0.4","shadowDepth":"23","intervalInnerRadius":"360","intervalOuterRadius":"229","intervals":"1;3;4","intervalColors":"red;green;red","tickPadding":"0","ticks":"","label":"Heizungsdruck","title":"","ringColor":"#9d9f9f"},"style":{"left":"-44px","top":"-262px","width":"1010px","height":"794px","z-index":"1"},"widgetSet":"jqplot"}]``` code_text
Widget von Justgage
-
@canim
Danke für die Info.
Ich schau mir dies an.mfg
-
@bahnuhr wie gesagt meine Werte sind von einem Drucksensor von 100psi= 6,89 sowie 3.3V , wenn du das an 5v dran machst ändert sich ca 100 Digits an Analogwert sowi die Rechnung.
-
@canim sagte in Drucksensor mit Tasmota abfragen ?:
@bahnuhr wie gesagt meine Werte sind von einem Drucksensor von 100psi= 6,89 sowie 3.3V , wenn du das an 5v dran machst ändert sich ca 100 Digits an Analogwert sowi die Rechnung.
Hab versucht das nachzustellen; siehe Excel Screenshot oben.
Aber irgendwie ist mir dies zu hoch.Kannst du mir da mal helfen ?
Wie kommst du auf die 100 Digits mehr ?Wie gesagt; habe ja o.g. Link in der Excel angeglichen (dachte ich zumindest); aber die Werte die rauskommen sind zu hoch.
mfg
-
@bahnuhr ich hab mein Sensor angeschlossen, ohne auf dem Sensor druck drauf zugeben, da zeigte er mir schon den Wert 114 digits, der Sensor arbeitet ab 0,5v, deswegen korrigiere ich den Wert auf 0
-
@canim sagte in Drucksensor mit Tasmota abfragen ?:
deswegen korrigiere ich den Wert auf 0
Ich auch (siehe Excel Tabelle).
Trotzdem alles viel zu hoch.
-
@bahnuhr Hallo Dieter,
nimm mal zwei Wertepaare (Spannung/Druck am Manometer) und trage sie hier ein:
https://www.mathepower.com/geraden.php
Mal sehen was dann raus kommt
PS Mit wieviel Volt befeuerst du den Sensor?
-
@Homoran sagte in Drucksensor mit Tasmota abfragen ?:
PS Mit wieviel Volt befeuerst du den Sensor?
Sensor 1: 0,5 mPa an 5 V
Gelbes Kabel an A0 am Wemos d1 mini
Wemos d1 mini an 5V
Daten von 0,5 bis 4,5V entspricht 0 bis 5 BarSensor 2: 1,2 mPa an 5 V
Gelbes Kabel an A0 am Wemos d1 mini
Wemos d1 mini an 5V
Daten von 0,5 bis 4,5V entspricht 0 bis 12 Bar -
Sensor 2 mit 1,2 mPa hat diese Funktion:
-
@Homoran sagte in Drucksensor mit Tasmota abfragen ?:
nimm mal zwei Wertepaare (Spannung/Druck am Manometer) und trage sie hier ein:
versteh ich nicht was ich da eingeben soll.
Wenn du die Formel meinst, dann ist bei
Sensor 1 mit 0,5 mPa : Bar = (Volt Sensor - 0,5) x 1,25
Sensor 2 mit 1,2 mPa : Bar = (Volt Sensor - 0,5) x 3Problem hierbei ist, dass eben nicht Volt Sensor gemeldet wird sondern ein analoger Wert (wahrscheinlich von 0 bis 1024;
wobei wohl 1024 3,3V sein soll).Und hier hab ich hier und her gerechnet.
Klappt nicht.
(oder ich weiß nicht wie). -
Berechnung analog dem Link von oben:
Hierbei kommt aber 3,03 bar raus; und dies ist viel zu viel.
-
@bahnuhr sagte in Drucksensor mit Tasmota abfragen ?:
versteh ich nicht was ich da eingeben soll.
das was ich schrieb, wenn du allerdings keine mV bekommst, dann eben (analoger Wert | Druck am Mainometer)
Die Formeln aus dem Datenblatt sind mir wumpe, ich möchte wissen was da real für eine Formel rauskommt
-
Sensor 1 (0,5 mPa)
liefert 558 als WertSensor 2 (1,2 mPa)
liefert 309 als WertLt. manuellem alten Manometer sollten das ca. 1,7-1,8 bar sein.
-
@bahnuhr ich brauche 2 Werte je Sensor!
Je weiter der Druck dabei auseinander liegt, desto besser!
-
@Homoran sagte in Drucksensor mit Tasmota abfragen ?:
Je weiter der Druck dabei auseinander liegt, desto besser!
Rainer,
wo soll ich die jetzt hernehmen ?
die Teile sind doch eingebaut. -
Dann kann ich dir nicht helfen.
Wie soll man sonst herausbekommen, ob dein A/D Wandler vielleicht spinnt -
@bahnuhr zeig mal was für ein Sensor du da verbaut hast, und sag mir gerade den aktuellen druck laut Manometer sowie den analogen Eingangswert
Und tu dir mal ein gefallen Steck den Stecker vom drucksensor ab und überprüfe mal was tasmota für ein analog wert ausgibt, sollten 0-2 digits sein. Wenn das höher ist, ist der bestimmt defekt
-
@canim sagte in Drucksensor mit Tasmota abfragen ?:
sag mir gerade den aktuellen druck laut Manometer sowie den analogen Eingangswert
@bahnuhr sagte in Drucksensor mit Tasmota abfragen ?:
Sensor 1 (0,5 mPa)
liefert 558 als Wert
Sensor 2 (1,2 mPa)
liefert 309 als Wert
Lt. manuellem alten Manometer sollten das ca. 1,7-1,8 bar sein.wobei er zwei verschiedene Sensoren mit unterschiedlichem pMax hat