ESP32 Project 3 : Internal Sensor
- K02_Faiza Aqiela Zuma
- Feb 20, 2022
- 3 min read
Hello, balik lagi di sini another part of simple project using ESP32. So dalam project kali ini kita akan menggunakan ESP32 board untuk mengetes fungsionalitas dari internal sensor yang ada pada ESP32. Melalui project ini hendaknya kita dapat memahami cara membaca suatu program serta mengerti cara menggunakan Internal Sensor pada ESP32. Pada dasarnya ESP32 memiliki sensor internal bawaan, namun kali ini kita hanya membahasa 3 dari sensor-sensor tersebut yang terdiri dari Touch Sensor, Hall-Effect Sensor, dan temperature Sensor.
Touch Sensor version 1

Sebelum memulai membuat project ini, pastikan kita sudah memenuhi semua prerequisites yang ada dari mulai menyiapkan alat dan bahan yang diperlukan sampai setup ESP32 seperti yang sudah disebutkan di artikel sebelumnya.
Component Required
Berikut ada beberapa yang perlu dipersiapkan:
ESP32 Board
Arduino IDE
Breadboard
Jumper wire (male to male)
Micro USB cable
Kita disini akan menggunakan internal sensor yang ada dalam ESP32. Sensor akan mengukur jika ESP32 melalui jumper wire itu tersentuh atau tidak. So kita mulai dari Pin mapping dari ESP32 lalu dilanjut dengan kode program dan terakhir bagian penjelasan dari program.
Pin Mapping of ESP32 GPIO pins
Pin mapping dari touch pin dengan melalui GPIO pins. Pin mapping ini untuk ESP32 Devkit DOIT. seperti yang dapat dicek pada gambar pinout di bawah. Devkit support 9 touchpin dari total 10 pin yang ada pada ESP32 WROOM chip. Touch1 tidak tidak ada pada ESP32 versi ini, karena Touch1 berbagi dengan GPIO0 dan tidak tersedia pada board Devkit DOIT. Semua pin dapat dilihat seperti gambar yang ada di bawah.

Touch0 >> GPIO4
Touch1 >> Not available on Devkit 30 pin version but available on Devkit 36 pin version
Touch2 >> GPIO2
Touch3 >> GPIO15
Touch4 >> GPIO13
Touch5 >> GPIO12
Touch6 >> GPIO14
Touch7 >> GPIO27
Touch8 >> GPIO33
Touch9 >> GPIO32
Program of touch sensor ESP32
Untuk menulis program touch sensor ini, kita menggunakan fungsi touchRead yang ada pada Arduino IDE.
touchRead(touch_sensor_pin_number) : fungsi ini digunakan untuk membaca value pada touch sensor yang terhubung dengan touchpin. Hanya perlu menulis nama variabel pada touchpin untuk fungsi ini. Misal, jika ingin menggunakan touch pin nol, maka hanya perlu menuliskan pada sensor dengan touchRead(T0).
Berikut ada code simple untuk program dari touch sensor:
int touch_sensor_value=0;
void setup() {
Serial.begin(115200);
Serial.println("Touch sensor tutorial ESP32");
}
void loop() {
touch_sensor_value = touchRead(T0);
Serial.print("Touch0 value is = ");
Serial.println( touch_sensor_value);
delay(1000);
}Fungsi touchSensor(T0) akan membaca value dari touch sensor yang ada pada GPIO4 dan akan menyimpan value tersebut pada variable_sensor value. Setelah itu serial monitor pertama akan memunculkan string "Touch value is = " kemudian disusul value dari touchsensor yang terbaca. Proses ini akan terus berulang. Saat tidak disentuh dengan jari, dapat dilihat serial monitor akan menampilkan value yang tinggi berbeda dengan saat menyentuh GPIO 4, dapat dilihat jika value akan terus berkurang.

Touch Sensor version 2
komponen yang perlu disiapkan untuk membuat project ini :
ESP32 Board
Arduino IDE
Breadboard
Jumper wire (male to male)
USB Cable
1 LED
330 Ohm resistor
Pada percobaan kali ini akan dibuat program yang dapat menyalakan LED dengan menyentuh touch sensor pada ESP32.

Program of touch sensor ESP32


Hall-Effect Sensor
Hall-effect sensor internal yang terletak di bagian belakang dari ESP32. Sensor ini akan mendeteksi magnetic field. Semakin besar medan magnet makan value yang di tampilkan akan semakin besar.
Komponen yang kita perlukan untuk melakukan percobaan ini :
ESP32 Board
Arduino IDE
Breadboard
USB Cable
Magnet (Disini menggunakan smartphone)
Program of Hall-Effect Sensor ESP32
int hall_sensor_value = 0;
void setup()
{
Serial.begin(9600); // It defines the baud rate of 9600 bits per second to serial monitor
}
void loop()
{
hall_sensor_value = hallRead();
Serial.print("Hall sensor value = ");
Serial.println(hall_sensor_value);
delay(500);
}Kode di atas termasuk ke simple code, hampir sama seperti kode sebelumnya hanya saja terdapat fungsi hallRead(). Fungsi ini tidak membutuhkan argumen. Fungsi ini membaca value dari hall sensor yang telah tersimpan di ESP32. Hanya perlu menyimpan output dari fungsi hallRead() pada variabel. Dalam kode ini disimpan output voltage dari hall sensor dalam variabel "hall_sensor_value". Kemudian, mengirimkan value-value ini ke serial monitor. Output dari fungsi hallRead() bisa antara positif atau negatif tergantung arah dari magnetic field.

Built-in Temperature Sensor
ESP32 juga memiliki sensor temperatur yang tertanam di dalamnya untuk mengukur suhu dari ESP32 itu sendiri.
Komponen yang diperlukan untuk melakukan percobaan:
ESP32 Board
Arduino IDE
Breadboard
USB Cable
Program of Temperature Sensor ESP32
#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: ");
// Convert raw temperature in F to Celsius degrees
Serial.print((temprature_sens_read() - 32) / 1.8);
Serial.println(" C");
delay(1000);
}Hasil pengukuran akan ditampilkan pada serial monitor

Saya belajar banyak hal melalui hands-on project dengan mengikuti step-step & tutorial serta dengan banyak explore mengenai project. See you on the next project!
FAIZA AQIELA ZUMA
18220059



Comments