BMP180 jest precyzyjnym czujnikiem ciśnienia barometrycznego i temperatury, który można łatwo połączyć z Arduino za pomocą protokołu I2C. Jest szeroko stosowany w monitorowaniu pogody, pomiarach wysokości i aplikacji IoT. Ten samouczek poprowadzi Cię przez połączenie i użycie BMP180 z Arduino.
Czego będziesz potrzebować
- Moduł czujnika BMP180
- Arduino Board (np. UNO, Mega, Nano)
- Druty chleba i skoczków
- Komputer z zainstalowanym Arduino IDE
Krok 1: Zrozumienie BMP180
BMP180 mierzy ciśnienie barometryczne i temperaturę i może obliczać wysokość na podstawie odczytów ciśnienia. Komunikuje się z Arduino za pomocą protokołu I2C.
BMP180 Pinout
Szpilka | Funkcjonować |
---|---|
Vin | Zasilacz (3,3 V/5 V) |
GND | Grunt |
SDA | I2C Linia danych |
Scl | Linia zegara I2C |
Krok 2: Okablowanie BMP180 do Arduino
Oto jak podłączyć BMP180 z Arduino Uno:
Pin BMP180 | PIN Arduino |
---|---|
Vin | 5v |
GND | GND |
SDA | A4 |
Scl | A5 |
Notatka: W przypadku innych tablic Arduino sprawdź szpilki I2C w dokumentacji swojej tablicy (np. Mega używa pinów 20 i 21 dla SDA i SCL).
Krok 3: Zainstaluj wymaganą bibliotekę
Biblioteka „Adafruit BMP085 Unified” może być używana dla BMP180, ponieważ jest w pełni kompatybilna.
Kroki do zainstalowania biblioteki:
- Otwórz Arduino IDE.
- Idź do Naszkicować > Uwzględnij bibliotekę > Zarządzaj bibliotekami.
- Wyszukaj „Adafruit BMP085 Unified” i kliknij Zainstalować.
Krok 4: Prześlij kod
Oto przykład szkicu do odczytu temperatury, ciśnienia i obliczenia wysokości:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>
Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);
void setup() {
Serial.begin(9600);
Serial.println("BMP180 Sensor Test");
if (!bmp.begin()) {
Serial.print("Could not find a valid BMP180 sensor, check wiring!");
while (1);
}
}
void loop() {
sensors_event_t event;
bmp.getEvent(&event);
if (event.pressure) {
// Display pressure
Serial.print("Pressure: ");
Serial.print(event.pressure);
Serial.println(" hPa");
// Display temperature
float temperature;
bmp.getTemperature(&temperature);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
// Calculate altitude
float seaLevelPressure = 1013.25; // hPa
Serial.print("Altitude: ");
Serial.print(bmp.pressureToAltitude(seaLevelPressure, event.pressure));
Serial.println(" m");
Serial.println();
} else {
Serial.println("Sensor error!");
}
delay(2000); // Wait 2 seconds before the next reading
}
Krok 5: Przetestuj konfigurację
- Podłącz Arduino do komputera za pomocą USB.
- Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
- Prześlij kod do Arduino, klikając Wgrywać.
- Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na
9600
. - Obserwuj odczyty ciśnienia, temperatury i wysokości wyświetlane w monitorze szeregowym.
Zastosowania BMP180
- Systemy monitorowania pogody
- Pomiar wysokości u dronów i lotnictwa
- Monitorowanie środowiska IoT
- Rejestrowanie danych ciśnienia barometrycznego
Rozwiązywanie problemów
- Brak odpowiedzi od czujnika: Sprawdź okablowanie i upewnij się, że używane są prawidłowe piny I2C.
- Nieprawidłowe odczyty: Sprawdź, czy czujnik nie jest narażony na ekstremalne warunki środowiskowe.
- Błędy biblioteczne: Upewnij się, że biblioteka „Adafruit BMP085 Unified” jest poprawnie zainstalowana.
Wniosek
Z powodzeniem połączyłeś barometryczny czujnik ciśnienia BMP180 z Arduino. Ten wszechstronny czujnik jest idealny do projektów wymagających dokładnych pomiarów ciśnienia i temperatury. Eksperymentuj dalej, integrując go z rejestratorami danych, wyświetlaczami lub platformami IoT!