Project 3 : Built-In Sensor in ESP32

Amelia Wahyu Dewanti
5 min readFeb 18, 2022

--

Haloo! 🙌🏻

Disini saya akan berbagi terkait projek 3 mata kuliah sistem embedded yang sudah saya lakukan. Projek 3 ini yaitu memanfaatkan sensor yang terdapat secara built-in pada ESP32. ESP32 memiliki 3 sensor built-in, yaitu sensor sentuh (touch sensor), sensor magnet (hall-effect sensor), dan sensor suhu (temperature sensor).

Touch Sensor

Sebelum memulai percobaannya, alat dan bahan yang harus disiapkan yaitu

Breadboard (kiri), USB type-b (tengah), ESP32 (kanan)
Jumper Wire (kiri), Lampu LED (tengah), Resistor 330 Ω (kanan)

Menyusun Rangkaian

ESP32 memiliki 10 GPIO yang dapat merespon sentuhan (sensor sentuhan). GPIO ini dapat merasakan apapun yang memiliki electrical charge, seperti kulit manusia.

GPIO ESP32

Sambungan-sambungan yang ada pada rangkaian :

  • Hubungkan ground ke bagian negatif dari breadboard(-).
  • Hubungkan resistor 330 Ω ke pin positif (anoda) dari lampu LED (kaki lampu LED yang panjang) dan ke jumper wire yang terhubung ke pin ESP32 (contoh yang saya gunakan adalah pin D19).
  • Hubungkan jumper wire yang terhubung ke bagian negatif dari breadboard(-) ke pin negatif (katoda) dari lampu LED (kaki lampu LED yang pendek).
  • Sambungkan Jumper Wire ke salah satu pin pada ESP32 yang memiliki sensor sentuhan (contoh yang saya gunakan adalah pin D4).
Rangkaian Touch Sensor Tanpa Lampu LED
Rangkaian Touch Sensor dengan Lampu LED

Memprogram Touch Sensor pada Arduino IDE

Code Touch Sensor Tanpa Lampu LED
Code Touch Sensor dengan Lampu LED

Pada prosedur void loop(), fungsi touchRead berfungsi untuk membaca respon sentuhan yang ada pada GPIO 4.

Pada code tersebut, terdapat konstanta treshold yang artinya jika angka yang ada pada serial monitor (touchValue) >20, maka lampu akan mati.

Untuk mengetahui apakah respon sentuhan tersebut terbaca oleh ESP32, maka digunakan alat serial monitor dan serial plotter pada Arduino.

Serial Monitor dan Serial Plotter pada Arduino
Hasil dari Serial Monitor tanpa Lampu LED (kiri) dan Hasil dari Serial Plotter tanpa Lampu LED (kanan)
Hasil dari Serial Monitor dengan Lampu LED (kiri) dan Hasil dari Serial Plotter dengan Lampu LED (kanan)

Pada serial monitor tersebut, angka yang kecil menunjukkan intensitas sentuhan yang besar dan angka yang besar menunjukkan intensitas sentuhan yang rendah. Ketika jumper wire tidak disentuh sama sekali, angka yang muncul adalah angka 70-an. Hal yang sama ditunjukkan pada serial plotter.

Hall Effect Sensor

Alat dan bahan yang harus disiapkan sama seperti touch sensor, tetapi ditambah dengan magnet.

Magnet Kulkas

Magnet yang saya gunakan adalah magnet kulkas.

Menyusun Rangkaian

Rangkaian Hall Effect Sensor tanpa Lampu LED
Rangkaian Hall Effect Sensor dengan Lampu LED

Sambungan-sambungan yang ada pada breadboard sama dengan sambungan pada rangkaian touch sensor.

Memprogram Hall Effect Sensor pada Arduino IDE

Code Hall Effect Sensor tanpa Lampu LED
Code Hall Effect Sensor dengan Lampu LED

Pada prosedur void loop(), fungsi hallRead berfungsi untuk membaca medan magnet yang ada di sekitar ESP32.

Pada code tersebut, terdapat konstanta treshold yang artinya jika angka yang ada pada serial monitor (hallValue) >100, maka lampu akan menyala.

Untuk mengetahui apakah medan magnet tersebut terbaca oleh ESP32, maka digunakan alat serial monitor pada Arduino IDE.

Hasil dari Serial Monitor tanpa Lampu LED
Hasil dari Serial Monitor dengan Lampu LED

Ketika magnet didekatkan ke ESP32, angka yang muncul pada serial monitor sebesar di atas 100. Sebenarnya, angka yang muncul bisa bernilai negatif tergantung pada kutub magnet mana yang didekatkan ke ESP32.

Namun, selama saya melakukan percobaan ini, angka yang muncul ketika magnet didekatkan selalu sebesar di atas 100 dan tidak pernah negatif. Hal tersebut mungkin dikarenakan saya menggunakan magnet kulkas dan yang bisa didekatkan ke ESP32 hanya kutub tersebut, sedangkan kutub yang satunya tidak bisa didekatkan.

Temperature Sensor

Alat yang diperlukan hanyalah ESP32 dan USB type-b.

Memprogram Temperature Sensor pada Arduino IDE

Code Temperature Sensor

Untuk mengetahui suhu yang terbaca oleh ESP32, maka digunakan alat serial monitor pada Arduino IDE.

Hasil dari Serial Monitor

Variasi yang saya lakukan hanya pada hall effect sensor dengan menambahkan 1 lampu LED.

Tampilan

Variasi Rangkaian Hall Effect Sensor dengan 2 Lampu LED

Ketika magnet didekatkan ke ESP32, lampu biru akan menyala dan lampu kuning mati. Sebaliknya, lampu kuning akan menyala dan lampu biru mati ketika magnet dijauhkan dari ESP32.

Code

// set pin numbers 
const int ledPinB = 5;
const int ledPinK = 23;
// change with your threshold value
const int threshold = 100;
// variable for storing the touch pin value
int hallValue;
void setup() {
Serial.begin(115200);
delay(100); // give me time to bring up serial monitor
// initialize the LED pin as an output:
pinMode (ledPinB, OUTPUT);
pinMode (ledPinK, OUTPUT);
}
void loop() {
// read hall effect sensor value
hallValue = hallRead();
// print the results to the serial monitor
Serial.print(hallValue);
if(hallValue > threshold){
// turn LED on
digitalWrite(ledPinB, HIGH);
digitalWrite(ledPinK, LOW);
delay(500);
Serial.println(" - LED Blue on");
} else{
// turn LED off
digitalWrite(ledPinB, LOW);
digitalWrite(ledPinK, HIGH);
delay(500);
Serial.println(" - LED Yellow on");
}

delay(1000);
}
Hasil dari Serial Monitor untuk Variasi

Sekian dari saya, terima kasih!

Amelia Wahyu Dewanti

18220043 / K01

--

--

No responses yet