Wszystko o czujniku ciśnienia Arduino
Jednym z głównych parametrów oceny środowiska jest ciśnienie atmosferyczne. Do jego pomiaru wykorzystywane są czujniki Arduino, które potrafią również mierzyć wysokość względem poziomu morza, a nawet przewidywać pogodę. Najpopularniejszym i najbardziej przystępnym cenowo czujnikiem do płytki Arduino jest moduł bmp280.
Treść artykułu [ukrywać] [pokazywać]
- Cechy czujników ciśnienia Arduino
- Zasada działania barometru
- Barometr elektroniczny
- Moduł VMR 280
- Jak podłączyć moduł BMP 280 do czujnika ciśnienia Arduino?
- Zasada i tryb korzystania z biblioteki
- Warianty zastosowania VMP 280
- Pomiar wysokości punktu
- Powszechnie używane czujniki
- Błędy, które mogą wystąpić podczas łączenia
- Wniosek
Cechy czujników ciśnienia Arduino
Czujnik ciśnienia to niewielkie urządzenie na bazie krzemu. Zakres jego zastosowania jest bardzo szeroki. Można je spotkać zarówno w przemyśle, jak iw życiu codziennym. Jest w stanie pracować z różnymi pomiarami (względnymi, bezwzględnymi). W takim przypadku należy wziąć pod uwagę, że wskaźnik stałego ciśnienia atmosfery nazywa się względnym, a wskaźniki w próżni nazywane są bezwzględnymi.
Głównym elementem czujnika jest komora próżniowa wykonana z tworzywa sztucznego. To w związku z tym wykonuje się wszystkie obliczenia dla pomiaru ciśnienia bezwzględnego.
O niezawodności czujnika Arduino świadczy fakt, że korzysta z nich wielu czołowych producentów sprzętu medycznego i AGD. Wraz z czujnikiem używany jest wyświetlacz LCD, na którym wyświetlane są wszystkie informacje. Do podłączenia czujnika użyj wzmacniacza operacyjnego.
Zasada działania barometru
Ciśnienie w kolumnie atmosferycznej jest mierzone za pomocą instrumentu zwanego barometrem. Wcześniej była okrągła i płaska, jak talerz, w której umieszczono rtęć i umieszczono probówkę. Jeśli ciśnienie zewnętrzne wzrosło, rtęć wewnątrz kolby również wzrosła.
Ta zasada działania jest podobna do termometru alkoholowego. Barometr aneroidowy jest bardziej zaawansowanym i bezpieczniejszym modelem, powstał później.
Dziś barometry służą nie tylko do oceny ciśnienia atmosferycznego. Jest również instalowany na różnych samolotach w celu określenia wysokości lotu. Jeśli samolot wzniesie się nad poziom morza, odczyt ciśnienia na instrumencie spada. W ten sposób okazuje się, że określa wysokość lotu.
Inną opcją korzystania z barometrów jest przewidywanie pogody w domu. W tym celu wykorzystują również wiedzę o tym, jak pogoda zależy od ciśnienia atmosferycznego. Takie urządzenia są dodatkowo wyposażone w czujniki określające temperaturę powietrza i jego poziom wilgotności.
Barometr elektroniczny
Konwencjonalne barometry są dość nieporęczne, więc ich zastosowanie w robotyce jest trudne. W tym celu stworzyli specjalne urządzenia o małych kształtach, które są podłączone do czujnika Arduino. Wiele nowoczesnych urządzeń powstaje w technologii MEMS, podobnie jak urządzenia takie jak akcelerometr czy obrotomierz żyroskopowy, gdzie wykorzystuje się efekt zmiany rezystancji materiału poddawany jest siłom odkształcającym.
Moduł VMR 280
BMP 250 to mikrochip używany do cyfrowego miernika ciśnienia atmosferycznego o wysokiej częstotliwości. Każdy czujnik na etapie jego tworzenia jest kalibrowany. Ze względu na swoje minimalne rozmiary, doskonałe możliwości pomiarowe i niski pobór mocy są często stosowane w czujnikach ciśnienia Arduino. BMP 280 posiada dwa interfejsy szeregowe służące do wymiany danych oraz 3 tryby pracy:
- WYMUSZONY. Tryb ten umożliwia uruchomienie modułu sygnalizacyjnego z zewnątrz. Po wykonaniu pomiarów przechodzi w automatyczny tryb niskiego poboru mocy.
- SPAĆ. W tym trybie pobór mocy urządzenia jest minimalny.
- NORMALNA. Po przejściu do tego trybu moduł rozpoczyna pomiary okresowe. Następnie wraca do trybu uśpienia. Specjalny program służy do ustawiania żądanej częstotliwości, z jaką należy wykonywać pomiary. Wynik można odczytać w dowolnym momencie.
Oprócz pomiaru ciśnienia atmosferycznego moduł BMP 280 może mierzyć temperaturę powietrza. Do odfiltrowania obliczeń, które wykonuje moduł, stosuje się filtr programowy z odpowiednimi ustawieniami.
Wśród głównych cech technicznych modułu BMP 280 znajdują się:
- wskaźniki napięcia zasilania na poziomie od 1,71 V do 3,6 V;
- ciśnienie atmosferyczne można mierzyć w zakresie od 300hPa do 1100hPa (takie wskaźniki są typowe dla wysokości od -500 do 9000 m n.p.m.);
- Interfejs wymiany informacji SPI o maksymalnej możliwej częstotliwości roboczej 10 MHz lub I2C ze wskaźnikiem maksymalnej możliwej częstotliwości roboczej 3,4 MHz;
- urządzenie może pracować w temperaturach nie niższych niż -40 i nie wyższych niż +85 stopni;
- rozmiar modułu to 21*18mm;
- w trybie pracy pobór prądu wynosi 2,7uA.
Jak podłączyć moduł BMP 280 do czujnika ciśnienia Arduino?
Aby podłączyć moduł do Arduino, użyj interfejsu. Może to być SPI lub I2C. Wybór konkretnego zależy od realizowanego projektu i jego specyfiki, a także od możliwości samego mikrokontrolera. Interfejs sprzętowy czujnika Arduino znajduje się na dwóch pinach: A4 i A5. Dlatego w tym trybie do połączenia używane są 4 przewody. 2 są potrzebne do zasilania modułu, a 2 kolejne służą jako magistrala informacyjna. Korzystając z interfejsu SPI, będziesz musiał użyć dodatkowych 2 przewodów.
W Internecie dostępny jest ogromny wybór różnych bibliotek służących do uproszczenia pracy z modułem. Na przykład możliwe jest zminimalizowanie czasu potrzebnego do opanowania modułu bez ograniczania jego funkcjonalności. Za pomocą takich bibliotek użytkownik otrzymuje możliwość wyboru sposobu podłączenia według własnego uznania, konfiguracji parametrów takich jak dokładność czy częstotliwość pomiarów, w oparciu o ustawiony tryb.
Zasada i tryb korzystania z biblioteki
Po zainstalowaniu wybranej biblioteki podłącza się do niej Adafruit_BMP280.h lub inne urządzenie zapewniające dostęp do interfejsów. Wtedy proces wygląda tak:
- Utworzona zostaje instancja Adafruit_BMP280. Konieczne jest uzyskanie pełnego dostępu do różnych funkcji i możliwości czujnika mierzącego ciśnienie atmosferyczne. Można go utworzyć na kilka sposobów, w zależności od rodzaju połączenia (poprzez magistralę I2C, sprzętowe lub programowe SPI).
- Korzystając z obiektu bmp, możesz rozpocząć pracę z opcjami i funkcjami biblioteki. Jednak moduł jest inicjowany jako pierwszy. Najlepszym sposobem na to jest użycie funkcji setup(), która jest używana przed główną pętlą.
- Gdy pojawi się informacja o błędzie, sprawdzana jest poprawność połączenia. Ponadto zaleca się sprawdzenie zgodności używanego interfejsu. Jeśli inicjalizacja się powiedzie, następuje przejście do układu BMP280. Biblioteka posiada do tego funkcję setSampling(...). Za jego pomocą użytkownik będzie mógł ustawić niezbędne parametry, m.in. (czas działania czujnika, parametry pomiaru ciśnienia atmosferycznego, stopień filtracji, temperaturę powietrza).
Funkcja setSampling(...) ma kilka parametrów. Pierwszy z nich kontroluje tryb pracy urządzenia, z których są cztery:
- MODE_NORMAL - cykliczne wyjście z trybu uśpienia po określonym przez użytkownika czasie. Następnie pobierane są wskaźniki, które pozostają w pamięci, a samo urządzenie ponownie przechodzi w tryb uśpienia.
- MODE_SLEEP - tryb, w którym urządzenie jest w trybie uśpienia przy minimalnym zużyciu energii.
- MODE_FORCED - po ustawieniu tego trybu urządzenie rozpocznie pomiary po otrzymaniu polecenia z Arduino, po czym nastąpi przejście w tryb uśpienia.
- MODE_SOFT_RESET_CODE - ustawienie tego trybu spowoduje zresetowanie wszystkich ustawień fabrycznych.
Poniższe dwa parametry są niezbędne do dokładnego pomiaru ciśnienia atmosferycznego i temperatury powietrza. Czwarty tryb jest niezbędny do filtrowania pomiarów. Piąty odpowiada za aktywację urządzenia do pomiarów.
Warianty zastosowania VMP 280
Moduł można wykorzystać na wiele sposobów. Najczęściej służy do określenia wysokości podczas lotu lub głębokości, na przykład podczas opuszczania do kopalni. Jednak jego głównym celem jest pozyskiwanie danych ze stacji pogodowej. Mając pewną wiedzę i umiejętności, można go wykorzystać do stworzenia domowej stacji pogodowej z późniejszym wyprowadzaniem otrzymanych danych na wyświetlacz LCD telefonu komórkowego.
Pomiar wysokości punktu
Inną opcją wykorzystania czujnika ciśnienia Arduino jest pomiar wysokości punktu lub obiektu nad poziomem morza. Biorąc pod uwagę, że średnie ciśnienie bezpośrednio na poziomie morza wynosi 1013 hPa. Wraz ze wzrostem wysokości o 1 metr wartość ta wzrasta o 0,11 hPa. Zatem jeśli od otrzymanego w wyniku pomiaru wskaźnika odejmuje się 1013, a następnie wynik dzieli przez 0,11, otrzymamy liczbę równą wysokości.
Powszechnie używane czujniki
Oprócz BMP 280 istnieją inne czujniki. BMP 180 i bme280 są szeroko stosowane.
Główne cechy VMP 180:
- czas odpowiedzi urządzenia wynosi 4,5 ms;
- możliwość pomiaru poziomu ciśnienia atmosferycznego w zakresie od 225 do 825 mm Hg;
- obsługa interfejsu I2C;
- wartość napięcia zasilania wynosi od 3,3 do 5 V.
Ten czujnik zawiera 3 różne urządzenia, które oprócz ciśnienia atmosferycznego mogą również określać inne wskaźniki, w tym temperaturę i wilgotność otaczającego powietrza. Charakteryzuje się zwiększoną niezawodnością, niskim poborem prądu (0,5 mA) oraz stabilną długotrwałą pracą.
BME280 ma następujące cechy:
- w trybie czuwania pobór prądu wynosi 0,1 μA;
- poziom napięcia w zakresie od 1,7 do 3,6V;
- urządzenie jest umieszczone w metalowej obudowie z ośmioma wylotami;
- Czujnik obsługuje kilka interfejsów, w tym SPI i I2C.
Porównując trzy wymienione modele, uznawane za najpopularniejsze wśród użytkowników czujników dla Arduino, można zauważyć między nimi wiele wspólnych cech. Zasadniczo różnice te dotyczą konstrukcji i wielkości urządzeń. Model bme280 posiada również dodatkowy czujnik, który może mierzyć wilgotność powietrza.
Błędy, które mogą wystąpić podczas łączenia
Najczęściej użytkownicy borykają się z problemem nieprawidłowej temperatury powietrza i ciśnienia atmosferycznego. Co więcej, mogą różnić się od rzeczywistych o kilka punktów jednocześnie. W większości przypadków przyczyną tego jest złe podłączenie czujnika ciśnienia Arduino. Na przykład biblioteka wymaga połączenia modułu przez I2C, ale została wyprodukowana przez SPI.
Użytkownicy korzystający z czujników niskiej jakości od nieznanych producentów mogą napotkać problem z niestandardowymi adresami SPI lub I2C. W takich sytuacjach zaleca się przeskanowanie wszystkich urządzeń podłączonych do czujnika za pomocą dowolnego z popularnych szkiców. Pozwoli to zrozumieć, na który z adresów odpowiada dany czujnik ciśnienia.
Problemy, z jakimi borykają się użytkownicy, to także rozbieżność między trybem pracy napięciowej modułu a trybem głównym sterownika. Na przykład dla czujnika 3,3 V musisz stworzyć dzielnik napięcia. Również gotowy poziom do dopasowania poziomów pomoże rozwiązać problem. Ich ceny są przystępne dla każdego.
Czasami pojawiają się drobne odchylenia spowodowane kalibracją czujnika. Na przykład podczas korzystania z modułu BMP180 wartości są obliczane i wyświetlane na szkicu. Aby uzyskać najdokładniejszy odczyt, powinieneś znać wskaźnik nacisku dla żądanych współrzędnych, w zależności od wysokości punktu.
Wniosek
Rozważane czujniki ciśnienia Arduino są popularnym urządzeniem służącym do pomiaru ciśnienia atmosferycznego. Zakres ich zastosowania jest dość obszerny. Oprócz monitorowania stanu ciśnienia atmosferycznego służą do wyznaczania współrzędnych nad poziomem morza czy wskaźników głębokości np. podczas schodzenia do kopalni. Działanie urządzenia zależy od podłączonego do niego modułu. Wybór takich urządzeń jest dość duży. Najpopularniejsze z nich to BMP 180, BMP 280 i bme 280.