Jak użyć czujnika temperatury i ciśnienia BMP280 z Arduino

How to Use the BMP280 Temperature and Pressure Sensor with Arduino

BMP280 jest czujnikiem o wysokiej precyzji, który mierzy ciśnienie barometryczne, temperaturę i wysokość. Jest szeroko stosowany w stacjach pogodowych, urządzeniach do śledzenia wysokości i urządzeń IoT ze względu na jego dokładność i opcje komunikacji I2C/SPI. Ten samouczek poprowadzi Cię przez połączenie i użycie BMP280 z Arduino.


Czego będziesz potrzebować

  1. Moduł czujnika BMP280
  2. Arduino Board (np. UNO, Mega, Nano)
  3. Druty chleba i skoczków
  4. Komputer z zainstalowanym Arduino IDE

Krok 1: Zrozumienie BMP280

Czujnik BMP280 obsługuje zarówno komunikację I2C, jak i SPI. Większość płyt wybitnych domyślnie w trybie I2C, który wymaga mniej przewodów.

BMP280 Pinout

Szpilka Funkcjonować
VCC Zasilacz (3,3 V lub 5 V)
GND Grunt
Scl Linia zegara I2C
SDA I2C Linia danych
CSB Chip Wybierz dla SPI (opcjonalnie)
SDO SPI Dane Out/I2C Wybór adresu
  • Notatka: W przypadku komunikacji I2C połącz się SDO do GND dla domyślnego adresu (0x76) lub do VCC dla 0x77.

Krok 2: Okablowanie BMP280 do Arduino

Oto jak podłączyć BMP280 z Arduino Uno w trybie I2C:

Pin BMP280 PIN Arduino
VCC 5v
GND GND
Scl A5
SDA A4

Notatka: W przypadku innych tablic Arduino sprawdź określone szpilki I2C w dokumentacji swojej tablicy.


Krok 3: Zainstaluj wymaganą bibliotekę

Biblioteka „Adafruit BMP280” ułatwia interfejs z czujnikiem.

Kroki do zainstalowania biblioteki:

  1. Otwórz Arduino IDE.
  2. Idź do Naszkicować > Uwzględnij bibliotekę > Zarządzaj bibliotekami.
  3. Wyszukaj „Adafruit BMP280” i kliknij Zainstalować.
  4. Jeśli zostanie wyświetlony monit, zainstaluj także bibliotekę „Adafruit Unified Sensor”.

Krok 4: Prześlij kod

Oto przykład szkicu do odczytu temperatury, ciśnienia i wysokości z BMP280:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp; // Create BMP280 object

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("BMP280 Sensor Test");

  if (!bmp.begin(0x76)) { // Default I2C address is 0x76
    Serial.println("Could not find a valid BMP280 sensor, check wiring!");
    while (1);
  }
}

void loop() {
  Serial.print("Temperature: ");
  Serial.print(bmp.readTemperature());
  Serial.println(" °C");

  Serial.print("Pressure: ");
  Serial.print(bmp.readPressure() / 100.0F); // Convert to hPa
  Serial.println(" hPa");

  Serial.print("Approx. Altitude: ");
  Serial.print(bmp.readAltitude(1013.25)); // Standard sea level pressure in hPa
  Serial.println(" m");

  Serial.println();
  delay(2000); // Wait for 2 seconds before the next reading
}

Krok 5: Przetestuj konfigurację

  1. Podłącz Arduino do komputera za pomocą USB.
  2. Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
  3. Prześlij kod do Arduino, klikając Wgrywać.
  4. Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na 9600.
  5. Obserwuj odczyty temperatury, ciśnienia i wysokości wyświetlane w monitorze szeregowym.

Zastosowania BMP280

  1. Stacje pogodowe
  2. Pomiar wysokości u dronów
  3. Monitorowanie środowiska IoT
  4. Nawigacja oparta na ciśnieniu barometrycznym

Rozwiązywanie problemów

  • Brak odpowiedzi od czujnika: Dokładnie sprawdź okablowanie i upewnij się, że adres I2C pasuje do konfiguracji.
  • Nieprawidłowe odczyty: Upewnij się, że czujnik nie jest narażony na ekstremalne warunki środowiskowe lub zaburzenia przepływu powietrza.
  • Błędy biblioteczne: Sprawdź, czy biblioteka „Adafruit BMP280” jest prawidłowo zainstalowana.

Wniosek

Z powodzeniem połączyłeś czujnik BMP280 z Arduino, umożliwiając precyzyjne pomiary temperatury, ciśnienia i wysokości. Ten wszechstronny czujnik jest idealny do różnych aplikacji, od monitorowania pogody po nawigację dronów. Eksperymentuj dalej, integrując BMP280 z rejestratorami danych, wyświetlaczami lub platformami IoT dla zaawansowanych projektów!

Zostaw komentarz

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.