top of page

4th Project: ESP32 Eksternal Sensor (BMP-280)

Pada project kali ini akan dilakukan eksperimen menggunakan salah satu sensor yaitu sensor sensor BMP-280 (untuk mengukur tekanan, temperatur, dan kelembaban). Sensor BMP280 mengintegrasikan sensor tekanan atmosfer, suhu dan kelembaban relatif dalam satu perangkat, dengan presisi tinggi, konsumsi energi rendah.


  • Mengenal BMP280


BMP280 merupakan sensor untuk mengukur tekanan udara dan sensor ini juga mempunyai kemampuan untuk mengukur suhu dan kelembaban yang populer dikalangan programmer, dan BMP280 ini merupakan versi terbaru dari versi sebelumya yaitu BMP180 dan BMP085 yang mempunyai akurasi tinggi untuk membaca variable tekanan udara.


Sensor BMP280 dapat melakukan pengukuran tekanan udara dengan range dari 300 Pa sampai 110.000 Pa, memiliki akurasi relatif sekitar 0.12 hPa dan akurasi absolut sekitar 1 hPa. Salah satu faktor yang mempengaruhi tekanan udara adalah temperatur, dimana semakin rendah temperatur, maka tekanan udara akan semakin meningkat.


Pada BMP280, terdapat 6 pin, yaitu VCC, GND, SCL, SDA, CSB, dan SDO, yang masing-masing memiliki kegunaannya sebagai berikut :

Setelah berkenalan dengan sensor BMP280, maka kita akan langsung masuk ke pembahasan tentang proyek keempat kita.


  • Komponen APA saja yang mesti kita persiapkan?

1. ESP32

2. Breadboard

3. Male to Male Jumper Cable

4. Micro-USB Cable

5. Sensor BMP 280


6. Laptop / PC yang telah terinstal Arduino IDE


  • Skema – ESP32 dengan BMP280 menggunakan I2C

Kita akan menggunakan komunikasi I2C dengan modul sensor BMP280. Untuk itu, sambungkan sensor ke ESP32 melalui pin SDA Dan SCL, seperti yang ditunjukkan pada gambar skema berikut.



Dengan mengikuti skema diatas, maka rangkaian yang kamu buat akan tampak seperti gambar di bawah ini:



  • Instalasi Library yang dibutuhkan

Agar sensor BMP280 bisa terbaca pada Arduino IDE, kita harus menambahkan librarynya pada Arduino IDE. Caranya :

  1. Buka aplikasi Arduino IDE yang telah ter-install pada device kamu.

  2. Pilih Tools > Manage Libraries.


3. Pada kotak pencarian Library Manager yang muncul, lakukan pencarian “bmp280”, lalu pilih Install Adafruit BMP280 Library by Adafruit.



4. Selanjutnya, Install Adafruit_Sensor Library


5. Bila sudah terinstall silahkan direstart Arduino IDE


  • Menjalankan ESP32 untuk membaca temperatur & tekanan udara


Pertama, buka Arduino IDE untuk menulis dan mengunggah program ke ESP32



Kedua, konfigurasikan Arduino IDE dengan memilih menu Board on board “DOIT ESP32 DEVKIT V1” (Tools > Board > ESP32 Arduino > DOIT ESP32 DEVKIT V1) dan Pilih menu Port dan pilih port yang sesuai

Selanjutnya kita buat Kode Programnya: kita gunakan kode program bawaan Arduino dengan cara mengakses menu File --> Examples --> Adafruit BMP280 Library --> bmp280test

#include <Wire.h>

#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp; // I2C

void setup() {

Serial.begin(9600);

while ( !Serial ) delay(100); // wait for native usb

Serial.println(F("BMP280 test"));

unsigned status;

status = bmp.begin(0x76);

if (!status) {

Serial.println(F("Could not find a valid BMP280 sensor, check wiring or "

"try a different address!"));

Serial.print("SensorID was: 0x"); Serial.println(bmp.sensorID(),16);

Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n");

Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n");

Serial.print(" ID of 0x60 represents a BME 280.\n");

Serial.print(" ID of 0x61 represents a BME 680.\n");

while (1) delay(10);

}

}

void loop() {

Serial.print(F("Temperature = "));

Serial.print(bmp.readTemperature());

Serial.println(" *C");

Serial.print(F("Pressure = "));

Serial.print(bmp.readPressure());

Serial.println(" Pa");

Serial.print(F("Approx altitude = "));

Serial.print(bmp.readAltitude(1013.25)); /* Adjusted to local forecast! */

Serial.println(" m");

Serial.println();

delay(2000);

}

Dan tangkapan pada layar saya seperti ini..



Lakukan compile kode program dengan klik Verify, kemudian klik Upload untuk melakukan upload program ke ESP32. Seperti gambar dibawah ini :



Setelah berhasil melakukan upload, buka Serial Monitor pada Arduino IDE yang terletak di kanan atas atau kamu dapat memilih Tools > Serial Monitor, lalu ubah baud rate pada Serial Monitor menjadi 9600.

Pada Serial Monitor, kamu akan melihat nilai hasil pembacaan temperatur dalam satuan derajat Celcius dan Fahrenheit dan tekanan udara dalam satuan hPa, Seperti gambar dibawah ini :



  • Code Analysis


Setelah berhasil melakukan eksperimen external sensor dengan menggunakan sensor BMP280 untuk mengukur temperatur dan tekanan udara, maka kita akan mempelajari kode program yang telah kita gunakan.

Pada awal kode program, kita perlu memanggil beberapa library yang diperlukan dengan menggunakan #include.

// Memanggil library yang diperlukan

#include <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_BMP280.h>

Komunikasi yang dipakai pada modul ini adalah protokol I2C Adafruit_BMP280 bmp; // I2C dan mulai melakukan persiapan komunikasi serial :

Serial.begin(9600);

Selanjutnya program melakukan inisialisasi sensor

status = bmp.begin(); if (!status) { Serial.println(F("Could not find a valid BMP280 sensor, check wiring or " "try a different address!"));

Mencetak hasil

void loop() { Serial.print(F("Temperature = ")); Serial.print(bmp.readTemperature()); Serial.println(" *C");

Dengan demikian, eksperimen kita telah berhasil! Dan kamu telah memiliki pemahaman tentang sensor, baik internal sensor maupun external sensor. Sampai ketemu lagi ya di proyek selanjutnya yang akan membahas mengenai display. Thanku!




Comments


bottom of page