Interfacing BMP280 dengan ESP32 pada I2C
Hello sistem embedders!
Balik lagi sama akuu, dan sekarang kita masuk ke project ke 4yeyeyey!!
Diproject kali ini kita akan bermain-main dengan external sensor, yaitu Sensor Barometric Pressure (BMP280).
Sebelum masuk lebih jauh ayo kita kenalan dulu dengan sensor BMP280.
Sensor BMP280 mengintegrasikan sensor tekanan atmosfer, suhu, dan kelembapan relatif dalam satu perangkat.
Dapat dilihat di gambar di atas, Sensor BMP280 mempunyai 6 pin, yaitu:
- VDD (pin yang harus disambung ke tegangan positif),
- GND (ground),
- SCL (Serial Clock Line) untuk menghantarkan sinyal clock.
- SDA (Serial Data) untuk mentransaksikan data.
- CSB adalah pin Chip Select
-SDO adalah pin Serial Data Out / Mikrokontroler In Sensor Out, untuk data yang dikirim dari BMP280 ke prosesor Anda
Pin chip select (CSB) dan serial data output (SDO) pada BMP 280 hanya diperlukan jika komunikasi berbasis SPI (empat kabel) diterapkan.
KOMPONEN DAN PERANGKAT
1. ESP32 Development Board (aku pakai ESP32 DEVKIT DOIT V1 dengan 30 GPIO)
2. Breadboard 830 titik
3. Kabel Micro-USB
4. 1 buah BMP280 dengan 6 pin (Barometric Presssure Sensor)
5. 4 buah Kabel Jumper Male-Male
Prasyarat memulai project: Menginstall Arduino IDE untuk Pemrograman ESP32
SETUP BOARD DAN KOMUNIKASI
- Setup board seperti di gambar ini
PENJELASAN SINGKAT BOARD
-Pin VCC/VIN pada BMP280 dihubungkan dengan pin 3V3 pada ESP32
-Pin GND pada BMP280 dihubungkan dengan pin GND pada ESP32
-Pin SCL pada BMP280 dihubungkan dengan GPIO 22 pada ESP32
- Pin SDA pada BMP280 dihubungkan dengan GPIO 21 pada ESP32
2. Hubungkan ESP32 ke laptop dengan kabel micro-USB
3. Buka Arduino IDE dan install library Adafruit BMP280
- Buka menu Sketch > Include Library > Manage Library
-Cari library dengan keyword ‘BMP280’. Install library Adafruit BMP280
MENJALANKAN PROGRAM EXAMPLE
- Buka menu File > Example> Adafruit BMP280 Library > bmp280test
2. Akan muncul window sketch program baru, dengan kode program seperti di bawah ini:
3. Upload dan tunggu hingga status ‘Done Uploading’
4. Buka serial monitor (icon mirip mata di sudut kanan atas window Arduino IDE), set baud rate ke nilai yang sesuai dengan program yaitu 9600
5. Jika berhasil, window serial monitor COM3 akan menampilkan informasi seperti di bawah ini
TROUBLESHOOTING:
Apabila telah mengikuti langkah di atas namun pada serial monitor yang muncul adalah pesan “Could not find a valid bmp 280 sensor, check wiring.”
Maka bisa ikuti langkah di bawah ini:
- Check wiring/ cek kabel” (ternyata aman)
- Check I2C address:
- Upload kode berikut ke ESP32 anda
https://raw.githubusercontent.com/RuiSantosdotme/Random-Nerd-Tutorials/master/Projects/LCD_I2C/I2C_Scanner.ino - Buka serial monitor (Icon bentuk seperti mata di sudut kanan atas ARDUINO IDE)
- Set serial baud rate ke besaran yang sesuai dengan kode (115200)
- Pada tampilan Serial Monitor akan muncul tulisan ‘I2C device found at address 0x76 address bisa saja berbeda tapi pada umumnya 0x76
- Kembali lagi pada window sketch program example, kemudian pada line program if (!bmp.begin()) { tambahkan address I2C sehingga menjadi
if (!bmp.begin(0x76)) { - Kemudian upload lagi program.