ESP32 Tutorial Part 3 (Internal Sensor ESP32)

Ilham Alvindo Riandova
8 min readFeb 14, 2021

--

Yuhuu kembali lagi di tutorial ESP32 part 3!. Kali ini kita akan membahas sensor internal yang ada pada ESP32 itu sendiri. Percobaan ini terdiri 4 bagian yaitu
1. Touch Sensor
2. Hall Effect Sensor
3. Hall Effect Sensor Eksperiment LED
4. Internal Temperature Sensor
Daripada kelamaan yuk kita langsung coba aja !

BAGIAN 1. TOUCH SENSOR

Nah bagian satu ini, kita akan membahas tentang touch sensor dari ESP32 nih gais. Jadi touch sensor itu gimana sih? Jadi nanti kita mencoba untuk menyalakan lampu LED dengan menggunakan sentuhan. Disini kita akan menyentuh kabel jumpernya!. Soo daripada bingung, siapin alat-alat berikut ya!

A. Alat yang dibutuhkan

  1. ESP32
Gambar1. ESP32 | sumber: amazon.com

Ini juga bebas berapa pin, yang punyaku 30 pin versi DEVKIT V1 hehe. Yang penting ESP32 yapp!

2. Arduino IDE

Gambar 2. Arduino IDE

Kalo belum ada arduino IDE, bisa di download di klik link ini ya! TUTORIAL ARDUINO IDE

3. Breadboard (830 titik)

Gambar 3. Breadboard | sumber: amazon.com

Sebenernya bebas sih mau yang berapa titik. Tapi mending 830 titik aja, lebih luas, lebih puas :D

4. Jumper cable male to female

Gambar 4. Jumper wire | sumber: amazon.com

Nah sebenernya bisa aja pakai jumper wire male to male dan ESP32-nya diletakkan di breadboard. Cuman ESP32 punyaku pas dipaksa masuk ke breadboard, kaki ESP32 nya bengkok semua. Jadi buat yang ESP32 nya ngga bisa dicolok ke breadboard, pake jumper male to female aja ya biar ESP32 nya ngga rusak :)).

5. Jumper wire male to male

Gambar 5. Jumper wire male to male | sumber: shopee.com

Nah kita perlu jumper wire male to male juga ya!

6. LED

Gambar 6. LED | sumber: rs-online.com

Bebas gan warna apa aja, yang penting LED yang kecil kayak gini ya. Jangan LED lampu taman :)

7. USB CABLE

Gambar 7. Micro USB | sumber: alzashop.com

Ini buat nyolokkin ESP32 nya ke laptop/komputer temen-temen ya!

8. Resistor 330 Ohm

Gambar 8. Resistor 330 ohm | sumber : shopee.com

Nah ini juga resistor 330 ohm, biar lampunya tahan lama. Biar cahanya ngga terlalu terang juga. Bisa pake yang 220 ohm juga kok kalo ngga ada :D

9. Laptop

Gambar 9 . Laptop | sumber: asus.com

ini laptop penulis hehehe.

Nah kalo udah lengkap alat-alatnya apa aja, cus langsung ke skema!

B. Skema

Nah untuk skema pemasangannya, bisa dilihat pada gambar berikut ya!

Gambar 10. Skema pemasangan komponen

Nah pada LED kaki yang panjang kita sambungkan dengan resistor, sedangkan kaki yang pendek kita sambungkan dengan ground. Lalu untuk resistor dipasang jumper male to female dengan tujuan RX2 pada ESP32. RX2 ini artinya kita memasang pada GPIO 16. Nah untuk ujung jumper yang akan kita pegang, kita pasang di D4. Nah D4 ini adalah default untuk touch0. Jadi di touch0 ini kita bisa memberikan ‘sensor’ sentuhan untuk mencoba menghidupkan LED nya.

Gambar 11. Skema asli pemasangan komponen

C. Source Code

Nah untuk Arduino IDE nya, kita akan mengcompile code berikut. Maksud code nya apa nih? Nah dibawah sudah ada penjelasannya ya!. Ohiya source code-nya yang dicetak tebal ya. Nah source codenya diadaptasi dari randomnerdstutorial.com ya!

/* Mensetting untuk jumper yang akan kita sentuh pada pin nomor 4 dan pin yang tersambung ke LED bernomor 16 */
const int touchPin = 4;
const int ledPin = 16;

const int threshold = 20;
/*
Inisiasi nilai threshold, “t-tapi kenapa 20?” :(. Nah ini penjelasannya di bawah ya!*/

int touchValue;
/* Variabel untuk menyimpan nilai touch pin

void setup(){
Serial.begin(115200);
delay(1000);

/* Memberikan delay 1 detik untuk ditampilkan ke serial monitor *?

pinMode (ledPin, OUTPUT);
/* Menginisiasi ledPin sebagai output dari source code*/
}

void loop(){
touchValue = touchRead(touchPin);

/* Membaca nilai dari touchPin*/

Serial.print(touchValue);
/*
Mengirimkan data ke port serial*/

if(touchValue < threshold){
/* Check apakah nilai touchValue dibawah threshold */

digitalWrite(ledPin, HIGH);
Serial.println(“ — LED on”);
/*
Jika iya maka led di set ke HIGH */

}
else{
digitalWrite(ledPin, LOW);
Serial.println(“ — LED off”);
/*
Jika tidak maka ledPin di set ke LOW */

}
delay(500);
/*
Memberikan delay sebanyak 0.5 detik*/

}

D. Analisis Percobaan

Gambar 12. Skema touch sensor

Nah dari analisis, ketika salah satu ujung dari jumper cable di sentuh. Lampu LED akan menyala. Sesuai dengan pembahasan source code, ketika jumper wire tidak disentuh. Nilai threshold akan bernilai besar, yaitu sekitar 70+ (sekitar 77). Pada code ketika nilai threshold berada diatas 20 maka LED akan mati.

Gambar 13. Ketika jumper tidak disentuh

Namun ketika jumper wire disentuh, nilai threshold akan mengecil (sekitar 17an). Dari source code, ketika nilai threshold dibawah 20, maka lampu akan diberi tegangan HIGH sehingga lampu akan menyala. Seperti gambar dibawah. Maka dari itu, nilai threshold di inisiasi dengan nilai 20 :D.

Gambar 14. Ketika jumper disentuh

Jadi itulah kenapa LED bisa menyala ketika ujung jumper wire disentuh dan mati ketika sentuhannya di lepas :D.

BAGIAN 2. HALL EFFECT SENSOR

Oke, next kita bakal ke percobaan kedua. Percobaan kedua kita yaitu Hall Effect Sensor. Gass

A. Alat dan bahan

Alat-alat yang kita butuhin hanya ESP32, Micro USB cable untuk menghubungkan ESP32 ke laptop, dan magnet loh!.

B. Skema

Gambar 15. Skema Hall Effect Sensor

Nah skemanya kita cuma menghubungkan ESP32 nya ke laptop kok. Lalu mencoba menempelkan magnet yang kutubnya positif maupun negatif keatas ESP32 nya!

C. Source Code

int val = 0;
/*
Inisiasi nilai val = 0*/

void setup() {
Serial.begin(9600);
}

void loop() {

val = hallRead();

/* Membaca nilai pembacaan hall effect sensor*/

Serial.println(val);
delay(1000);
}
/*
Menampilkan hasilnya ke layar setiap 1000 ms atau setiap 1 detik. */

D. Analisis Percobaan

Nah dari analisis, ketika magnet belum ditempelkan. Nilai val pada source code bernilai berkisar 26. Seperti gambar dibawah ini.

Gambar 17. Serial monitor ketika tidak ada magnet

Namun ketika salah satu ujung kutub magnet ditempelkan ke ESP32, pembacaan nilai dari serial monitor membesar. Nilai val berkisar 33 keatas. Seperti gambar dibawah ini.

Gambar 18. Serial monitor ketika salah satu kutub magnet ditempelkan

Namun ketika kutub magnet dibalik, pembacaan val pada serial monitor mengecil. Nilai val berkisar 5 pada pembacaan di serial monitor. Seperti gambar dibawah ini.

Gambar 19. Serial monitor ketika kutub lainnya ditempelkan

Jadi hasil dari analisis adalah, pembacaan nilai di serial monitor akan bertambah ketika kutub magnet diletakkan diatas ESP32 dan juga pembacaan nilai pada serial monitor akan mengecil ketika kutub lainnya ditempelkan ke ESP32.

BAGIAN 3. HALL EFFECT SENSOR LED TEST

Nah kali ini kita akan melakukan experiment dengan hall effect sensor yang akan menyalakan LED pada pembacaan nilai val tertentu. Sok mulaii

A. Komponen

Komponennya sama kayak hall effect sensor, cuman ditambah resistor 330 ohm, magnet, dan jumper wire secukupnya!

B. Skema

Gambar 20. Skema percobaan Hall effect sensor

Nah skemanya mirip sama yang touch sensor nih. Cuman bedanya, jumper untuk di sentuhnya di lepas aja ya :D.

C. Source Code

Nah codenya sama dengan sebelumnya, cuman bedanya kita menambahkan variabel ledPin untuk pembaaan ledPin dan juga conditional state. Yaitu ketika nilai val nya lebih besar dari 27, maka lampu akan diberi tegangan HIGH yang artinya lampu akan menyala. Namun ketika nilai val berada dibawah 27 maka lampu akan mati. Source codenya yang bercetak tebal ya!

int val = 0;
/*
Variabel val akan sering dibahas dibawah setelah ini*/
const int ledPin = 16;

void setup() {
Serial.begin(115200);
pinMode (ledPin, OUTPUT);
}

void loop() {

val = hallRead();

Serial.println(val);
delay(1000);

if (val > 27) {
digitalWrite(ledPin, HIGH);
}
/*
Jika nilai val lebih dari 27 maka lampu diberi tegangan HIGH yang artinya lampu akan menyala */

else {
digitalWrite(ledPin, LOW);
}
/*
Jika kurang dari 27 maka lampu akan diberi tegangan LOW yang artinya lampu akan mati */
}

D. Analisis Percobaan

Ketika salah satu kutub magnet diletakkan diatas ESP32, nilai val akan lebih besar dari 27. Nah dari code, ketika val bernilai diatas 27, maka LED akan diberi tegangan HIGH yang artinya lampu akan menyala. Ilustrasi seperti gambar dibawah ini.

Gambar 21. Serial monitor ketika pembacaan membesar
Gambar 22. Ketika variabel val membesar maka lampu akan menyala

Namun ketika magnet dibalik, pembacaan nilai val pada serial monitor mengecil. Sehingga kondisi ketika val lebih kecil dari 27, LED diberi tegangan LOW yang artinya lampu akan mati. Ilustrasi seperti gambar dibawah ini.

Gambar 23. Pembacaan ketika nilai val mengecil
Gambar 24. Ketika pembacaan val mengecil maka lampu akan mati.

Nah dari analisis percobaan, sesuai source code. Ketika nilai val (salah satu kutub ditempelkan ke ESP32) dan nilainya membesar (lebih dari 27) maka lampu LED akan menyala. Namun ketika nilai val lebih kecil dari 27, maka lampu akan mati.

BAGIAN 4. INTERNAL TEMPERATURE SENSOR

Nah bagian empat ini, kita akan mencoba melihat berapa suhu yang ada pada ESP32. Suhu ini bukan artinya suhu external ya, tapi ini suhu internal. Jadi kayak suhu komponen yang ada di ESP32 nya, bukan suhu ruangannya :D. Sok gasss

A. Komponen

Nah dari percobaan ini, kita hanya perlu menggunakan ESP32, Micro USB cable, dan laptop aja kok. Cuss langsung ke skema

B. Skema

Gambar 25. Skema check temperatur ESP32

Kita tinggal mencolokkan micro usb-nya ke ESP32 dan ke laptop ya!

C. Source Code

Source code kali ini kita adaptasi dari circuits4you.com ya hehehe, dan juga source code yang bercetak tebal ya!

#ifdef __cplusplus
extern “C” {
#endif

uint8_t temprature_sens_read();

#ifdef __cplusplus
}
#endif

uint8_t temprature_sens_read();


void setup() {
Serial.begin(115200);
}

void loop() {
Serial.print(“Temperature: “)
Serial.print((temprature_sens_read() — 32) / 1.8);
Serial.println(“ C”);
delay(1000);
/*
Mengubah temperatur dari fahrenheit ke celcius, lalu menampilkannya setiap 1000ms atau 1 detik*/

}

D. Analisis Percobaan

Gambar 26. Temperatur ESP32 Arduino IDE

Setelah kita mengcompile source code yang ada diatas. Lalu kita membuka serial monitor yang ada pada Arduino IDE. Dari percobaan, penulis mendapatkan bahwa temperatur ESP32 milik penulis bernilai 53.33 derajat celcius :D.

Untuk demo dari keempat percobaan diatas, bisa dilihat pada video dibawah ini ya!

Untuk itu, sekian tutorial ESP32 Part 3 tentang internal sensor ESP32. 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.circuits4you.com
3. www.arduino.cc

Best Regards,

Ilham Alvindo Riandova (18219063),
Sistem dan Teknologi Informasi,
Institut Teknologi Bandung.

--

--

Ilham Alvindo Riandova

Final year student at Institut Teknologi Bandung majoring Information System and Technology.