Jak uruchomić czujnik BMP180 na ESP32 poradnik dla początkujących

Jak uruchomić czujnik BMP180 na ESP32 poradnik dla początkujących
Co to jest czujnik BMP180 i co mierzy?
BMP180 to cyfrowy czujnik pomiaru ciśnienia atmosferycznego oraz temperatury, komunikujący się z mikrokontrolerem przez interfejs I²C. Zakres pomiarowy tego sensora wynosi około 300–1100 hPa, co oznacza, że możemy go używać od poziomu morza aż po górskie szczyty. Czujnik posiada wbudowany termometr służący do kompensacji temperaturowej pomiaru ciśnienia – dzięki temu uzyskiwane wyniki są dokładne nawet przy zmianach temperatury. BMP180 cechuje się także niskim poborem energii, dlatego świetnie nadaje się do projektów zasilanych z baterii np. stacje pogodowe lub wysokościomierze.
Potrzebne elementy
Zanim zaczniesz, przygotuj następujące komponenty:
- Moduł ESP32 – np. płytka deweloperska ESP32 DevKit (Dowolna wersja z układem ESP32).
- Czujnik BMP180 – moduł z układem BMP180 (np. GY-68).
- Przewody połączeniowe – kilka przewodów typu męsko-męskie do połączenia modułów.
- Płytka stykowa – opcjonalnie, ułatwi połączenie przewodów bez lutowania.
Schemat połączeń BMP180 z ESP32
Podłącz czujnik BMP180 do ESP32 zgodnie z poniższym opisem sygnały I²C czujnika łączymy z odpowiadającymi im pinami mikrokontrolera:
- BMP180 VIN → 3,3 V (pin zasilania 3V3 w ESP32)
- BMP180 GND → GND (masa wspólna z ESP32)
- BMP180 SCL → GPIO 22 (pin SCL na ESP32)
- BMP180 SDA → GPIO 21 (pin SDA na ESP32)

Przygotowanie Arduino IDE
Zanim przystąpisz do pisania kodu, upewnij się, że środowisko Arduino IDE jest gotowe do pracy z ESP32 i naszym czujnikiem:
- Dodanie obsługi ESP32 w Arduino IDE – Jeżeli jeszcze tego nie zrobiłeś, dodaj do Arduino IDE obsługę płytek ESP32. Wejdź w File -> Preferences i w polu „Additional boards manager URLs” dodaj następujący adres URL:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
Następnie otwórz Tools -> Board -> Boards Manager, wyszukaj “esp32” i zainstaluj pakiet “esp32 by Espressif Systems”. Po zainstalowaniu restartuj Arduino IDE, aby nowe płytki się pojawiły. - Wybór płytki ESP32 i portu COM – Podłącz swoją płytkę ESP32 do komputera kablem USB. W Arduino IDE wybierz odpowiednią płytkę ESP32 Dev Module z menu Tools -> Board. Następnie w menu Tools -> Port wybierz port COM, do którego podłączona jest płytka. Upewnij się, że Arduino IDE „widzi” Twoją płytkę możesz to zweryfikować, sprawdzając czy w Tools -> Port pojawiła się nazwa urządzenia ESP32.
- Instalacja biblioteki BMP180 Otwórz Sketch -> Include Library -> Manage Libraries… aby uruchomić Library Manager. W polu wyszukiwania wpisz “BMP085” i zainstaluj bibliotekę “Adafruit BMP085 Library” autorstwa Adafruit. Ta biblioteka obsługuje zarówno czujnik BMP085, jak i BMP180 układy są kompatybilne. Podczas instalacji Arduino IDE może poprosić również o doinstalowanie biblioteki Adafruit Unified Sensor potwierdź instalację, gdyż jest to zależność potrzebna do działania czujnika. Po zainstalowaniu biblioteki warto zrestartować Arduino IDE, aby upewnić się, że nowo dodana biblioteka została załadowana.
Kod programu z komentarzami
Mając przygotowany sprzęt i zainstalowaną bibliotekę, możemy napisać prosty program demonstracyjny. Kod najpierw inicjalizuje czujnik, a następnie w pętli odczytuje z niego temperaturę i ciśnienie, wyświetlając wyniki na Serial Monitorze. Poniżej znajdziesz kompletny kod z komentarzami wyjaśniającymi poszczególne działania:

Kilka słów wyjaśnienia do powyższego kodu: na początku dołączamy biblioteki Wire komunikacja I²C oraz Adafruit_BMP085.h obsługa czujnika BMP180. W funkcji setup()
uruchamiamy Serial monitor szeregowy i inicjalizujemy czujnik za pomocą bmp.begin()
. Jeśli czujnik nie zostanie wykryty, program wypisze komunikat o błędzie i zatrzyma się w pętli. W przeciwnym wypadku przechodzimy do funkcji loop()
, gdzie co dwie sekundy odczytywana jest temperatura (bmp.readTemperature()
) oraz ciśnienie (bmp.readPressure()
). Wyniki są wypisywane na Serial Monitor w czytelnej formie wraz z jednostkami (°C dla stopni Celsjusza i hPa dla paskali).
Sprawdzenie działania
Po skompilowaniu i wgraniu powyższego programu na płytkę ESP32, otwórz Serial Monitor (Monitor portu szeregowego) w Arduino IDE z ustawioną prędkością 115200 baud. Jeśli wszystko zostało poprawnie zainstalowane i podłączone, na monitorze szeregowym powinny pojawiać się kolejne pomiary z czujnika BMP180. Odczyty temperatury i ciśnienia będą aktualizowane mniej więcej co sekundę. Przykładowy fragment danych z czujnika może wyglądać następująco:

W powyższym przykładzie widzimy, że czujnik zwraca temperaturę ~25,5 °C oraz ciśnienie około 1022 hPa i wartości te odświeżają się ciągle w pętli. Gratulacje! Twój czujnik BMP180 działa poprawnie z ESP32 🎉.
Typowe problemy i rozwiązania
Mimo prostoty układu, początkujący mogą napotkać kilka typowych problemów. Poniżej wymieniamy najczęstsze z nich wraz z sugestiami rozwiązania:
Czujnik nie jest wykrywany (komunikat „Nie znaleziono czujnika BMP180! Sprawdź połączenia.”): Taka informacja w Serial Monitorze oznacza, że program nie może nawiązać komunikacji z modułem BMP180. Najpierw sprawdź połączenia elektryczne czy na pewno wszystkie przewody są podłączone zgodnie ze schematem właściwe piny SDA/SCL, zasilanie 3,3 V, masa. Jeśli połączenia są poprawne, a problem nadal występuje, możliwe że czujnik nie odpowiada pod oczekiwanym adresem I²C. Domyślny adres BMP180 to 0x77 możesz użyć skanera I²C, aby sprawdzić, czy czujnik pojawia się na magistrali i pod jakim adresem. Na naszym blogu znajdziesz poradnik pt. “I2C Scanner – jak znaleźć adres swojego czujnika?”, który pokazuje jak to zrobić.
Niewłaściwa biblioteka do obsługi BMP180: Upewnij się, że korzystasz z poprawnej biblioteki Adafruit do BMP180. W Arduino IDE powinna być zainstalowana “Adafruit BMP085 Library”, tak jak opisano wyżej. Jeśli omyłkowo zainstalowałeś inną bibliotekę o podobnej nazwie lub przeznaczoną do innego sensora np. BMP280, przykładowy kod może nie działać prawidłowo. Rozwiązanie to zainstalować właściwą bibliotekę Adafruit BMP085 Unified oraz dołączyć ją w szkicu (#include <Adafruit_BMP085.h>
). Pamiętaj też, że biblioteka Adafruit wymaga zainstalowanej biblioteki Adafruit Unified Sensor bez niej kompilacja może zgłaszać błędy. Zastosowanie rekomendowanej biblioteki gwarantuje, że funkcje takie jak bmp.begin()
, readTemperature()
czy readPressure()
będą działać zgodnie z opisem.

Niepoprawne podłączenie lub złe piny SDA/SCL: ESP32 domyślnie korzysta z pinów GPIO21 (SDA) i GPIO22 (SCL) dla komunikacji I²C. Jeśli podłączysz czujnik do innych pinów, układ nie będzie działać bez dodatkowej konfiguracji. Upewnij się, że używasz dokładnie tych pinów, które wskazaliśmy w schemacie połączeń. W przypadku konieczności użycia innych pinów np. w niestandardowym module, musiałbyś zmodyfikować kod, inicjalizując interfejs I²C na tych pinach manualnie początkującym jednak zalecamy trzymać się standardowych wyprowadzeń. Sprawdź także, czy przewody SDA i SCL nie są przypadkowo zamienione miejscami. Poprawne podłączenie rozwiąże większość problemów z komunikacją czujnika.
Podsumowanie
Na koniec warto podkreślić, że po prawidłowym wykonaniu powyższych kroków zestaw ESP32 + BMP180 jest gotowy do dalszych eksperymentów. Możesz wykorzystać go do budowy prostej stacji pogodowej, wysokościomierza lub innych projektów IoT wymagających pomiaru ciśnienia i temperatury. Powodzenia!
📖 Wpis powiązany

Prezentowaną w artykule elektronikę znajdziesz oczywiście w naszym sklepie 👉 sklep.msalamon.pl 👈Zapraszamy również na nasze social media, gdzie na bieżąco informujemy o nowych produktach oraz o najciekawszych promocjach 😎👇