- zakres obliczanej wysokości nad poziomem morza: 0…9000 m, z rozdzielczością 0,1 m,
- zakres pomiarowy ciśnienia atmosferycznego: 300…1100 hPa, z rozdzielczością 1 hPa i dokładnością ±1,7 hPa,
- zakres pomiarowy wilgotności powietrza: 0…100%, z rozdzielczością 1% i dokładnością ±3%,
- zakres pomiarowy temperatury otoczenia: 0…85°C, z rozdzielczością 0,1°C i dokładnością ±0,5°C,
- zakres regulacji ciśnienia: 900…1100 hPa, z rozdzielczością 1 hPa,
- napięcie zasilania (jeśli nie korzystamy z baterii): 0,9…5,5 V,
- pobór prądu z baterii zasilającej (uśpienie/praca): 9 μA/15 mA.
Zanim przejdę do opisu urządzenia, kilka słów należy napisać o samym ciśnieniu atmosferycznym, którego pomiar stoi u podstaw działania urządzenia. Z definicji, ciśnienie atmosferyczne jest stosunkiem wartości siły, z jaką słup powietrza atmosferycznego naciska na powierzchnię Ziemi, do powierzchni, na jaką ten słup naciska. Wynika z tego, że dla przykładu ciśnienie atmosferyczne w górach jest niższe, a na nizinach wyższe, ponieważ słup powietrza w tych rejonach ma różne wysokości.
Aby zmierzyć wysokość nad poziomem morza, na jakiej się znajdujemy, niezbędny jest dokładny element pomiarowy pozwalający na pomiar ciśnienia atmosferycznego. Tym razem wybór tego elementu był oczywisty. Jako że w EP 10/2019 opisałem projekt niewielkiej stacji pogodowej, zawierającej scalony barometr pod postacią układu scalonego firmy Bosch Sensortec o oznaczeniu BME280, także i tym razem pokuszę się o zastosowanie tego ciekawego elementu. Najbardziej optymalny będzie gotowy moduł, co w zamyśle ma ułatwić montaż urządzenia, gdyż sam scalak umieszczono w obudowie LGA, której implementacja mogłaby nastręczać wielu problemów w warsztacie typowego amatora.
Czujnik BME280
Przede wszystkim należy zwrócić uwagę na fakt, aby nie pomylić modułu z układem BME280 ze znacznie tańszym i starszym (a wizualnie identycznym) modułem z układem BMP280, gdyż ten ostatni nie wspiera pomiaru wilgotności powietrza. Układ BME280 jest scalonym, specjalizowanym przetwornikiem pozwalającym na pomiar bezwzględnego ciśnienia atmosferycznego, wilgotności powietrza i temperatury charakteryzującym się następującymi, wybranymi cechami użytkowymi:
- pomiar ciśnienia atmosferycznego (300…1100 hPa), temperatury otoczenia (–40…85°C) i wilgotności (0…100%),
- szeroki zakres napięć zasilania 1,7...3,6 V,
- niski pobór prądu rzędu 3,6 μA/pomiar,
- wysoka dokładność pomiaru oraz niski poziom szumów,
- szybka magistrala I²C z dopuszczalną prędkością sygnału zegarowego, dochodzącą do 3,4 MHz,
- szybka magistrala SPI z dopuszczalną prędkością sygnału zegarowego, dochodzącą do 10 MHz,
- małe wymiary obudowy typu LGA 2,5×2,5 mm.
Powyższe parametry użytkowe idealnie wpisują się w założenia naszego projektu, dostarczając, niejako ekstra, dwie dodatkowe wielkości fizyczne. Jak to zwykle bywa, obsługa peryferiów tego typu polega na zapisie/odczycie wielu, specjalnych rejestrów konfiguracyjnych lub też rejestrów danych, przy udziale których, po pierwsze, możemy zainicjować proces pomiarowy, a po drugie, dokonać odczytu interesujących nas wartości surowego ciśnienia atmosferycznego, wilgotności i temperatury otoczenia. Dlaczego używam słowa surowego? Otóż każdy element BME280 przechodzi na etapie produkcji proces kalibracji, który zapewnia osiągnięcie założonej dokładności pomiarów, niezależnie od właściwości elementu piezorezystancyjnego, który stanowi w nim przetwornik ciśnienia na napięcie. Proces ten kończy się ustaleniem szeregu (dokładnie osiemnastu) specjalnych współczynników korekcyjnych (zapisanych w nieulotnej pamięci EEPROM elementu), dzięki którym możliwe staje się obliczenie skompensowanej wartości ciśnienia atmosferycznego, wilgotności i temperatury. Jest to dość typowe rozwiązanie stosowane przez wielu producentów w przypadku elementów tego rodzaju, które przechodzą proces kalibracji na ostatnim etapie produkcji. Biorąc to pod uwagę, pierwszą czynnością, jaką należy wykonać w przypadku obsługi układu BME280, jest odczyt osiemnastu, 16- i 8-bitowych rejestrów, które przechowują wartości współczynników korekcyjnych. Następnie wysyłamy do układu BME280 rozkaz inicjujący pomiary, by po pewnym czasie odczytać surowe (czyli nieskompensowane) wartości interesujących nas parametrów. Dalej, na podstawie dość skomplikowanych wzorów dostarczonych przez producenta układu, obliczamy wartości skompensowanego ciśnienia atmosferycznego, wilgotności i temperatury otoczenia.