Kalkulator
ciśnienia względnego
Barometr
Postanowiłem do palety rzeczy mierzonych dołączyć ciśnienie atmosferyczne.
Miałem od znajomego barometr na 1-wire wykonany według schematu Davida
W. Bray - nie mogłem się jednak jakoś zabrać za jego kalibrację.
Postanowiłem więc wypróbować barometr ze
stacji pogody by "tytan". Z prezentowanej przez niego stacji meteo
wykorzystałem tylko DS2450 i MPX4115. Dodatkowo ze względu na dużą czułość
układu na zmiany napięcia zasilającego (skaczą wtedy wyniki) zasiliłem
całość z +12V poprzez stabilizator napięcia 78L05.
Układ DS2450 niestety nie potrafi wykryć czy ma dołączone zasilanie czy też
nie. Tak więc musimy go ręcznie poinformować że ma doprowadzone zasilanie:
owwrite 20.nr_czujnika/power 1
Wyniki są całkiem, całkiem - ciśnienie trochę skacze i niestety nie mam
dostępu do żadnych profesjonalnych barometrów aby zrobić jakieś porównania.
Zrobiłem uśrednienianie danych (po 5 odczytów co 2 minuty na jeden wpis do
bazy rrd) i to już prezentuje się znacznie lepiej.
Odczyt ciśnienia następuje poprzez odczyt napięcia z DS2450:
barometr_napiecie=`owread 20.nr_czujnika/volt.A`
Następnie przeliczamy napięcia na ciśnienie bezwzględne w hPa:
c_abs=`echo "scale=20 ;a=((($barometr_napiecie / 5.04) + 0.095) / 0.009) ;\
scale=2 ;(a * 100) / 10" |bc`
Gdzie 5.04 - to napięcie odniesienia (napięcie zasilające nasz układ).
UWAGA! To napięcie należy jak najdokładniej zmierzyć.
Poprawkę w stosunku do jakiegoś wzorcowego barometru dodajemy na końcu
obliczeń. Jeśli poprawkę zrobimy zmieniając wartość napięcia to uzyskamy
odchyłkę, która będzie rosła w miarę oddalania się od punktu w którym
skalibrowaliśmy barometr. U mnie poprawka wynosi -17,1 hPa.
c_abs - wynik - ciśnienie absolutne (bezwzględne) w hPa z
dokładnością do dwóch miejsc po przecinku.
Aby uzyskać wskazania które można porównywać z innymi stacjami meteo musimy
jeszcze przeliczyć uzyskany wynik na
ciśnienie względne (normalizowane).
c_zn=`echo "g=9.780318 * (1 + 0.0053024 * (s($fi))^2 - \
0.0000058 * (s(2 * $fi))^2) - \
0.000003085 * $nh ;\
t=((2 * ($temp + 273.15)) + ((0.6 * $nh)/100))/2 ;\
kor=e ((g * $nh)/($nR * t)) ;\
scale=2 ;($c_abs * kor * 10)/10" |bc -l`
gdzie:
fi - szerokość geograficzna w stopniach (np. 51.38)
nh - wysokość barometru w m npm (np. 52)
temp - temperatura powietrza w °C
nR="287.05" - stała gazowa
c_abs - ciśnienie absolutne (bezwzględne) - odczytane wyżej
Wynik otrzymujemy w zmiennej c_zn w hPa z dokładnością do dwóch
miejsc po przecinku (dokładność możemy dać inną wpisując właściwą zamiast
liczby "2" w "scale=2" (ostatnia linijka skryptu).
Przedstawiony sposób przeliczania uwzględnia zmianę stałej przyciągania
ziemskiego w
zależności od położenia (szerokość geograficzna) i wysokości npm, od
gęstości powietrza (temperatura) i różnicy wysokości (czyli tak jak się
to przelicza w stacjach meteo).
Można sobie również wyliczyć zmienną do zamiany ciśnienia bezwzględnego
na względne i się nie przejmować tym że będzie ciut odbiegać od
rzeczywistości przy zmianach temperatury.
Wzory
na przeliczenie ciśnienia
Domowa stacja meteo
Automatyka domowa
www.tomkii.net/tech/pomiary/ - co, jak
i czym mierzyć.
Moje forum o stacjach pogodowych forum.tomkii.net/forum-5.html
Kontakt e-mail:
Napisz@Tomkii.net
Ostatnia modyfikacja: 2011-07-07