← Back to list

Belajar ESP32: External Sensor

Pada pembahasan sebelumnya, telah dipelajari konsep dasar sensor serta dilakukan percobaan menggunakan sensor bawaan yang terdapat pada…

Mega F · 2026-04-03 14:38 · 0 claps · 4.5 min read
#sensor-bmp280 #esp32 #esp32-tutorial #bmp280
Open on Medium ↗

Belajar ESP32: External Sensor

Pada pembahasan sebelumnya, telah dipelajari konsep dasar sensor serta dilakukan percobaan menggunakan sensor bawaan yang terdapat pada ESP32, yaitu Touch Sensor dan Hall Effect Sensor.

[embed]Belajar ESP32: Built-in Sensor Pada pembahasan sebelumnya, kita telah mempelajari konsep input dan output pada ESP32 melalui beberapa percobaan, baik…medium.com

Pada praktikum kali ini, pembahasan difokuskan pada penggunaan sensor eksternal yang diintegrasikan dengan mikrokontroler ESP32. Berbeda dengan percobaan sebelumnya yang memanfaatkan sensor bawaan (built-in), kali ini digunakan sensor tambahan, yaitu BPM280, untuk memperoleh data dari lingkungan secara lebih spesifik.

Sensor BPM280 merupakan sensor yang mampu mengukur tekanan udara dan suhu, sehingga sering dimanfaatkan dalam berbagai aplikasi Internet of Things (IoT), seperti sistem pemantauan cuaca dan ketinggian. Melalui percobaan ini, akan dipelajari bagaimana proses integrasi sensor eksternal dengan ESP32 serta bagaimana data yang dihasilkan dapat dibaca dan ditampilkan.

Gambar 1. Sensor BMP280. (Sumber: Dokumen Pribadi)

Gambar 1. Sensor BMP280. (Sumber: Dokumen Pribadi)

Pin pada Modul BMP280

Berikut adalah pin-pin yang terdapat pada modul BMP280 beserta fungsinya:

  • VCC → Pin catu daya untuk sensor (3.3V–5V, tergantung modul)
  • GND → Ground
  • SCL → Serial Clock (jalur clock untuk komunikasi I2C)
  • SDA → Serial Data (jalur data untuk komunikasi I2C)
  • CSB (Chip Select) → Digunakan pada mode SPI (harus dihubungkan ke VCC agar mode I2C aktif)
  • SDO → Penentu alamat I2C (0x76 atau 0x77)

Pada mode I2C, pin CSB harus dihubungkan ke VCC agar sensor bekerja dalam mode I2C. Sementara itu, pin SDO digunakan untuk menentukan alamat perangkat pada bus I2C.

Tipe Komunikasi BMP280 dengan ESP32

Sensor BMP280 merupakan sensor eksternal yang dapat berkomunikasi dengan mikrokontroler ESP32 melalui dua jenis protokol komunikasi digital, yaitu I2C (Inter-Integrated Circuit) dan SPI (Serial Peripheral Interface). Kedua metode ini memiliki karakteristik yang berbeda, baik dari segi jumlah pin yang digunakan maupun kecepatan komunikasi.

Pada komunikasi I2C, proses pertukaran data dilakukan hanya melalui dua jalur utama, yaitu SDA (Serial Data) dan SCL (Serial Clock). Metode ini memungkinkan beberapa perangkat terhubung dalam satu jalur komunikasi (multi-device) dengan menggunakan alamat unik untuk masing-masing perangkat. BMP280 sendiri memiliki alamat I2C yaitu 0x76 atau 0x77, tergantung pada konfigurasi pin tertentu. Keunggulan utama I2C adalah penggunaan pin yang lebih sedikit dan kemudahan dalam implementasi, sehingga sangat cocok untuk proyek IoT sederhana.

Sementara itu, komunikasi SPI menggunakan lebih banyak jalur, yaitu MOSI (Master Out Slave In), MISO (Master In Slave Out), SCK (Serial Clock), dan CS (Chip Select). Dibandingkan dengan I2C, SPI menawarkan kecepatan transfer data yang lebih tinggi serta komunikasi yang lebih stabil. Namun, penggunaan pin yang lebih banyak membuat metode ini cenderung lebih kompleks, terutama jika digunakan untuk beberapa perangkat sekaligus karena masing-masing membutuhkan pin CS tersendiri.

Berdasarkan perbandingan tersebut, komunikasi I2C lebih umum digunakan dalam praktikum ini karena lebih sederhana dan efisien dalam penggunaan pin pada ESP32. Meskipun demikian, komunikasi SPI tetap menjadi alternatif yang baik apabila dibutuhkan kecepatan transfer data yang lebih tinggi.

Koneksi Modul BMP280 ke ESP32 Menggunakan Komunikasi I2C

Untuk menghubungkan BMP280 dengan ESP32 menggunakan komunikasi I2C, diperlukan empat koneksi utama, yaitu:

  • VCC (BMP280)3.3V (ESP32)
  • GND (BMP280)GND (ESP32)
  • SDA (BMP280)GPIO21 (ESP32)
  • SCL (BMP280)GPIO22 (ESP32)

GPIO21 dan GPIO22 merupakan pin default I2C pada ESP32, sehingga umum digunakan pada berbagai proyek sederhana.

Agar komunikasi I2C berjalan dengan baik, terdapat beberapa konfigurasi yang perlu diperhatikan:

  • Pin SDO (Address Select):

Terhubung ke GND → alamat menjadi 0x76

Terhubung ke VCC → alamat menjadi 0x77

  • Pin CSB: Harus dihubungkan ke VCC agar sensor bekerja dalam mode I2C (bukan SPI)
  • Tegangan Operasi: Gunakan 3.3V, karena ESP32 dan BMP280 sama-sama bekerja pada tegangan tersebut (hindari penggunaan 5V langsung)

Tahap Persiapan

Pada tahap persiapan, kita perlu menyiapkan beberapa komponen yang akan digunakan dalam percobaan ini. Perangkat yang dibutuhkan antara lain:

  1. PC/laptop,
  2. Aplikasi Arduino IDE sebagai environment untuk menulis dan mengunggah program,
  3. Development board ESP32 DOIT DevKit V1 dengan 30 pin GPIO,
  4. Breadboard (opsional) sebagai tempat memasang ESP32,
  5. Kabel USB A to microUSB untuk proses komunikasi sekaligus sebagai sumber daya,
  6. Satu buah sensor BMP280 dan beberapa kabel jumper (male-to-female atau male-to-male) sesuai dengan kebutuhan rangkaian.

Let’s Start The Experiment!

Langkah pertama yaitu menginstal library untuk sensor BMP280 oleh Adafruit.

Gambar 2. Install library BMP280 by Adafruit. (Sumber: Dokumen Pribadi)

Gambar 2. Install library BMP280 by Adafruit. (Sumber: Dokumen Pribadi)

Langkah selanjutnya adalah menyusun rangkaian komponen pada breadboard. Hubungkan ESP32 dan sensor BMP280 menggunakan kabel jumper sesuai dengan diagram rangkaian yang ditunjukkan di bawah ini.

Gambar 3. Rangkaian percobaan sensor external BMP280. (Sumber: Dokumen Pribadi)

Gambar 3. Rangkaian percobaan sensor external BMP280. (Sumber: Dokumen Pribadi)

Langkah berikutnya adalah menyalakan PC atau laptop, lalu membuka aplikasi Arduino IDE. Setelah itu, sambungkan board ESP32 ke komputer menggunakan kabel USB A to microUSB.

Di dalam Arduino IDE, pilih DOIT ESP32 DEVKIT V1 sebagai board yang digunakan.

Kemudian tentukan communication port yang sesuai. Cek terlebih dahulu di Device Manager: driver untuk koneksi USB-to-UART ada di COM berapa (dalam kasus ini COM3), agar ESP32 dapat berkomunikasi dengan komputer.

Kemudian, testing sensor BMP280 menggunakan program contoh pada Examples>Adafruit BMP280 Library>bmp280test untuk memastikan sensor berjalan dengan baik.

Gambar 4. Membuka program contoh bmp280test. (Sumber: Dokumen Pribadi)

Gambar 4. Membuka program contoh bmp280test. (Sumber: Dokumen Pribadi)

Namun, pada program bmp280test ada yang perlu ditambahkan sedikit mengenai alamat komunikasi I2C berdasarkan pin SDO. Karena pin SDO tidak terhubung dengan apa pun, maka dianggap terhubung dengan ground, maka alamat I2C-nya menjadi 0x76. Yang perlu ditambahkan yaitu pada line status = bmp.begin(0x76);

[embed]

Pada langkah selanjutnya, lakukan proses verifikasi terhadap kode program dengan menekan tombol berikon yang berada di bagian kiri atas Arduino IDE. Proses ini bertujuan untuk memastikan bahwa kode yang ditulis sudah benar dan dapat dikompilasi tanpa error. Jika proses verifikasi berhasil, akan muncul pesan “Done compiling.” di bagian kanan bawah layar.

Kemudian, unggah program ke board ESP32 dengan menekan tombol berikon yang berada di bagian kiri atas Arduino IDE. Setelah proses upload selesai dan berhasil, akan muncul pesan “Done uploading.” di bagian kanan bawah layar. Kemudian lakukan pengamatan pada Serial Monitor.

Berikut hasil pembacaan sensor BMP280:

Gambar 5. Hasil pembacaan sensor BMP280. (Sumber: Dokumen Pribadi)

Gambar 5. Hasil pembacaan sensor BMP280. (Sumber: Dokumen Pribadi)

Pada serial monitor akan ditampilkan hasil pembacaan nilai dari sensor BMP280 sesuai keadaan saat itu juga (real-time).

[embed]

Ketika botol minuman dingin didekatkan ke sensor BMP280, nilai temperaturnya akan perlahan mengecil. Hebat, kamu sudah berhasil menggunakan sensor eksternal BMP280! ^^


메타데이터
post_id
65c8d412254e
slug
belajar-esp32-external-sensor-65c8d412254e
url
https://medium.com/@mega.eph/belajar-esp32-external-sensor-65c8d412254e
canonical_url
https://medium.com/@mega.eph/belajar-esp32-external-sensor-65c8d412254e
author_url
https://medium.com/@mega.eph
status
ok
fetched_at
2026-06-23 03:48:11