<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Tak jsem si řekl, že se nakonečně naučím s tím Android Studiem a
Kotlíkem.<br>
První funkční výsledek:<br>
<a class="moz-txt-link-freetext" href="https://dejvice.cz/edison/tmp/tv.rar">https://dejvice.cz/edison/tmp/tv.rar</a><br>
<br>
Není tam žádné řešení co je zadáno a co ne, prostě vždy vypočítá
všechno.<br>
Hlavně by to teda asi chtělo zjistit, jak se v Androidu pracuje s
registrem, nebo kam se ukládají nastavení, aby všechno nebylo
pokaždý default.<br>
<br>
Nevím zda jsou všechny výpočy správně, tak pro jistotu tady je ta
výpočetní část, prosím zkontrolovat:-)<br>
-------------<br>
<pre style="background-color:#ffffff;color:#000000;font-family:'JetBrains Mono',monospace;font-size:9,8pt;"><span style="color:#000080;font-weight:bold;">var </span>tempExt = <span style="color:#0000ff;">15.0f
</span><span style="color:#000080;font-weight:bold;">var </span>rhExt = <span style="color:#0000ff;">50.0f
</span><span style="color:#000080;font-weight:bold;">var </span>tempInt = <span style="color:#0000ff;">15.0f
</span><span style="color:#000080;font-weight:bold;">var </span>rhInt = <span style="color:#0000ff;">50.0f
</span><span style="color:#0000ff;">
</span><span style="color:#000080;font-weight:bold;">fun </span>rosBod(t: Float, rh: Float) : Float {
<span style="color:#808080;font-style:italic;">//<math>T_{dp} = \frac{243,5 \ln(\frac{V}{100} \cdot e^{\frac{17,67 \cdot T}{243,5+T}})}{17,67-\ln(\frac{V}{100} \cdot e^{\frac{17,67 \cdot T}{243,5+T}})}</math>
</span><span style="color:#808080;font-style:italic;"> </span><span style="color:#000080;font-weight:bold;">var </span>lnrh = <span style="font-style:italic;">ln</span>(rh/<span style="color:#0000ff;">100.0 </span>* <span style="font-style:italic;">exp</span>(<span style="color:#0000ff;">17.67</span>*t / (<span style="color:#0000ff;">243.5</span>+t)))
<span style="color:#000080;font-weight:bold;">return </span>(<span style="color:#0000ff;">243.5 </span>* lnrh / (<span style="color:#0000ff;">17.67</span>-lnrh)).toFloat()
}
<span style="color:#000080;font-weight:bold;">fun </span>relToAbs(t: Float, rh: Float) : Float {
<span style="color:#000080;font-weight:bold;">return </span>((<span style="color:#0000ff;">6.112 </span>* <span style="font-style:italic;">exp</span>(<span style="color:#0000ff;">17.67</span>*t / (<span style="color:#0000ff;">243.5</span>+t)) * rh * <span style="color:#0000ff;">2.1674</span>) / (<span style="color:#0000ff;">273.15</span>+t)).toFloat()
}
<span style="color:#000080;font-weight:bold;">fun </span>absToRel(t: Float, ah: Float) : Float {
<span style="color:#000080;font-weight:bold;">return </span>((ah * (<span style="color:#0000ff;">273.15</span>+t)) / (<span style="color:#0000ff;">6.112 </span>* <span style="font-style:italic;">exp</span>(<span style="color:#0000ff;">17.67</span>*t / (<span style="color:#0000ff;">243.5</span>+t)) * <span style="color:#0000ff;">2.1674</span>)).toFloat()
}
<span style="color:#000080;font-weight:bold;">fun </span>vypocet() {
tempExt = sbTE.<span style="color:#660e7a;font-style:italic;">progress</span>.toFloat() *<span style="color:#0000ff;">0.8f </span>- <span style="color:#0000ff;">25.0f
</span><span style="color:#0000ff;"> </span>rhExt = sbRhE.<span style="color:#660e7a;font-style:italic;">progress</span>.toFloat()
tempInt = sbTI.<span style="color:#660e7a;font-style:italic;">progress</span>.toFloat() *<span style="color:#0000ff;">0.8f </span>- <span style="color:#0000ff;">25.0f
</span><span style="color:#0000ff;"> </span>rhInt = sbRhI.<span style="color:#660e7a;font-style:italic;">progress</span>.toFloat()
txtTE.<span style="color:#660e7a;font-style:italic;">text </span>= <span style="color:#008000;font-weight:bold;">"T ext: " </span>+ tempExt.toString() + <span style="color:#008000;font-weight:bold;">" °C"
</span><span style="color:#008000;font-weight:bold;"> </span>txtRhE.<span style="color:#660e7a;font-style:italic;">text </span>= <span style="color:#008000;font-weight:bold;">"RH ext: </span><span style="color:#000080;font-weight:bold;">$</span>rhExt<span style="color:#008000;font-weight:bold;"> %, RB: " </span>+ rosBod(tempExt, rhExt).toString() + <span style="color:#008000;font-weight:bold;">" °C"
</span><span style="color:#008000;font-weight:bold;"> </span>txtTI.<span style="color:#660e7a;font-style:italic;">text </span>= <span style="color:#008000;font-weight:bold;">"T int: " </span>+ tempInt.toString() + <span style="color:#008000;font-weight:bold;">" °C"
</span><span style="color:#008000;font-weight:bold;"> </span>txtRhI.<span style="color:#660e7a;font-style:italic;">text </span>= <span style="color:#008000;font-weight:bold;">"RH int: </span><span style="color:#000080;font-weight:bold;">$</span>rhInt<span style="color:#008000;font-weight:bold;"> %, RB: " </span>+ rosBod(tempInt, rhInt).toString() + <span style="color:#008000;font-weight:bold;">" °C"
</span><span style="color:#008000;font-weight:bold;">
</span><span style="color:#008000;font-weight:bold;"> </span><span style="color:#000080;font-weight:bold;">var </span>rhPV = absToRel(tempInt, relToAbs(tempExt, rhExt))
txtOut.<span style="color:#660e7a;font-style:italic;">text </span>= <span style="color:#008000;font-weight:bold;">"Po větrání:</span><span style="color:#000080;font-weight:bold;">\n</span><span style="color:#008000;font-weight:bold;"> RH int: </span><span style="color:#000080;font-weight:bold;">$</span>rhPV<span style="color:#008000;font-weight:bold;"> %, RB: " </span>+ rosBod(tempInt, rhPV).toString() + <span style="color:#008000;font-weight:bold;">" °C"
</span>}
</pre>
------------<br>
a poznámky k tomu:<br>
<math>T_{dp} = \frac{<br>
243,5 \ln(\frac{V}{100} \cdot e^{\frac{17,67 \cdot T}{243,5+T}})<br>
} {<br>
17,67-\ln(\frac{V}{100} \cdot e^{\frac{17,67 \cdot T}{243,5+T}})<br>
}</math><br>
<br>
243.5 * ln(rh/100.0 * exp(17.67*t / (243.5+t))<br>
17.67 - ln(rh/100.0 * exp(17.67*t / (243.5+t))<br>
<br>
<br>
<a class="moz-txt-link-freetext" href="https://carnotcycle.wordpress.com/2012/08/04/how-to-convert-relative-humidity-to-absolute-humidity/">https://carnotcycle.wordpress.com/2012/08/04/how-to-convert-relative-humidity-to-absolute-humidity/</a><br>
AH = (6.112 * exp(17.67*t / (243.5+t)) * rh * 2.1674) / (273.15+t)<br>
<br>
AH = (6.112 * exp(17.67*t / (243.5+t)) * 2.1674 * rh) / (273.15+t)<br>
<br>
RH = (AH * (273.15+t)) / (6.112 * exp(17.67*t / (243.5+t)) * 2.1674)<br>
<br>
PH<br>
<br>
<br>
<br>
<div class="moz-cite-prefix">Dne 08.01.2023 v 9:48 Petr Labaj
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:abc94cff-21b2-70ad-b3da-93fe903dda24@volny.cz">Děkuji za
nabídku, vážím si ji.
<br>
Ale tak moc obtěžovat nechci.
<br>
Já jsem si naivně myslel, že taková věc přece musí existovat. A že
to tedy bude ta snazší cesta.
<br>
Ale zřejmě ne.
<br>
<br>
Takže nakonec nějaká HW cesta bude asi průchodnější.
<br>
Já pro Android programovat neumím. Ale jednochipy celkem jo.
<br>
Tak asi koupím dvě vlhkostní čidla (zřejmě BME280 od Bosche) a
slepím s tím nějaké zařízení.
<br>
Jedno čidlo ven, druhé dovnitř.
<br>
Na displeji pak vnější a vnitřní hodnoty, a k tomu ty přepočtené a
doporučení větrat/nevětrat.
<br>
<br>
Při tom blbnutí s vlhkostí jsem si uvědomil, že asi nastal čas
koupit si aspoň nějaké aspoň malé rekuperační větrání.
<br>
Při nízké vlhkosti pocitově nevadí ani o dost nižší vnitřní
teplota.
<br>
No a tak potom ten udělaný měřák použiju pro adaptivní řízení té
rekuperace.
<br>
Ony sice ty rekuperační jednotky většinou nějaký automatický režim
umožňují.
<br>
Ale když já víc věřím vlastnímu měření a řízení, než nějakým
blackboxům.
<br>
<br>
Díky všem za odpovědi. A Tobě za nabídku zvlášť.
<br>
<br>
PL
<br>
<br>
**********************
<br>
<br>
Dne 8.1.2023 v 0:44 Petr Zahradník napsal(a):
<br>
<blockquote type="cite">Tak mi (normálně mimo konferenci) pošli
slovně ty výpočty, které chceš pro ty jednotlivé případy
provádět, ať to nemusím studovat a vymýšlet. A nějaké další
informace jako počty desetinných míst, jak to má vypadat, jak to
chceš ovládat apod. Já ti tu aplikaci ve volné chvíli udělám.
<br>
<br>
Petr Zahradník, počítačový expert
<br>
e-mail: <a class="moz-txt-link-abbreviated" href="mailto:clexpert@clexpert.cz">clexpert@clexpert.cz</a>
<br>
mobil: 602 409 601
<br>
<a class="moz-txt-link-freetext" href="http://www.clexpert.cz">http://www.clexpert.cz</a>, <a class="moz-txt-link-freetext" href="http://www.zahradniksebavi.cz">http://www.zahradniksebavi.cz</a>
<br>
Petr Zahradník, Computer Laboratory
<br>
Obvodová 740/14, 400 07 Ústí nad Labem
<br>
<br>
-----Original Message-----
<br>
From: Hw-list <a class="moz-txt-link-rfc2396E" href="mailto:hw-list-bounces@list.hw.cz"><hw-list-bounces@list.hw.cz></a> On Behalf Of
Petr Labaj
<br>
Sent: Saturday, January 7, 2023 9:57 PM
<br>
To: <a class="moz-txt-link-abbreviated" href="mailto:hw-list@list.hw.cz">hw-list@list.hw.cz</a>
<br>
Subject: Re: [OT] Přepočet relativní vlhkosti vzduchu podle
teploty
<br>
<br>
4 vstupní políčka, jedno výstupní.
<br>
Vstupy:
<br>
vnější teplota, vnější Rh
<br>
vnitřní teplota, vnitřní Rh
<br>
<br>
Vnější teplota a Rh musí být zadáno vždy.
<br>
U vnitřních:
<br>
- je-li zadána teplota a ne Rh, program počte, jaké Rh bude mít
vnější vzduch po vpuštění dovnitř a zahřátí na vnitřní teplotu
(tedy jaká bude vnitřní vlhkost po vyvětrání)
<br>
- je-li zadáno Rh a ne teplota, program spočte, při jaké vnitřní
teplotě dosáhne vzduch to zadané Rh
<br>
- je-li zadána vnitřní teplota i Rh, program řekne, jestli se
vyvětráním vlhkost sníží nebo zvýší
<br>
</blockquote>
</blockquote>
</body>
</html>