Setting Pin Sensor Sentuh Capacitive ESP32 dengan Arduino IDE

0
60

Artikel ini akan menjelaskan tentang bagaimana menggunakan pin sentuh ESP32 dengan Arduino IDE. Pin sentuh ESP32 dapat mendeteksi berbagai benda yang memiliki elektrikal charge. Pin ini sering digunakan untuk mengaktifkan ESP32 dari mode sleep.

Untuk mengetahui nilai dari pin sentuh ESP32, gunakan fungsi touchRead (GPIO) yang digunakan sebagai argument, GPIO merupakan nilai yang akan kamu baca.

Watch the Video Tutorial

Kamu bisa tonton video tutorial di bawah ini atau teruskan membaca artikel ini.

Pengenalan tentang Sensor Sentuh ESP32

ESP32 memiliki 10 Pin Sentuh Capacitive GPIO. GPIO ini dapat mendeteksi apapun yang memiliki electrical charge, seperti kulit manusia. Jadi dia dapat mendeteksi berbagai induksi saat menyentuh GPIO dengan jari kita.

Pin ini dapat diintegrasikan dengan pad capacitive dan menggantikan fungsi dari tombol mekanikal. Tambahannya, pin sentuh ini dapat juga digunakan untuk mengaktifkan ESP32 dari mode sleep.

Nah, di bawah ini merupakan pinout dari board ESP32, disini bisa dilihat kalau kita punya 10 jenis sensor sentuh. Pin sentuh kita tandain dengan warna pink.

Untuk mengetahui lebih lanjut tentang ESP32 GPIO : silahkan baca artikel kami xxxxxxxxxxxxxxxxxxxx.

Seperti yang kamu tahu, Sensor sentuh 0 itu di GPIO 4, Sensor sentuh 2 ke GPIO 2 dan seterusnya….

Catatan : Sensor Sentuh 1 adalah GPIO 0. Namun, itu tidak tersedia karena board yang digunakan itu yang versi 30 pin GPIO. GPIO 0 hanya tersedia di board versi 36 Pin.

Saat pembuatan artikel ini, ada isu dengan pengkonfigurasian pin sentuh di Arduino IDE. GPIO 33 itu ditukar dengan GPIO32. Itu berarti kalau kamu mau menggunakan GPIO 32, kamu mesti menggunakan T8 di dalam kodenya. Jika mau menggunakan GPIO 33, kamu mesti menggunakan T9. Jika kamu tidak punya isu dengan ini, silahkan abaikan catatan ini.

touchRead()

untuk membaca sensor sentuh sebenarnya cukup simple. Di Arduino IDE, kamu cukup gunakan fungsi touchRead(), yang diterima sebagai argument, GPIO itu pin yang akan dibaca

touchRead(GPIO);

Code – Touch Sensor

Kita akan mem-program ESP32 menggunakan Arduino IDE, jadi pastikan kamu punya ESP32 add-on yang sudah terinstall sebelum proses selanjutnya:

Mari kita lihat bagaimana fungsi di atas bekerja dengan menggunakan contoh dari library.

Di Arduino IDE, ke File > Examples > ESP32 > Touch dan buka sketch TouchRead.

// ESP32 Touch Test
// Test Pin Sentuh - Touch0 >> T0 di GPIO 4.

void setup() {
  Serial.begin(115200);
  delay(1000); // waktu untuk menampilkan di monitor
  Serial.println("ESP32 Touch Test");
}

void loop() {
  Serial.println(touchRead(4));  // menampilkan nilai pin sentuh 0 = GPIO 4
  delay(1000);
}

Program diatas membaca pin sentuh 0 dan menampilkan hasil nya di serial monitor.

Pin T0 (pin sentuh 0) sesuai dengan GPIO 4, seperti kita lihat di pinout sebelumnya.

Dari kode program ini, setup(), digunakan untuk menginisialisasi serial monitor untuk menampilkan nilai yang dibaca oleh sensor.

Serial.begin(115200);

loop() adalah saat kamu membaca nilai dari sensor.

Serial.println(touchRead(4));

Gunakan fungsi touchRead() dan jadikan sebagai argument untuk membaca pin yang kamu ingin baca. Dalam kasus ini, kita gunakan T0 yang artinya sensor sentuh 0 di GPIO 4. Kamu bisa pilih antara menggunakan nomor sensor sentuh (T0) atau menggunakan nomor GPIO (4).

Sekarang, upload kode program ke board ESP32. Pastikan kamu pilih board dan COM Port yang sesuai.

Testing contoh sketch

Hubungkan kabel jumper ke GPIO 4. Lalu sentuh lah bagian metar dari kabel ini untuk dapat mendeteksi sentuhan.

Di Arduino IDE, pilih Tools dan buka serial monitor di baud rate 115200. Kamu akan melihat nilai yang berubah ubah setiap detik nya.

Sentuh lah kabel yang terhubung dengan GPIO 4 dan kamu akan melihat nilai nya menurun.

Kamu juga dapat menggunakan serial plotter untuk bisa mlihat nilai nya. Tutup serial monitor, pilih  Tools > SerialPlotter.

Touch Sensitive LED

Kamu dapat menggunakan fitur ini untuk mengontrol output. Sekarang, kita akan membuat LED yang dikontrol oleh sentuhan secara sederhana. Ketika kita menyentuh GPIO dengan jari kita, LED akan menyala.

Untuk exercise ini, kita akan membutuhkan komponen di bawah ini

Kmau bisa menghubungi CNC Store Bandung untuk komponen diatas yahhhh…. Promosi dikit..

Menentukan Nilai Threshold

Ambillah secarik aluminium foil, potong menjadi ukuran kecil dan tempelkan ke ujung kabel jumper seperti gambar di bawah ini.

Dengan program sebelumnya yang sudah di running, kita kembali ke serial monitor.

Sekarang sentuh aluminium foil dan kamu akan melihat nilai nya berubah lagi.

Dari kasus kita, Ketika kita tidak menyentuh pin nya, maka nilai normal nya yaitu di atas 70. Dan Ketika kita sentuh aluminium foilnya, nilai nya turun di bawah 70.

So, kita bisa men-set nilai threshold dan Ketika bacaan nya turun dari nilai tersebut, maka LED akan menyala. Dalam kasus ini, nilai threshold nya kita di 20.

Schematic

Tambahkan LED ke rangkaian dengan menggunakan skematik di bawah ini, kita hubungkan LED ke GPIO 16.

Code

Copy kode di bawah ke Arduino IDE.

// set pin numbers
const int touchPin = 4; 
const int ledPin = 16;

// change with your threshold value
const int threshold = 20;
// variable for storing the touch pin value 
int touchValue;

void setup(){
  Serial.begin(115200);
  delay(1000); // give me time to bring up serial monitor
  // initialize the LED pin as an output:
  pinMode (ledPin, OUTPUT);
}

void loop(){
  // read the state of the pushbutton value:
  touchValue = touchRead(touchPin);
  Serial.print(touchValue);
  // check if the touchValue is below the threshold
  // if it is, set ledPin to HIGH
  if(touchValue < threshold){
    // turn LED on
    digitalWrite(ledPin, HIGH);
    Serial.println(" - LED on");
  }
  else{
    // turn LED off
    digitalWrite(ledPin, LOW);
    Serial.println(" - LED off");
  }
  delay(500);
}

Kode ini membaca nilai sentuh dari pin yang kita set dan menyalakan LED Ketika nilai nya di bawah threshold. Itu artinya, saat kamu menyentuhkan jari mu ke aluminium pad, maka LED akan menyala.

Testing the Project

Upload sketch nya ke ESP32. Sekarang mari kita coba rangkaian nya. Sentuh aluminium foil dan lihat lah LED nya akan menyala.

Kesimpulan

Di artikel ini kamu belajar mengenai cara untuk menggunaka pin sentuh ESP32. Kesimpulan nya :

  • The ESP32 memiliki 10 GPIO sentuh capacitive.
  • Ketika menyentuh GPIO sentuh, maka akan menampilkan nilai yang dibaca oleh sensor.
  • Kamu dapat men set nilai threshold untuk membuat sesuatu terjadi saat dia mendeteksi adanya sentuhan.
  • Pin sentuh ESP32 dapat digunakan untuk mengaktifkan ESP32 dari mode sleep.

Sekian Artikel kali ini, keep learning and learning.

LEAVE A REPLY

Please enter your comment!
Please enter your name here