Czujnik ciśnienia atmosferycznego.

mihu
Posty: 159
Rejestracja: śr lut 28, 2018 6:00 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: 395
Rejestracja: wt lis 27, 2018 1:43 pm
Lokalizacja: Opole

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: 2808
Rejestracja: pn gru 11, 2017 9:43 pm

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.
Czekam na kolejne Supla Offline Party 👍
Awatar użytkownika
makrz
Posty: 395
Rejestracja: wt lis 27, 2018 1:43 pm
Lokalizacja: Opole

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: 605
Rejestracja: pn wrz 24, 2018 6:08 pm
Lokalizacja: Wrocław

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: 2209
Rejestracja: ndz kwie 03, 2016 7:16 pm
Lokalizacja: Olsztyn

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: 395
Rejestracja: wt lis 27, 2018 1:43 pm
Lokalizacja: Opole

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: 605
Rejestracja: pn wrz 24, 2018 6:08 pm
Lokalizacja: Wrocław

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: 3970
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontakt:

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


Moja prywatna strona: www.blaszczak.pl
Awatar użytkownika
wojtas567
Posty: 2209
Rejestracja: ndz kwie 03, 2016 7:16 pm
Lokalizacja: Olsztyn

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”