Czujnik ciśnienia atmosferycznego.

mihu
Posty: 147
Rejestracja: śr lut 28, 2018 6:00 pm

czw lut 14, 2019 9:10 pm

wojtas567 pisze:
czw lut 14, 2019 3:53 pm
Jeżeli masz czujnik BMP to powinieneś mieć w tych wpisach:

Kod: Zaznacz cały

pressure = (bmp.readPressure() +10)/ 100.0F
nie pomogło

dopiero wyrównałem bmp tak
pressure = bme.readPressure() / 98.8F;
i jest ok
a w bme wpisałem pozycje m.n.p.n 1200 i też jest już ok
Awatar użytkownika
makrz
Posty: 310
Rejestracja: wt lis 27, 2018 1:43 pm
Lokalizacja: Opole

pn mar 25, 2019 7:50 am

lesny8 pisze:
wt lut 12, 2019 8:21 pm
Na stronie konfiguracyjnej modułu masz pole do podania wysokości na jakiej dokonujesz pomiaru
kalibracja.jpg

Swoją drogą, to ja wyświetlam sobie ciśnienie bezwzględne ;)
Obrazek

Witam
Czy po wpisaniu wysokości n.p.m. ma być wyświetlane ciśnienie zredukowane do poziomu morza?
Jeżeli tak to nie działa tak jak powinno.

Tutaj fragment kodu @ Robert Błaszczak wraz z odnośnikami do wzorów

Kod: Zaznacz cały

// calculate relative sea level pressure from absolute station pressure in hPa
// temperature in �C, elevation in m
// http://www.sandhurstweather.org.uk/barometric.pdf
// http://keisan.casio.com/exec/system/1224575267
// *******************************************************
float calculateSeaLevelPressure(float celsius, float stationPressure, float elevation)
{
  float slP = stationPressure / pow(2.718281828, -(elevation / ((273.15 + celsius) * 29.263)));
  return slP;
} // calculateSeaLevelPressure()
Wtedy wyświetla ciśnienie zredukowane do p.m.
Awatar użytkownika
lesny8
Posty: 1310
Rejestracja: pn gru 11, 2017 9:43 pm

pn mar 25, 2019 10:40 am

makrz pisze:
pn mar 25, 2019 7:50 am
Witam
Czy po wpisaniu wysokości n.p.m. ma być wyświetlane ciśnienie zredukowane do poziomu morza?
Tak, jest to wtedy ciśnienie względne.
makrz pisze:
pn mar 25, 2019 7:50 am
Jeżeli tak to nie działa tak jak powinno.
Nie analizowałem tego, bo u siebie wyświetlam ciśnienie bezwzględne zmierzone przez czujnik. Kod nie jest mój a kolegi @Yepestis o czym w tym poście napisałem, a skąd on to brał nie mam pojęcia.
Nie wykluczam błędu podczas wyliczania wartości względnej, bo trzeba jeszcze uwzględniać temperaturę jaka panuje, a tam chyba tego nie ma.
makrz pisze:
pn mar 25, 2019 7:50 am
Tutaj fragment kodu @ Robert Błaszczak wraz z odnośnikami do wzorów

Kod: Zaznacz cały

// calculate relative sea level pressure from absolute station pressure in hPa
// temperature in �C, elevation in m
// http://www.sandhurstweather.org.uk/barometric.pdf
// http://keisan.casio.com/exec/system/1224575267
// *******************************************************
float calculateSeaLevelPressure(float celsius, float stationPressure, float elevation)
{
  float slP = stationPressure / pow(2.718281828, -(elevation / ((273.15 + celsius) * 29.263)));
  return slP;
} // calculateSeaLevelPressure()
Wtedy wyświetla ciśnienie zredukowane do p.m.
Nie zagłębiałem się w temacie, ale możesz to zweryfikować modyfikując kod w oparciu o przytoczone wzory.
Awatar użytkownika
makrz
Posty: 310
Rejestracja: wt lis 27, 2018 1:43 pm
Lokalizacja: Opole

pn mar 25, 2019 12:13 pm

Nie zagłębiałem się w temacie, ale możesz to zweryfikować modyfikując kod w oparciu o przytoczone wzory.
Mógłbym gdybym umiał. :oops:

A kod jest tu

Kod: Zaznacz cały

float calculateSeaLevelPressure(float celsius, float stationPressure, float elevation)
{
  float slP = stationPressure / pow(2.718281828, -(elevation / ((273.15 + celsius) * 29.263)));
  return slP;
Yepestis
Posty: 270
Rejestracja: pn wrz 24, 2018 6:08 pm
Lokalizacja: Wrocław

pn mar 25, 2019 2:58 pm

Kod jest od kolegi wojtas567
viewtopic.php?f=11&t=4060&hilit=All+czujników
I z tego co pamiętam wyglądał inaczej a może sam dokonałam jakichś zmian teraz już nie jestem pewien.
Sprawdzę w wolnej chwili.
Awatar użytkownika
wojtas567
Posty: 2014
Rejestracja: ndz kwie 03, 2016 7:16 pm
Lokalizacja: Olsztyn

pn mar 25, 2019 4:04 pm

Ok, no dobra nie będę dalej odpychał :) może jutro uda mi się wieczorem zerknąć i to połączyć.
Mam jeszcze pytanie do kolegi @makrz masz cały kod?
Pozdrawiam
Wojtek
Awatar użytkownika
makrz
Posty: 310
Rejestracja: wt lis 27, 2018 1:43 pm
Lokalizacja: Opole

pn mar 25, 2019 4:38 pm

wojtas567 pisze:
pn mar 25, 2019 4:04 pm
Ok, no dobra nie będę dalej odpychał :) może jutro uda mi się wieczorem zerknąć i to połączyć.
Mam jeszcze pytanie do kolegi @makrz masz cały kod?
Tak.
To kod kolegi @Robert Błaszczak.
Jest tutaj.
Yepestis
Posty: 270
Rejestracja: pn wrz 24, 2018 6:08 pm
Lokalizacja: Wrocław

pn mar 25, 2019 8:10 pm

U mnie to wyglądało tak:

Kod: Zaznacz cały

 // korekta uwzględniająca wysokość na jakiej znajduje się czujnik co do poziomu morza
 t = (bme.readPressure() + Odczytaj_zakres_eeprom(EEPROM_HIGHTCAL, MAX_HIGHTCAL).toFloat()) / 100.0F; 
Skoro kod kolegi @Robert Błaszczak jest prawidłowy to u mnie jest źle. Przyznam że nie wiem jak to się przelicza.
Awatar użytkownika
Robert Błaszczak
Posty: 1470
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontaktowanie:

pn mar 25, 2019 8:29 pm

Kalkulator jest np. tu: https://stacje-pogody.pl/cisnienie.php

Opis, jak obliczyć ciśnienie względne: http://stacjepogody.waw.pl/index.php?topic=4.0
Pozdrawiam
Robert Błaszczak

Strona prywatna: https://www.blaszczak.pl
Jakość powietrza: https://robert.aqi.eco
Awatar użytkownika
wojtas567
Posty: 2014
Rejestracja: ndz kwie 03, 2016 7:16 pm
Lokalizacja: Olsztyn

śr mar 27, 2019 4:23 pm

Sprawdźcie czy działa

Kod: Zaznacz cały

float elevation = 130.1;  // wysokość npm na jakim znajduje się czujnik
a w odczycie temperatury:

Kod: Zaznacz cały

         t = bme.readPressure() / pow(2.718281828, -(elevation / ((273.15 + bme.readTemperature()) * 29.263))) / 100.0F;
aktualizacja

Po testach mogę powiedzieć, że u mnie działa przynajmniej zmienia się wartość przy 30 st miałem ok. 1024, a przy 10 - 1026 hPa :)
Pozdrawiam
Wojtek
ODPOWIEDZ

Wróć do „Android”