BME280 – czujnik temperatury, wilgotności oraz ciśnienia (część 1)

Stacje pogodowe, obok termometrów, wzmacniaczy czy zegarów, są najczęściej samodzielnie projektowanym i wykonywanym przez hobbystów urządzeniem. Nie ma nic w tym dziwnego, bo pomiar temperatury, ciśnienia atmosferycznego oraz wilgotności jest bardzo przydatny w codziennym życiu. Ale podobne pomiary wykonują nie tylko domowe stacje pogodowe. Pomiar ciśnienia jest jedną z prostszych metod określania wysokości względem układu odniesienia, na przykład płyty lotniska. Mierząc zmiany ciśnienia atmosferycznego można określić także prędkość pionową (wznoszenia lub opadania) – ten sposób stosuje się w lotnictwie, a także w dronach. Pomiar ciśnienia jest też wykorzystywany w urządzeniach medycznych, na przykład w spirometrach w czasie wyznaczania objętości płuc. Naturalnym zastosowaniem czujnika są też układy sterowania domową automatyką ogrzewania, klimatyzacją oraz wentylacją w inteligentnych domach, układach sterowników pieców grzewczych itp.

Czujniki pomiarowe przekształcają mierzone wielkości ciśnienia, wilgotności, a także temperatury na sygnał elektryczny. Może to być zmiana napięcia proporcjonalna do zmian mierzonej wartości, lub zmiana rezystancji i w konsekwencji również napięcia. Sygnał napięciowy z czujnika można mierzyć przetwornikami analogowo-cyfrowymi, a potem cyfrowo obrabiać i wyświetlać. Jednym z problemów pomiarowych są odchyłki od liniowej charakterystyki przetwarzania w całym zakresie pomiarowym, a co za tym idzie degradacja precyzji pomiaru. Cyfrowa reprezentacja wielkości mierzonej pozwala na relatywnie prostą kompensację pomiaru na podstawie danych kalibracyjnych dostarczanych razem z czujnikiem lub wyznaczanych samodzielnie.

Od jakiegoś czasu stosowane są czujniki z cyfrowymi interfejsami komunikacyjnymi (SPI, I2C, 1-wire itp.). Wtedy konwersja analogowo-cyfrowa jest wykonywana przez dedykowany przetwornik analogowo-cyfrowy umieszczony w strukturze sensora, a wynik konwersji można odczytać przez interfejs komunikacyjny. Konwersja analogowo-cyfrowa jest również obarczona błędami, w tym błędami nieliniowości. Producent sensora zna charakterystyki swojego czujnika oraz przetwornika i może uzyskać lepsze parametry pomiaru niż w układach z uniwersalnymi przetwornikami stosowanymi w mikrokontrolerach.

Właściwości czujnika BME280

Na rynku jest oferowanych bardzo dużo czujników z wyjściami analogowymi lub cyfrowymi. Większość potrafi mierzyć tylko temperaturę, ale są też takie, które mierzą jednocześnie temperaturę, ciśnienie i wilgotność. Jednym z nich jest czujnik BME280 oferowany przez firmę BOSCH Sensortec.

BME280 jest umieszczony w metalowej obudowie o wymiarach 2,5 x 2,5 mm i wyprowadzeniami LIG – rysunek 1.

Rysunek 1. Obudowa i wyprowadzenia BME280

Tak małe wymiary i wyprowadzenia są przeznaczone do profesjonalnego montażu, więc bardzo utrudniają stosowanie w konstrukcjach amatorsko-hobbystycznych. Jednak sensor ten stał się na tyle popularny, że pojawiły się minimoduły w postaci małych płytek z przylutowanym układem i łatwymi do wykorzystania wyprowadzeniami. Jeden z takich minimodułów został pokazany na rysunku 2.

Rysunek 2. Minimoduł z układem BME280

Sensor BME280 przy zasilaniu w zakresie od +1,7 V do +3,6 V charakteryzuje się małym poborem energii:

  • 1,8 µA przy pomiarze wilgotności i temperatury co 1 sekundę,
  • 2,8 µA przy pomiarze ciśnienia i temperatury co 1 sekundę,
  • 3,6 µA przy pomiarze wilgotności, temperatury i ciśnienia co 1 sekundę.

Czujniki temperatury, ciśnienia i wilgotności mogą być niezależnie programowo wyłączane. Przy wyłączeniu wszystkich czujników pobór prądu spada do 0,1 µA. Może być więc stosowany w układach zasilanych bateryjnie, na przykład w urządzeniach brzegowych IoT.

Zakresy pomiarowe wyglądają następująco:

  • Temperatura: pełny zakres pomiarowy: -40 …+85 ̊C. Zakres pomiaru z największą dokładnością: 0…65 ̊C. Dokładność pomiaru: +/- 0,5 ̊C dla +25 ̊C, rozdzielczość pomiaru: 0,01 ̊C. Pomiar temperatury jest stosowany do kompensacji pomiarów ciśnienia i wilgotności, ale może być też użyty do pomiaru temperatury otoczenia.
  • Wilgotność: 0…100%, czas pomiaru: 1 sekunda. Pełny zakres pomiarowy dostępny w temperaturze 0…..+60 ̊C, dokładność pomiaru +/-3%.
  • Ciśnienie: 300…1100 hPa, dokładność pomiaru +/-1  hPa

Dokładne dane techniczne zawierające między innymi informacje na temat nieliniowości pomiaru, szumów, dryftów itp. można znaleźć w dokumentacji układu.

Schemat blokowy i zasada działania

Na rysunku 3 pokazano schemat blokowy sensora. Wydzielono tu trzy niezależne tory czujników przekształcających ciśnienie, temperaturę i wilgotność na sygnał napięciowy. Każdy z sygnałów napięciowych jest kolejno konwertowany przez jeden wspólny przetwornik analogowo-cyfrowy.

Rysunek 3. Schemat blokowy układu BME280

Dane z wyjścia ADC są kierowane do bloku logiki, a z niego trafiają do układów interfejsu komunikacyjnego. Układ oscylatora OSC generuje sygnał zegara taktującego pracą układu, układ POR jest przeznaczony do generowania sekwencji zerowania w trakcie załączania napięcia zasilającego. W bloku nieulotnej pamięci NVM są zapisane dane przeznaczone do wyliczania kompensacji pomiarów.

Czujnik BME280 można znaleźć w sklepie Kamami.pl. Oferta obejmuje również moduły z zamontowanym sensorem.

O autorze

Absolwent Wydziału Elektroniki Politechniki Wrocławskiej, współpracownik miesięcznika Elektronika Praktyczna, autor książek o mikrokontrolerach Microchip i wyświetlaczach graficznych, wydanych nakładem Wydawnictwa BTC.
Zawodowo zajmuje się projektowaniem zaawansowanych systemów mikroprocesorowych.