ESP32 Project 4 - External Sensor
Hallo semuanya, jumpa lagii, pada project ke empat ini kita akan melakukan eksperimen menggunakan modul sensor eksternal yaitu BMP180 yang terhubung pada ESP32 ya.
Oh iya temen2, referensi yang digunakan pada project ini bersumber dari https://randomnerdtutorials.com/esp32-with-bmp180-barometric-sensor/.
Sensor BMP180
Modul Sensor BMP180 adalah sensor tekanan barometrik yang digunakan untuk mengukur tekanan atmosfer (barometrik) dan suhu lingkungan secara real-time. Jadi bisa dihitung tekanan udara, suhu, dan altitude/ketinggian.

Sensor BMP180 menggunakan protokol komunikasi I2C, sehingga kita akan menggunakan pin SDA (GPIO21) dan SCL (GPIO22) pada board ESP32.
Berikut adalah spesifikasi dari sensor tersebut:
- Tegangan Operasi: 1.8V hingga 3.6V
- Konsumsi Daya: Rendah, hanya 0.5uA pada 1Hz
- Antarmuka: Mendukung I2C dan SPI
- Kecepatan I2C Maksimal: 3.5MHz
- Rentang Tekanan: 300 hPa hingga 1100 hPa (+9000m hingga -500m)
- Akurasi Tekanan: ±0.12 hPa (±1m pada ketinggian)
- Resolusi Tinggi: Hingga 0.02 hPa (setara dengan ketinggian 17 cm)
- Ukuran Kompak: 21mm x 18mm
- Daya Tahan Suhu: -10°C hingga +60°C
Keunggulan dari sensor tersebut adalah:
- Kalibrasi Pabrik: BMP180 sudah dilengkapi dengan data kalibrasi di dalam chip untuk memberikan hasil pengukuran yang akurat tanpa perlu konfigurasi tambahan.
- Pemakaian Energi Efisien: Konsumsi daya yang sangat rendah membuatnya cocok untuk perangkat yang menggunakan baterai.
- Desain Kompak: Dengan ukuran kecil dan bobot hanya 1.18 gram, sangat ideal untuk perangkat portabel atau aplikasi miniatur.
- Kendalan Tinggi: Mampu bertahan di lingkungan dengan gangguan elektromagnetik (EMC) tinggi adanya teknologi MEMS.
Aplikasi yang dapat digunakan adalah:
- Navigasi Dalam Ruangan: Menentukan posisi dan orientasi secara presisi.
- Peningkatan GPS: Membantu dalam pengukuran elevasi dan koreksi posisi.
- Profil Ketinggian di Perangkat Olahraga: elacak perubahan ketinggian selama aktivitas olahraga.
- Prediksi Cuaca: Membaca perubahan tekanan untuk mengetahui perubahan cuaca.
- Indikasi Kecepatan Vertikal: Untuk aplikasi yang memerlukan pengukuran kecepatan naik/turun.
Untuk harganya sendiri, saya membeli dengan harga yang sangat murah yakni Rp15.000,-.
Menggunakan Sensor BMP180
Install library BMP180
Untuk menggunakan sensor BMP 180 ini, kita perlu menginstall library yang compatible dengan sensor ini, disini kita gunakan library Adafruit BMP085 Library by Adafruit yang sudah teruji compatibel dengan sensor BMP180 ini.
Cara menginstall pada Arduino IDE adalah klik Sketch > Include Library > Manage Libraries.
Kemudian muncul menu pencarian disamping kiri, silahkan cari “bmp085” pilih yang Adafruit BMP085 Library by Adafruit ya, kemudian klik INSTALL, jika muncul pesan Install library depedencies?, klik INSTALL ALL. Jika sudah berhasil terinstall, restart Aruino IDE.




Rangkaian
Ini adalah rangkaian yang digunakan

Jadi pada gambar tersebut, terdapat 4 pin sensor BMP180 yaitu GND, SCL, SDA, dan 3v3. Dimana masing-masing pin tersebut terhubung ke:
- GND terhubung ke GND
- SCL terhubung ke GPIO22
- SDA terhubung ke GPIO21
- 3v3 terhubung ke 3v3
Ini adalah hasil rangkaian yang telah dilakukan:
Ini adalah rangkaian yang digunakan

Code
Kode yang digunakan berasal dari contoh yang dibuat oleh Adafruit itu sendiri, bisa klik File > Examples > Adafruit BMP085 Library > BMP085test. Berikut adalah codenya:
/*
* Rui Santos
* Complete Project Details https://randomnerdtutorials.com
*/
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085/BMP180 sensor, check wiring!");
while (1) {}
}
}
void loop() {
Serial.print("Temperature = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
// Calculate altitude assuming 'standard' barometric
// pressure of 1013.25 millibar = 101325 Pascal
Serial.print("Altitude = ");
Serial.print(bmp.readAltitude());
Serial.println(" meters");
Serial.print("Pressure at sealevel (calculated) = ");
Serial.print(bmp.readSealevelPressure());
Serial.println(" Pa");
// you can get a more precise measurement of altitude
// if you know the current sea level pressure which will
// vary with weather and such. If it is 1015 millibars
// that is equal to 101500 Pascals.
Serial.print("Real altitude = ");
Serial.print(bmp.readAltitude(102000));
Serial.println(" meters");
Serial.println();
delay(500);
}
Silahkan upload ke board esp32 yang telah kita rangkai
Kalo sudah sekarang kita lihat hasil pembacaan sensor melalui tampilan di Serial Monitor dengan baud rate 9600. Berikut adalah hasilnya:


Video Hasil Membaca Sensor BMP180
Oke sampai sini dulu aja ya laporannya, terimakasih sudah mampir kesini!