Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pomiar wysokości nad poziomem morza na podstawie ciśnienia i temperatury

ghost666 08 Paź 2019 19:06 1356 5
  • Pomiar wysokości nad poziomem morza na podstawie ciśnienia i temperatury
    W wielu projektach, takich jak latające roboty, stacje pogodowe, czy systemy do wyznaczania tras, urządzenia sportowe itp bardzo ważny jest pomiar ciśnienia oraz wysokości nad poziomem morza. W poniższym artykule opisujemy jak korzystać z czujnika BMP180, który jest jednym z najczęściej używanych czujników do pomiaru ciśnienia.

    Czego nauczysz się z tego projektu:

    * Czym jest ciśnienie barometryczne.
    * Czym jest czujnik ciśnienia BOSCH BMP180.
    * Jak korzystać z czujnika ciśnienia BOSCH BMP180 z Arduino.

    Pomiar wysokości nad poziomem morza na podstawie ciśnienia i temperatury
    Krok 1: Co to jest ciśnienie barometryczne?

    Ciśnienie barometryczne lub ciśnienie atmosferyczne to siła atmosfery działająca na ciała na danej wysokości. Wynika ono z ciężaru powietrza nad powierzchnią ziemi. Ciśnienie to wynosi około 1 kg na centymetr kwadratowy na poziomie morza.

    Istnieje kilka jednostek, wykorzystywanych do wyrażenia ciśnienia atmosferycznego, które można łatwo konwertować. Jednostką SI, używaną do pomiaru ciśnienia jest Pascal (Pa).

    Ciśnienie barometryczne ma w przybliżeniu odwrotnie liniowy stosunek do wysokości nad poziomem morza, więc jeśli zmierzymy ciśnienie barometryczne jakiegoś miejsca, możemy obliczyć wysokość nad poziomem morza za pomocą prostej operacji matematycznej.

    Pomiar wysokości nad poziomem morza na podstawie ciśnienia i temperatury
    Krok 2: Moduł GY-68 z czujnikiem ciśnienia BOSCH BMP180

    Jednym z najczęściej wykorzystywanych czujników do pomiaru ciśnienia i wysokości jest BOSCH BMP180. Najważniejsze cechy tego modułu to:

    * Zakres pomiaru ciśnienia od 300 do 1100 hPa
    * Dokładność pomiaru -0,1 hPa dla ciśnienia bezwzględnego
    * Dokładność pomiaru 12 hPa dla ciśnienia względnego
    * Niski pobór mocy (5μA w trybie standardowym - jedna próbka na sekundę)
    * Wewnętrzny czujnik temperatury o dokładności do 0,5 ° C
    * Obsługa protokołu I²C do komunikacji
    * W pełni fanrycznie skalibrowany

    Krok 3: Wymagane materiały

    Do wykorzystania sensora potrzebować będziemy:

    * Moduł Arduino UNO R3
    * Sensor BOSH BMP180
    * Przewody połączeniowe

    Dodatkowo muismy dysponować komputerem z zainstalowanym Arduino IDE.

    Krok 4: Jak używać czujnika ciśnienia GY-68 BMP180 z Arduino?

    Czujnik ten jest dostępny jako moduł dla łatwego użytkowania. Główne części modułu czujnika BMP180 to:

    Sam czujnik BMP180:

    Pomiar wysokości nad poziomem morza na podstawie ciśnienia i temperatury


    Stabilizator napięcia 3,3 V. Ten układ pozwala podłączyć moduł do 5 V:

    Pomiar wysokości nad poziomem morza na podstawie ciśnienia i temperatury


    Rezystory podciągające, potrzebne do prawidłowej komunikacji interfejsu I²C:

    Pomiar wysokości nad poziomem morza na podstawie ciśnienia i temperatury


    Sensor bardzo łatwo podłączyć do różnych modułów z pomocą interfejsu I²C:

    Pomiar wysokości nad poziomem morza na podstawie ciśnienia i temperatury


    Pomiar wysokości nad poziomem morza na podstawie ciśnienia i temperatury
    Krok 5: Układ

    Na zdjęciu po lewej stronie pokazano schemat połączeń modułu z sensorem z płytką Arduino. Jeśli już połączymy układy ze sobą, musimy pobrać bibliotekę BMP180_Breakout_Arduino_Library do obsługi naszego sensora. Tutaj znaleźć można link do repozytorium w którym znajduje się biblioteka.

    Krok 6: Obliczanie ciśnienia bezwzględnego dla różnych jednostek i wysokości nad poziomem morza

    Prześledźmy dokładnie proces obliczania ciśnienia i na jego podstawie wysokości nad poziomem morza:

    Zgodnie z algorytmem w linkowanej bibliotece zaczynamy od obliczenia temperatury. Aby uzyskać ten pomiar z układu korzystamy z funkcji startTemperature(), a następnie przechowujemy jej wartość w zmiennej T, zapisując ją tam za pomocą getTemperature(T).

    Następnie uruchamiamy pomiar ciśnienia za pomocą startPressure(3). Liczba 3 oznacza maksymalną rozdzielczość. Można ją zmieniać między 0 a 3. Za pomocą getPressure(P) przechwytujemy wartość ciśnienia bezwzględnego i zapisujemy ją w zmiennej P. Wartość tego ciśnienia wyrażona jest w hPa, którą można skonwertować na różne inne jednostki.

    Ciśnienie bezwzględne zmienia się wraz z wysokością. Aby usunąć wpływ wysokości na obliczone ciśnienie, należy użyć funkcji Sealevel (P, ALTITUDE). Wylicza ona ciśnienie na poziomie morza, zgodnie z wysokością punktu pomiaru, zapisaną w zmiennej ALTITUDE. Wynik zapisany jest w zmiennej p0. Z kolei wykorzystując zmienną funkcję można obliczyć wysokość na jakiej się znajdujemy.

    Źródło: https://www.instructables.com/id/Determining-the-Pressure-and-Altitude-Using-GY-68-/

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 napisał 9415 postów o ocenie 7062, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • #2
    khoam
    Poziom 34  
    ghost666 napisał:
    Tutaj znaleźć można link do repozytorium w którym znajduje się biblioteka.

    Sorry, ale:
    "NOTE: This product has been retired from our catalog. If you are looking for more up-to-date info, please check out some of these resources to see how other users are still hacking and improving on this product."
  • #3
    ghost666
    Tłumacz Redaktor
    khoam napisał:
    ghost666 napisał:
    Tutaj znaleźć można link do repozytorium w którym znajduje się biblioteka.

    Sorry, ale:
    "NOTE: This product has been retired from our catalog. If you are looking for more up-to-date info, please check out some of these resources to see how other users are still hacking and improving on this product."


    Tak, Sparkfun wycofało modulik, ale sam BMP180 jeszcze w produkcji jest (mimo EoL) - https://www.bosch-sensortec.com/bst/products/all_products/bmp180
  • #4
    fotomh-s
    Poziom 21  
    ghost666 napisał:
    takich jak latające roboty

    Raczej bezzałogowe aparaty latające (lub bezzałogowe statki powietrzne). Coraz bardziej irytuje mnie nazywanie wszystkiego co się rusza i nie jest biologiczne robotami.
    Ponadto nie tylko bezzałogowe, nikt nie broni nikomu montowania takich urządzeń np. w pełnowymiarowym szybowcu, albo np. paralotni.

    Generalnie wszystko co lata. Wysokościomierze barometryczne są prawie tak stare jak samo lotnictwo, jeden z pierwszych przyrządów. Oczywiście takie moduły raczej nie będą stosowane w profesjonalnej awionice, jednak jako dodatek np. w takim szybowcu to czemu nie. Można i na tym zrobić dodatkowy wariometr (w szybowcach czasami montuje się 2, jeden jest "normalny" a drugi to wariometr energii całkowitej).
  • #5
    ORMO_PL
    Poziom 19  
    Fajnie, że ktoś poruszył tę tematykę.

    Wszystkich zainteresowanych informuję, że służby kontroli ruchu lotniczego lubią wiedzieć co lata w danym rejonie. Przydał by się tracking GPSowy wraz z wysokością w ramce, by KRL wiedzieli jak separować statki powietrzne.

    Teraz - odnośnie już samej interpretacji. Zainteresowanym polecam zapoznać się z Międzynarodową Atmosferą Wzorcową ISA, ciśnieniami QNH, QNE, QFE, STD, pionowym gradientem temperatury i ciśnienia. Te pojęcia pozwolą interpretować wysokości "po lotniczemu" niosąc za tym zadowalającą dokładność.
    No i oczywiście stopy, nie metry ;)
  • #6
    RaStro
    Poziom 13  
    ghost666 napisał:
    khoam napisał:
    ghost666 napisał:
    Tutaj znaleźć można link do repozytorium w którym znajduje się biblioteka.

    Sorry, ale:
    "NOTE: This product has been retired from our catalog. If you are looking for more up-to-date info, please check out some of these resources to see how other users are still hacking and improving on this product."


    Tak, Sparkfun wycofało modulik, ale sam BMP180 jeszcze w produkcji jest (mimo EoL) - https://www.bosch-sensortec.com/bst/products/all_products/bmp180


    No tak ale też są BMP280 i BMP388 - które nie są oznaczone EoL ;) Wiem że to tłumaczenie, ale po co tłumaczyć jakieś starocie bez zadania sobie odrobiny trudu żeby wspomnieć o następcach wycofywanego produktu?