- Wymagane składniki
- Moduł czujnika ciśnienia BMP280:
- Schemat podłączenia do interfejsu BMP280 z Arduino:
- Program Arduino do interfejsu BMP280 z Arduino:
- Działanie projektu interfejsu czujnika ciśnienia Arduino BMP280
Jeśli chcesz zbudować własny system monitorowania temperatury lub zmierzyć wysokość swojego drona lub po prostu chcesz zmierzyć ciśnienie atmosferyczne w Twojej okolicy, to jednym z najlepszych modułów do wykorzystania w Twoim projekcie jest moduł czujnika ciśnienia BMP280. BMP280 to czujnik do monitorowania ciśnienia bezwzględnego i temperatury będący ulepszoną wersją czujników BMP085, BMP180, BMP183. Dlaczego nazywa się to uaktualnioną wersją? Zostanie to omówione w następnych rozdziałach. Użyliśmy już starszej wersji BMP180 z Arduino w jednym z naszych poprzednich tutoriali.
Moduł czujnika BMP280 może być używany razem z mikrokontrolerami takimi jak Arduino, PIC, AVR itp. W tym projekcie zamierzamy wykorzystać Arduino Uno z BMP280 wraz z modułem wyświetlacza LCD 16x2 do wyświetlania wartości temperatury i ciśnienia. Przed połączeniem BMP280 z Arduino, musimy pobrać bibliotekę BMP280 Arduino, która jest rozwijana przez Adafruit. Kliknij łącze do biblioteki Adafruit BMP280, aby otworzyć odpowiednią stronę Github i dodać plik nagłówkowy do swojego Arduino IDE.
Wymagane składniki
- Arduino
- BMP280
- Podłączanie przewodów
- Deska do chleba
- LCD - 16x2
Moduł czujnika ciśnienia BMP280:
Moduł czujnika BMP280 pracuje z minimalnym napięciem (VDD) 1,71 V, podczas gdy moduły czujników poprzedniej wersji pracują z napięciem 1,8 V (VDD). Jeśli chodzi o pobór prądu, BMP280 pobiera 2,7uA, BMP180 12uA, a BMP183 i BMP085 po 5uA. BMP280 obsługuje również nowe tryby filtrowania. Moduł czujnika BMP280 obsługuje protokoły I2c i SPI, podczas gdy pozostały czujnik obsługuje protokoły I2c lub SPI. Moduł czujnika BMP280 ma dokładność ± 0,12 hPa, co odpowiada różnicy wysokości ± 1 m. Ze względu na te kluczowe cechy jest najczęściej używany w różnych aplikacjach. Czujnik BMP składa się z elementu czujnikowego ciśnienia, elementu czujnikowego wilgotności i elementu czujnikowego temperatury, które są dodatkowo połączone z przednią częścią ciśnieniową, częścią czołową wilgotności i częścią czołową temperatury. Te układy scalone z przodu to czułe wzmacniacze analogowe, które są używane do wzmacniania małych sygnałów. Wyjście tego analogowego układu scalonego typu front-end jest podawane do przetwornika ADC jako sygnał wejściowy. W tym przypadku wartości analogowe są konwertowane na napięcie cyfrowe, a napięcie to jest podawane do obwodów logicznych w celu dalszego połączenia ze światem zewnętrznym.
Moduł czujnika BMP280 składa się z trzech trybów zasilania, trybu uśpienia, trybu wymuszonego i trybu normalnego. W trybie uśpienia nie są wykonywane żadne pomiary, a zużycie energii jest minimalne. W trybie wymuszonym wykonywany jest pojedynczy pomiar zgodnie z wybranymi opcjami pomiaru i filtra. Tryb normalny w sposób ciągły przełącza się między pomiarem a okresem gotowości, a okres czasu cykli będzie określony przez T standby. Prąd w trybie czuwania jest nieco wyższy niż w trybie uśpienia.
Schemat podłączenia do interfejsu BMP280 z Arduino:
Schemat obwodu do połączenia Arduino z czujnikiem BMP280 i wyświetlaczem LCD pokazano poniżej. Jeśli jesteś zupełnie nowy w Arduino i LCD, możesz sprawdzić ten samouczek Arduino LCD, aby zrozumieć, jak używać Arduino z wyświetlaczami LCD.
Piny VCC i GND czujnika są połączone z pinami 3v3 i GND Arduino. Piny SCL i SDA czujnika są podłączone do A5 i A4 płyty Arduino. Połączenia LCD są następujące
Nazwa styku wyświetlacza LCD |
Pin Arduino |
VSS i RW |
GND |
RS |
D9 |
mi |
D8 |
D4, D5, D6, D7 |
D5, D4, D3, D2 |
Program Arduino do interfejsu BMP280 z Arduino:
Pełny kod BMP280 Arduino można znaleźć na dole tej strony, który można przesłać bezpośrednio na płytę Arduino. Wyjaśnienie tego samego znajduje się poniżej
Te biblioteki są dołączone do włączania funkcji specjalnych. Z plików nagłówkowych #include możemy bezpośrednio odczytać wartości pochodzące z czujnika. #Include
#zawierać
Tworzenie na obiekcie BMP dla Adafruit_BMP280. Tworzony jest plik obiektu, aby uzyskać dostęp do funkcji specjalnych.
Adafruit_BMP280 bmp; // I2C
Ustawienie pinów Arduino do komunikacji z wyświetlaczem LCD. Za pomocą tych pinów dane zostaną przesłane.
LiquidCrystal LCD (9, 8, 5, 4, 3, 2);
Inicjalizacja wyświetlacza LCD i komunikacja szeregowa.
void setup () {lcd.begin (16,2); Serial.begin (9600); Serial.println (F ("test BMP280")); lcd.print ("Witamy w"); lcd.setCursor (0,1); lcd.print ("PRZEGLĄD OBWODU"); opóźnienie (1000); lcd.clear (); if (! bmp.begin ()) {Serial.println (F ("Nie można znaleźć prawidłowego czujnika BMP280, sprawdź okablowanie!")); podczas gdy (1); }
Ta funkcja działa, gdy inicjalizacja obiektu bmp nie powiedzie się.
/ * Ustawienia domyślne z arkusza danych. * / bmp.setSampling (Adafruit_BMP280:: MODE_NORMAL, / * Operating Mode. * / Adafruit_BMP280:: SAMPLING_X2, / * Nadpróbkowanie temp. * / Adafruit_BMP280:: SAMPLING_X16, / * Nadpróbkowanie ciśnienia * / Adafruit_BMP280, * FILTER_X. * / Adafruit_BMP280:: STANDBY_MS_500); /* Czas czuwania. * /}
Ta część kodu wyświetla temperaturę na monitorze szeregowym i służy do debugowania.
void loop () {Serial.print (F ("Temperatura =")); Serial.print (bmp.readTemperature ()); Serial.println ("* C");
Funkcje bmp.readPressure i bmp.readTemprature służą do wywoływania funkcji specjalnych i zwracania wartości temperatury i ciśnienia.
lcd.print (bmp.readTemperature ()); lcd.print (bmp.readPressure ());
Działanie projektu interfejsu czujnika ciśnienia Arduino BMP280
Funkcje bmp.readTemprature () i bmp.readPressure () służą do zwracania wartości temperatury i ciśnienia. Funkcje te to grupa instrukcji, które wykonują specjalne zadanie, w naszym przypadku zwracają pliki temperatur i ciśnień. Te funkcje są wywoływane za pomocą funkcji bmp.readTemprature () i bmp.readPressure () . Lcd.setCursor ustawia kursor na ekranie LCD w żądanej pozycji na ekranie. Plik lcd.print polecenie wypisuje dane z pozycji ustawionej przez programistę. Jeśli domyślnie nie ustawiono pozycji wyświetlacza LCD, przyjmuje on (0,0) jako pozycję początkową i ciągłe drukowanie danych. Następne dane zajmują pozycję następnej kolumny, a procedura jest kontynuowana, aż osiągnie koniec wiersza i przejdzie do następnego wiersza.
BMP280 może być używany w zabawkach latających, telefonach komórkowych, tabletach, komputerach PC, urządzeniach GPS, przenośnych urządzeniach medycznych, domowych stacjach pogodowych itp. Postępując zgodnie z tą procedurą i używając plików nagłówkowych i niektórych funkcji specjalnych, możemy łatwo połączyć BMP280 z Arduino. Pełną pracę można również znaleźć w filmie podanym poniżej, mam nadzieję, że spodobał Ci się ten samouczek BMP280 Arduino i nauczyłeś się czegoś przydatnego. Jeśli masz jakieś pytanie, zostaw je w sekcji komentarzy poniżej lub skorzystaj z forum, aby uzyskać odpowiedzi na inne pytania techniczne.