ESP 32: PART 4— EXTERNAL SENSOR

Fahrel Naufal
15 min readFeb 20, 2021

--

Hai temen-temen semua! Kenalin lagi nih namaku Fahrel. Selamat datang kembali di tulisanku. Kali ini aku mau ngajak kalian untuk bereksperimen dengan sensor eksternal yang ada di dalam ESP32.

Pernah ga sih temen-temen liat lampu yang menyala dengan menggunakan sensor temperatur dan kelembaban? Pernah gak temen-temen melihat alat yang bisa mengukur suhu dan kelembaban lingkungan di sekitar kalian? Nah ternyata nih, ESP32 punya kemampuan untuk melakukan hal itu dengan menggunakan sensor eksternal. Wah keren ga sih?! Oke jadi tanpa banyak basa-basi, kita langsung aja untuk mulai bereksperimen.

Oiyaa, sebelumnya buat temen-temen yang mau lihat keseluruhan eksperimenku bisa banget untuk melihat videonya di link berikut ini

Oke jadi secara keseluruhan kita akan membuat 3 eksperimen, yaitu:

  1. Sensor BMP-280 yang bisa kita gunakan untuk mengukur tekanan dan temperatur
  2. Sensor DHT11 yang bisa kita gunakan untuk mengukur temperatur dan kelembaban
  3. Sensor MPU-6050 yang bisa kita gunakan untuk mengukur percepatan gravitasi dan kecepatan gerak (akselerometer dan giroskop)

Overview

Nah, sebelum kita beranjak lebih jauh, mungkin kita masih bertanya-tanya, apa sih sensor itu?

Apa sensor itu?

Nah, sensor itu merupakan perangkat yang digunakan untuk mendeteksi perubahan besaran fisik. Besaran fisiknya seperti tekanan, gaya, besaran listrik, cahaya, gerakan, kelembaban, suhu, dll. Setelah mengamati terjadinya perubahan, input yang terdeteksi akan diubah menjadi output yang dapat dimengerti kita sebagai manusia baik melalui perangkat sensor itu sendiri maupun secara elektronik.

Nah di eksperimen kali ini kita berfokus untuk melakukan percobaan dengan sensor yang bisa mengukur tekanan, temperatur, kelembaban, akselerasi dan giroskop.

EKSPERIMEN

Nah, tanpa terlalu banyak panjang lebar, kita langsung aja masuk ke bagian yang paling ditunggu-tunggu yaitu bagian eksperimen!

1. Sensor BMP-280

Sensor BMP-280

Introduction

Apa sih Sensor BMP-280 itu?

Jadi, sensor BMP280 mengintegrasikan sensor tekanan atmosfer, suhu, dan kelembaban dalam satu perangkat dengan presisi tinggi dan konsumsi energi rendah. Sensor Ini terhubung langsung ke mikrokontroler melalui I2C atau SPI.

Nah, sensor ini dapat digunakan untuk menghitung ketinggian dengan presisi tinggi seperti barometer dan menjadikannya sensor yang banyak digunakan dalam sistem Autopilot untuk Drone (UAV), mampu memberikan pengukuran ketinggian dengan akurasi hingga 1m.

WAHH KEREN BANGET GAK SIH ?!

Aplikasi lain dari penggunaan sensor ini bisa kita gunakan untuk pemantauan iklim, monitor kesehatan atau kebugaran, otomasi rumah dan penyejuk udara.

Apa aja sih spesifikasi teknis dari sensor BMP-280?

  • Antarmuka komunikasi: I2C atau SPI (3.3V)
  • Tegangan Operasi: 1.8V — 3.3V DC
  • Akurasi mutlak: 1 hPa
  • Kisaran suhu: -40 ° C hingga 85 ° C
  • Akurasi suhu: 1 ° C
  • Resolusi suhu: 0,01 ° C
  • Akurasi RH: + -3%
  • Rentang Kelembaban Relatif: 0–100% RH
  • Konsumsi daya sangat rendah

Gimana sih caranya menghubungkan kabel dari sensor BMP280 ke ESP32?

Pin Vin di sensor BMP280 dihubungkan ke pin 3v3 pada ESP32. Pin ground (GND) di sensor BMP280 dihubungkan ke pin GND pada ESP32. Pin SCL di sensor BMP280 dihubungkan ke pin GPIO 22 pada ESP32. Pin ground SDA di sensor BMP280 dihubungkan ke pin GPIO 21 pada ESP32.

Komponen

Daftar komponen dan perangkat yang digunakan adalah sebagai berikut.

  1. ESP32
  2. Sensor BMP-280
  3. Breadboard (opsional)
  4. Kabel jumper
  5. Kabel USB

Nah buat temen-temen yang menggunakan sensor BMP-280 dengan kaki-kakinya belum disolder, maka temen-temen harus ngesolder dulu. Temen-temen perlu nyiapin tenol dan solder dan mulai menyolder kaki-kaki tersebut.

Tenol
Solder

Diagram Skema

Gambar diagram skema perangkat keras/ rangkaian sebagai berikut

Diagram Skema (dibuat dengan software Fritzing)

Untuk melakukan eksperimen ini, kita menggunakan skema diagram seperti gambar di atas. Kita bisa menggunakan breadboard untuk meletakkan sensor dan ESP32 yang digunakan maupun tidak (jadi bersifat opsional aja). Namun, pada eksperimen yang aku lakukan aku melakukannya tanpa menggunakan breadboard.

Pertama, kita hubungkan pin 3V3 pada ESP32 ke pin VCC pada BMP280 dengan menggunakan kabel jumper. Kemudian kita juga hubungkan pin GND pada masing-masing ESP32 dan BMP280 dengan kabel jumper. Setelah itu, kita hubungkan pin GPIO 21 pada ESP32 dengan pin SDA pada BMP280. Terakhir, kita hubungkan pin GPIO 22 pada ESP32 dengan pin SCL pada BMP280.

Install Library

Nahh sebelum kita masuk ke kode programnya, kita harus menginstall library yang kita gunakan untuk eksperimen kali ini dulu nih temen-temen. Pada eksperimen kali ini, kita akan menggunakan library Adafruit BMP280.

Kita bisa menginstall library itu dengan membuka software Arduino IDE terlebih dahulu. Kemudian kita membuka window Sketch → Include Library → Manage Libraries

Manage Libraries

Setelah itu, kita bisa ketik “BMP280” di kotak pencarian Library Manager dan menginstallnya.

BMP280 di Library Manager

Kode Program

Nah, di bagian ini kita akan membuat kode programnya nih! Kode program yang dibuat bisa dilihat seperti ini

Kode Program (1)

Kode program untuk melakukan eksperimen ini bisa kita lihat seperti gambar di atas.

  • LIBRARY

Pertama, kita memasukkan library yang akan kita gunakan dalam eksperimen, Seperti library wire untuk bisa menggunakan I2C, library SPI, dan library Adafruit_BMP280 untuk mengakses sensornya.

#include <Wire.h>#include <SPI.h>#include <Adafruit_BMP280.h>
  • SPI COMMUNICATION

Karena kita akan menggunakan komunikasi I2C, kita perlu menentukan pin SPI seperti ini

#define BMP_SCK (13)#define BMP_MISO (12)#define BMP_MOSI (11)#define BMP_CS (10)
  • I2C

Pada eksperimen kali ini kita menggunakan protokol komunikasi I2C secara default. Bisa kita lihat bahwa kita hanya perlu membuat objek Adafruit_BMP280 bernama bmp.

Adafruit_BMP280 bmp;
  • Setup()

Pada bagian fungsi setup(), kita mulai komunikasi serialnya dengan baud rate sebesar 9600 seperti ini.

void setup() {Serial.begin(9600);Serial.println(F(“BMP280 test”));

Kemudian kita mengatur address dari i2c yang digunakan

if (!bmp.begin(0x76)) {Serial.println(F(“Could not find a valid BMP280 sensor, check wiring!”));while (1);}

Eh tapi dari mana kita tau address i2c kita?

Kita bisa melakukannya dengan membuat kode program baru lagi seperti di bawah ini.

Kode Program i2c (1)
Kode Program i2c (2)

Setelah itu, kemudian kita upload programnya dan kita tampilkan ke serial monitor kita.

Pada serial monitor akan muncul tulisan seperti di bawah ini. Bisa kita lihat nih temen-temen kalau I2C kita berada di address 0x76.

Address i2c

Nah, setelah itu, kita kembali lagi ke mode program BP280 kita. Kemudian kita lanjutkan kode program tadi dengan mengatur default dari data sheet yang berisi mode operasi, oversampling temperatur, oversampling tekanan, melakukan filtering, dan mengatur waktu tunggu atau standby.

bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, // Mode operasiAdafruit_BMP280::SAMPLING_X2, // Oversampling temperaturAdafruit_BMP280::SAMPLING_X16, // Oversampling tekananAdafruit_BMP280::FILTER_X16, // melakukan filteringAdafruit_BMP280::STANDBY_MS_500); // waktu tunggu atau standby
Kode Program (2)

Nah, selanjutnya di bagian fungsi loop(), kita menuliskan kode yang berfungsi untuk membaca suhu, tekanan, dan ketinggian dari sensor yang kita gunakan dan mengirimkannya ke serial monitor.

Sensor bisa membaca suhu, tekanan, dan ketinggian dengan menggunakan metode pada objek bmp seperti ini.

bmp.readTemperature () — untuk membaca suhu dalam Celcius;

bmp.readPressure () — untuk membaca tekanan dalam hPa (hektoPascal = millibar);

bmp.readAltitude(1013.25) — memperkirakan ketinggian dalam meter berdasarkan tekanan di permukaan laut dan menyesuaikan dengan perkiraan lokal.

Eksperimen dan Demo

Nah, setelah kita menulis kode program yang dibuat, kemudian kita compile program yang telah kita buat.

Kita compile atau verify dulu kode program yang kita buat untuk memastikan apakah ada yang error atau enggak.

Last, kita upload deh kode programnya ke ESP32 dengan menghubungkannya dengan connector USB.

Hasil yang dibaca sensor kemudian dikirimkan ke Serial Monitor untuk ditampilkan seperti berikut ini.

Hasil Pembacaan Sensor BMP-280 dengan Serial Monitor

Hasil dan Analisis

Hasil Serial Monitor

Dari eksperimen tadi bisa kita lihat ketika kita membuka Serial Monitor dengan baud rate sebesar 9600, maka akan muncul hasil pembacaan sensor berupa temperatur, tekanan, dan perkiraan ketinggian dari permukaan laut.

Nah, bisa kita lihat nih temen-temen kalau pada saat aku melakukan eksperimen itu, sensor mencatat suhu lingkungan pada saat aku melakukan eksperimen sebesar 28.90 derajat Celcius, tekanan sebesar 99418 Pa, dan perkiraan ketinggian sebesar 159.9 meter.

2. Sensor DHT11

Introduction

Sensor DHT11

Apa sih sensor DHT11 itu?

Jadi, sensor DHT11 bisa kita gunakan untuk mengukur temperatur dan kelembaban. Sensor ini berisi chip untuk melakukan konversi dari analog ke digital dan mengeluarkan sinyal digital dengan suhu dan kelembaban. Ini membuat sensor sangat mudah digunakan dengan mikrokontroler apapun, termasuk ESP32 yang akan gunakan dalam eksperimen ini.

Apa aja sih fitur yang dimiliki sensor DHT11 ini?

  1. Memiliki rentang suhu 0 hingga 50 ºC +/- 2 ºC
  2. Memiliki kisaran kelembaban 20 hingga 90% +/- 5%
  3. Memiliki resolusi (kelembaban sebesar 1% dan suhu sebesar 1ºC)
  4. Memiliki tegangan operasi 3–5,5 V DC
  5. Memiliki pasokan arus 0,5–2,5 mA

Terus gimana sih pinout dari sensor DHT11 ini?

Sensor DHT memiliki empat pin seperti yang ditunjukkan pada gambar berikut.

Pin DHT11

DHT pin 1 dihubungkan dengan pin 3v3 pada ESP32, pin 2 dihubungkan dengan seluruh GPIO di ESP32 (termasuk dengan resistor pull-up 10k), pin 3 jangan dihubungkan ke ESP32, dan pin 4 dihubungkan dengan pin GND pada ESP32

Komponen

Daftar komponen dan perangkat yang digunakan sebagai berikut.

  1. ESP32
  2. DHT11
  3. Resistor 10k ohm
  4. Breadboard
  5. Kabel jumper

Diagram Skema

Gambar diagram skema perangkat keras/ rangkaian sebagai berikut

Diagram skema (dibuat dengan software Fritzing)

Untuk melakukan eksperimen kali ini, diagram yang digunakan seperti pada gambar di atas. Pasang sensor DHT11 pada breadboard. Kemudian kita hubungkan pin GPIO 27 ESP32 pada kaki kedua DHT11. Kemudian kita pasangkan juga resistor 10k ohm pada kaki kedua DHT11 di breadboard. Kemudian kita hubungkan pin 3V3 pada ESP32 dengan bagian positif dari breadboard. Kemudian kita hubungkan juga ground (GND) pada ESP32 dengan sisi negatif dari breadboard. Terakhir, hubungkan juga sisi positif breadboard dengan kaki pertama DHT11 dengan kabel jumper dan sisi negatif breadboard dengan kaki keempat DHT11 dengan kabel jumper juga,

LIBRARY

Sebelum kita membuat kode program yang akan digunakan, kita terlebih dahulu menginstall library yang digunakan yaitu DHT Sensor Library dan Adafruit Unified Sensor di bagian Library Manager di Arduino IDE temen-temen

Sensor DHT Library Manager
Adafruit Unified Sensor Library Manager

Kode Program

Nah, kali ini kita mulai membuat kode programnya. Kode program yang digunakan dalam eksperimen kali ini sebagai berikut.

Kode Program (1)
Kode Program (2)

Pertama, kita import terlebih dahulu library yang akan kita gunakan pada eksperimen kali ini.

#include “DHT.h”

Kemudian kita tentukan pin digital yang akan dihubungkan dengan pin sensor DHT. Pada eksperimen kali ini kita akan menghubungkannya ke GPIO 27.

#define DHTPIN 27 // Pin yang terhubung dengan sensor

Kemudian kita tentukan sensor DHT11 yang akan kita gunakan

#define DHTTYPE DHT11

Setelah itu, kita buat objek DHT bernama dht pada pin dan dengan jenis sensor yang telah kita tentukan sebelumnya.

DHT dht(DHTPIN, DHTTYPE);

Pada bagian setup(), kita inisialisasi Serial pada baud rate 9600 dan mencetak pesan tersebut ke Serial Monitor.

void setup() {Serial.begin(9600);Serial.println(F(“DHTxx test!”));dht.begin();}

Pada bagian fungsi loop () dimulai dengan delay 2000 ms (2 detik), karena periode pengambilan sampel maksimum DHT22 adalah 2 detik. Jadi, kita hanya bisa mendapatkan pembacaan setiap dua detik.

void loop() {delay(2000);

Suhu dan kelembaban kita kembalikan dalam format float. Kita membuat variabel float h, t, dan f untuk menyimpan kelembaban, suhu dalam Celcius dan suhu dalam Fahrenheit. Untuk mendapatkan kelembaban dan suhu kita dapat menggunakan fungsi readHumidity() dan readTemperature() pada objek dht.

// sensor membaca suhu atau kelembabanfloat h = dht.readHumidity();// Membaca suhu dalam Celciusfloat t = dht.readTemperature();

Jika temen-temen ingin mendapatkan suhu dalam derajat Fahrenheit, temen-temen harus meneruskan parameter true sebagai argumen ke metode readTemperature ().

// Membaca suhu dalam Fahrenheit (isFahrenheit = true)float f = dht.readTemperature(true);

Terdapat kondisional if statement yang memeriksa apakah sensor mengembalikan pembacaan suhu dan kelembaban yang valid.

// mengecek apakah ada pembacaan yang gagalif (isnan(h) || isnan(t) || isnan(f)) {Serial.println(F(“Failed to read from DHT sensor!”));return;}

Setelah mendapatkan kelembaban dan suhu, pada library ini memiliki fungsi yang menghitung indeks panas.

// Menghitung index suhu dalam Fahrenheitfloat hif = dht.computeHeatIndex(f, h);// Menghitung index suhu dalam Celcius (isFahreheit = false)float hic = dht.computeHeatIndex(t, h, false);Kemudian kita cetak hasilnya ke Serial MonitorSerial.print(F(“Humidity: “));Serial.print(h);Serial.print(F(“% Temperature: “));Serial.print(t);Serial.print(F(“°C “));Serial.print(f);Serial.print(F(“°F Heat index: “));Serial.print(hic);Serial.print(F(“°C “));Serial.print(hif);Serial.println(F(“°F”));}

Eksperimen dan Demo

Hasil yang dibaca sensor kemudian dikirimkan ke Serial Monitor untuk ditampilkan seperti berikut ini.

Hasil Pembacaan Sensor DHT 11
Hasil Pembacaan Sensor DHT 11 dengan Serial Monitor

Hasil dan Analisis

Hasil Serial Monitor

Dari hasil pada gambar di atas, bisa kita lihat bahwa DHT11 bisa berfungsi dengan membaca kelembaban, suhu, dan indeks panas yang diterima. Bisa kita lihat pada Serial Monitor tersebut bahwa kelembaban (humidity) yang dibaca sensor pada saat aku melakukan eksperimen adalah sebesar 78%. Suhu yang dibaca adalah sekitar 28.40 derajat Celcius atau 83.12 derajat Fahrenheit dan indeks panas yang dibaca sekitar 90.98 derajat Fahrenheit.

3. Sensor MPU-6050

Introduction

Apa sih sensor MPU-6050 itu?

Jadi, sensor ini adalah modul dengan akselerometer 3 sumbu dan giroskop 3 sumbu.

Sensor MPU-6050

Giroskop ini mengukur kecepatan rotasi (rad / s), yang merupakan perubahan posisi sudut dari waktu ke waktu di sepanjang sumbu X, Y, dan Z (roll, pitch, dan yaw). Nah, hal ini bisa memungkinkan temen-temen untuk menentukan orientasi suatu objek.

Orientasi sumbu x, y, dan z

Akselerometer ini mengukur percepatan suatu benda. Sensor ini merasakan gaya statis seperti gravitasi (9.8m / s2) atau gaya dinamis seperti getaran atau gerakan. MPU-6050 mengukur percepatan pada sumbu X, Y, dan Z. Benda statis pada umumnya memiliki percepatan sumbu Z sama dengan gaya gravitasi dan harus percepatan sumbu X dan Y bernilai 0

Komponen

Daftar komponen dan perangkat yang digunakan

  1. Sensor MPU-6050
  2. ESP32
  3. Breadboard (opsional)
  4. Kabel jumper
  5. Kabel USB

Nah buat temen-temen yang menggunakan Sensor MPU-6050 dengan kaki-kakinya belum disolder, maka temen-temen harus ngesolder dulu. Temen-temen perlu nyiapin tenol dan solder dan mulai menyolder kaki-kaki tersebut.

Menyolder kaki sensor MPU-6050
Menyolder Sensor MPU-6050

Diagram Skema

Gambar diagram skema perangkat keras/ rangkaian sebagai berikut

Diagram skema (dibuat dengan software Fritzing)
Skema Percobaan

Untuk melakukan eksperimen ini, kita menggunakan skema diagram seperti gambar di atas. Kita bisa menggunakan breadboard untuk meletakkan sensor dan ESP32 yang digunakan maupun tidak (jadi bersifat opsional aja. Namun, pada eksperimen yang aku lakukan aku melakukannya tanpa menggunakan breadboard.

Pertama, kita hubungkan pin 3V3 pada ESP32 ke pin VCC pada MPU-6050 dengan menggunakan kabel jumper. Kemudian kita juga hubungkan pin GND pada masing-masing ESP32 dan MPU-6050 dengan kabel jumper. Setelah itu, kita hubungkan pin GPIO 21 pada ESP32 dengan pin SDA pada MPU-6050. Terakhir, kita hubungkan pin GPIO 22 pada ESP32 dengan pin SCL pada MPU-6050.

Library

Nahh sebelum kita masuk ke kode programnya, kita harus menginstall library yang kita gunakan untuk eksperimen kali ini dulu nih temen-temen. Pada eksperimen kali ini, kita akan menggunakan library Adafruit MPU6050. Nah, untuk menggunakan library ini, kita perlu menginstall library Adafruit Unified Sensor dan library Adafruit Bus IO.

Kita bisa menginstall library itu dengan membuka software Arduino IDE terlebih dahulu. Kemudian kita membuka window Sketch → Include Library → Manage Libraries

Manage Libraries pada Arduino IDE

Kemudian kita ketik “adafruit mpu6050” pada kotak pencarian di Library Manager dan install library itu.

Install Adafruit MPU6050

Kemudian kita ketik “Adafruit Unified Sensor” di Library Manager dan menginstallnya.

Install Adafruit Unified Sensor

Terakhir, kita install library “Adafruit Bus IO” di Library Manager Arduino IDE.

Menginstall Adafruit BusIO

Kode Program

Nah, selanjutnya kita akan membuat kode program yang akan digunakan. Kode program yang dibuat bisa dilihat seperti ini.

Kode Program (1)
Kode Program (2)
Kode Program (3)
Kode Program (4)

Untuk melakukan eksperimen, ini kita harus membuat kode program seperti gambar di atas. Pertama, kita harus memasukkan library yang diperlukan untuk sensor MPU-6050: Adafruit_MPU6050 dan Adafruit_Sensor.

#include <Adafruit_MPU6050.h>#include <Adafruit_Sensor.h>

Setelah itu, kita buat sebuah object Adafruit_MPU6050 dengan nama mpu tuntuk mengendalikan kerja dari sensor MPU tersebut.

Adafruit_MPU6050 mpu;

Kemudian pada bagian fungsi setup(), kita inisialisasi serial monitor yang akana kita gunakan dengan baud rate sebesar 115200

Serial.begin(115200);

Kemudian kita inisialisasi sensor MPU6050 yang akan kita gunakan seperti ini

if (!mpu.begin()) {Serial.println(“Sensor init failed”);while (1)yield();}

Setelah itu, kita mengatur rentang pengukuran dari akselerometer seperti ini.

mpu.setAccelerometerRange(MPU6050_RANGE_8_G);

Kemudian kita juga mengatur rentang pengukuran dari giroskop dari sensor yang akan kita gunakan seperti ini.

mpu.setGyroRange(MPU6050_RANGE_500_DEG);

Setelah itu, kita atur filter untuk bandwidth seperti ini.

mpu.setFilterBandwidth(MPU6050_BAND_5_HZ);

Nah, setelah itu, kita akan masuk ke bagian fungsi loop(). Pada bagian loop(), kita akan membaca sensor dan menampilkan hasilnya ke bagian serial monitor.

Pertama, kita harus mendapatkan kondisi sensor yang baru dengan pembacaan saat ini dengan kode seperti ini.

sensors_event_t a, g, temp;mpu.getEvent(&a, &g, &temp);

Kemudian kita tampilkan hasil dari pembacaan akselerometer seperti ini. Akseleremoeter yang dibaca menggunakan satuan (m/s2).

a.acceleration.x: gets acceleration on the x axis;a.acceleration.y: gets acceleration on the y axis;a.acceleration.z: gets acceleration on the z axis;Serial.print(“Acceleration X: “);Serial.print(a.acceleration.x);Serial.print(“, Y: “);Serial.print(a.acceleration.y);Serial.print(“, Z: “);Serial.print(a.acceleration.z);Serial.println(“ m/s²”);

Kemudian kita juga akan menampilkan hasil dari pembacaan giroskop seperti ini. Giroskop yang dibaca menggunakan satuan (rad/s).

g.gyro.x: gets angular velocity on the x axis;g.gyro.y: gets angular velocity on the y axis;g.gyro.z: gets angular velocity on the z axis;Serial.print(“Rotation X: “);Serial.print(g.gyro.x);Serial.print(“, Y: “);Serial.print(g.gyro.y);Serial.print(“, Z: “);Serial.print(g.gyro.z);Serial.println(“ rad/s”);

Di bagian terakhir, kita akan menampilkan hasil pembacaan suhu yang diukur dalam derajat Celcius. Untuk mengakses pembacaan suhu, kita bisa menggunakan temp.temperature seperti kode di bawah ini.

Serial.print(“Temperature: “);Serial.print(temp.temperature);Serial.println(“ degC”);

Pembacaan sensor akan dilakukan selama 500 milisekon.

delay(500);

Eksperimen dan Demo

Setelah kita buat kode programnya, kita cek dulu kode program kita udah bisa berjalan atau belum.

Kita compile atau verify dulu kode program yang kita buat untuk memastikan apakah ada yang error atau enggak.

Last, kita upload deh kode programnya ke ESP32 dengan menghubungkannya dengan connector USB.

Hasil yang dibaca sensor kemudian dikirimkan ke Serial Monitor untuk ditampilkan seperti berikut ini.

Hasil Pembacaan Sensor MPU-6050 dengan Serial Monitor

Hasil dan Analisis

Dari eksperimen tadi bisa kita lihat hasil yang ditampilkan di serial monitor dengan baud rate sebesar 115200. Kita bisa melihat bahwa sensor mampu menangkap tiga macam parameter, yaitu akselerasi, rotasi dan temperatur. Dari hasil di serial monitor tersebut bisa kita lihat bahwa pada saat eksperimen, didapatkan hasil temperatur sekitar 29.51 derajat Celcius. Hasil akselerasi dan rotasi juga bisa didapatkan sesuai dengan akselerasi dan rotasi yang dilakukan terhadap sensor dan dibaca oleh sensor tersebut kemudian mengirimkan hasilnya ke serial monitor. Bisa kita amati bahwa akselerasi dan rotasi bisa kita amati melalui orientasi sumbu x, y, dan z.

PERMASALAHAN DAN TROUBLESHOOT

Kalian mengalami kesulitan ketika proses pembuatannya? Tenang, jangan panik! Problem dan troubleshoot dalam eksperimen ESP32 terkait sensor eksternal ini adalah sebagai berikut.

1. Ketika bereksperimen dengan sensor BMP280 muncul “Could not find a valid bmp 280 sensor, check wiring.”

Solusinya, temen-temen bisa mencari address i2c yang digunakan oleh temen-temen dengan kode program seperti pada bagian eksperimen dengan sensor BMP280 di atas kemudian mencari addressnya di serial monitor.

Kemudian kita mengatur address dari i2c yang digunakan pada kode BMP280 seperti ini.

if (!bmp.begin(0x76)) {Serial.println(F(“Could not find a valid BMP280 sensor, check wiring!”));while (1);}

2. Wiring sudah dilakukan sesuai skema, tapi rangkaiannya masih belum bisa berjalan

Solusinya temen-temen bisa menggunakan GPIO dari ESP32 lain yang bisa digunakan. Jadi temen-temen bisa mengoprek sendiri barang kali dengan mengganti pin GPIO dengan GPIO yang lain maka akan bisa berjalan dengan baik. Untuk keterangan lebih lanjut mengenai pin GPIO di ESP32, temen-temen bisa cek di https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

3. Serial monitor tidak bisa membaca hasil sensor atau tidak muncul hasil di serial monitor

Solusinya coba temen-temen cek terlebih dahulu baud rate yang digunakan temen-temen udah bener atau belum. Kita sesuaikan baud rate dari program yang kita buat dengan baud rate di serial monitor. Biasanya kita menggunakan baud rate 9600 atau 115200. Namun, hal ini dikembalikan lagi ke temen-temen menggunakan baud rate yang mana

4. Kode program udah bener tapi masih belum bisa jalan?

Temen-temen bisa cek kabel jumper yang temen-temen gunakan. Dalam eksperimenku kali ini aku mencoba kabel jumperku dengan yang baru karena ternyata yang lama, kawat yang diguanakan sudah tidak baik (bisa dilihat saat memasangkan

OIya, temen-temen juga bisa melihat troubleshoot dari permasalahan lain di llnk https://randomnerdtutorials.com/esp32-troubleshooting-guide/ dan forum Arduino di https://forum.arduino.cc/

Jadi, itulah proses pembuatan eksperimen terkait sensor eksternal dengan menggunakan board microcontroller ESP32. Mudah bukan? Terima kasih buat teman-teman yang sudah menyempatkan waktunya untuk membaca. Jangan lupa untuk jaga kesehatan dan sampai jumpa di tulisan-tulisanku berikutnya! See you next time! #StudyWithFahrel

Penulis,

M. Fahrel Naufal A.

18219067

--

--

No responses yet