ESP32 Tutorial Part 4 (Eksternal Sensor)
Haloo balik lagi di tutorial ESP32, kali ini kita akan mencoba untuk menguji eksternal sensor untuk diintergerasikan dengan ESP32. Nah untuk itu langsung siapin bahan bahan dibawah ini ya!
A. Komponen
1. ESP32
Nah ini bebas ya yang berapa pin, kalo punyaku kayak gambar diatas alias yang 30 pin.
2. Kabel Micro USB
3. Arduino IDE
Nah untuk yang belum install Arduino IDE, bisa dilihat klik link ini ya!
4. Breadboard 830 titik
Sebenernya ngga 830 titik pun nggapapa, cuman biar lebih luas aja hehe, harganya juga murah kok. Sekitar 16 ribuan aja :))
5. Jumper Wire (Male to female)
Nah disini aku pake jumper wire male to female. Jadi dari breadboard dimasukkan yang lancip (male) sedangkan ke ESP32 nya dimasukkan yang bolong (female).
Sebenernya lebih baik pakai yang male to male, jadi kaki ESP32-nya dimasukkan ke breadboard, lalu tinggal pakai kabel male to male. Tapi karena ESP32 ku pas dimasukin ke breadboar, kakinya bengkok semua jadi trauma hehehe.
6. Eksternal Sensor (BMP280)
Nah untuk eskternal sensornya sendiri, aku belinya yang BMP280. Anehnya tulisan di sensornya itu BME280. Nah tapi setau aku, kalo BMP280 itu kakinya 6 (kayak di gambar), sedangkan yang BME280 itu kalo ngga salah kakinya cuma 4. *punten kalo salah
Dari segi harga pun beda, BMP280 yang aku beli itu harganya sekitar 17 ribu, sedangkan yang BME280 harganya sekitar 40 ribu.
Tapi mau pake sensor yang mana aja bebas kok, gamasalah. Cuman di kodingannya aja bedanya :)).
Nah kalo bahan-bahannya udah lengkap, cuss kita langsung ke praktikumnya
B. Skema
Nah untuk skema pemasangan sensor ke ESP32-nya, bisa dilihat kayak gambar dibawah ini ya!
Nah setelah pemasangan komponen ke breadboardnya selesai. Langsung aja colokin ESP32-nya ke komputer dengan kabel Micro USB.
C. Install Library Adafruit BMP280
Nah sekarang karena kita menggunakan eksternal sensor, maka kita harus menginstall library tambahan untuk membaca pembacaan dari sensornya di Arduino IDE-nya. Kita memakai library Adafruit BMP280. Nah untuk cara penginstallannya bisa dilihat seperti dibawah ini ya!
1. Buka Arduino IDE, lalu klik Sketch -> Include Library -> Manage Libraries. Nah tinggal klik aja Manage Libraries-nya.
2. Lalu pada kolom pencarian ketikkan “Adafruit BMP280”. Disini tergantung sensor yang dipakai ya, karena aku pakai sensor BMP280. Kalo pakai sensor BME280 tinggal tulis aja “Adafruit BME280”. Ataupun sensor lainnya :D.
D. Source Code
Untuk source code-nya dapat dilihat pada code dibawah ini ya!. Ohiya untuk code-nya yang dicetak tebal hehe.
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP280.h>
/*Disini kita menambahkan header untuk menggunakan library Adafruit BMP280*/#define BMP_SCK (13)
#define BMP_MISO (12)
#define BMP_MOSI (11)
#define BMP_CS (10)
/*Nah karena kita disini menggunakan SPI Communication (Serial Peripheral Interface) yang digunakan untuk berkomunikasi dengan perangkat lainnya.*/ berikut adalah contoh penggunaan protokol komunikasi I2C, kita membuat objek dari Adafruit_BMP280 dengan nama “bmp”/* berikut adalah contoh penggunaan protokol komunikasi I2C, kita membuat objek dari Adafruit_BMP280 dengan nama “bmp”*/
Adafruit_BMP280 bmp; // I2C
//Adafruit_BMP280 bmp(BMP_CS); // hardware SPI
//Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
/*Di-comment tapi kok di bold? nah dari sumber yang penulis cari, kita harus menulis comment tersebut tergantung dari serial protocol apa yang kita gunakan, hardware atau software*/void setup() {
Serial.begin(9600);
Serial.println(F(“BMP280 test”));/*Menginisiasi sensor dengan addres 0x76*/
if (!bmp.begin(0x76)) {
Serial.println(F(“Could not find a valid BMP280 sensor, check wiring!”));
while (1);
/*Jika tidak sesuai maka serial monitor akan memprint bahwa sensor BMP280 belum valid dan akan meminta untuk men-check wiring*/
}/* Default setting yang ada pada Sensor. */
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temperature oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
}void loop() {
Serial.print(F(“Temperature = “));
Serial.print(bmp.readTemperature());
/*Untuk memprint pembacaan temperature pada sensor dengan parameter celcius*/
Serial.println(“ *C”);
/*Untuk mem-print hasil temperatur ke layar*/Serial.print(F(“Pressure = “));
Serial.print(bmp.readPressure());
/*Untuk mem-print hasil pressure (tekanan) ke layar dengan parameter pascal*/
Serial.println(“ Pa”);
/*Memprint ke layar dengan satuan pascal*/Serial.print(F(“Approx altitude = “));
Serial.print(bmp.readAltitude(1013.25));
/*Tekanan standar yang digunakan universal*/
Serial.println(“ m”);
/*Untuk mem-print hasil perkiraan ketinggian ke layar*/Serial.println();
delay(2000);
/*Untuk memprint ketiga parameter diatas dengan delay 2000 milisecond, atau dengan jeda 2 detik*/}
Ohiya diatas sempat disinggung tentang SPI, nah SPI sendiri terdapat pin-pin yang ada pada ESP32. Berikut rinciannya
Nah setelah itu kita tinggal menekan tombol upload, lalu buka serial monitor :)). Maka hasilnya akan seperti pada gambar dibawah ini
Analisis mengapa sensor bisa terbaca dikarenakan fungsi bmp.readTemperatur(), bmp.readPressure(), dan bmp.readAltitude. Dari fungsi default tersebut maka pembacaan dari sensor eksternal BMP280 akan ditampilkan di serial monitor. Pertama kali mencoba, source code yang penulis coba tidak berjalan setelah beberapa kali percobaan. Namun setelah mengganti kabel jumper, hasil pembacaan muncul di serial monitor. Maka dari itu ketika serial monitor tidak menampilkan apa-apa, aku sarankan untuk check wiring-nya ya!. Bisa saja kabelnya putus atau bagaimana hehe. Selamat mencobaa~
Ohiya untuk video demo dari percobaan sensor eksternal diatas, dapat dilihat pada video dibawah ini ya!!
Untuk itu, sekian tutorial ESP32 tentang eksternal sensor menggunakan sensor BMP280. Mohon maaf jika ada kesalahan dari penulis yang masih belajar ini. Terima kasih telah membaca dan sampai jumpa di lain project!! :D
References:
1. www.randomnerdstutorial.com
2. www.arduino.cc
Best Regards,
Ilham Alvindo Riandova (18219063),
Sistem dan Teknologi Informasi,
Institut Teknologi Bandung.