2.2 Sensor Sentuh ESP32 | Koding Indonesia

2.2 Sensor Sentuh ESP32

Komponen yang diperlukan:

  • ESP32 Devkit 38 Pin (optional)
  • LED 5mm
  • Resistor 330 Ohm
  • Breadboard
  • Kabel Jumper

1. Penghantar Sensor Sentuh di ESP32

Dalam bagian ini, kita akan mempelajari tentang penggunaan sensor sentuh pada ESP32 dalam proyek Internet of Things (IoT). Sensor sentuh adalah perangkat elektronik yang dapat mendeteksi sentuhan atau interaksi fisik pengguna. Dalam proyek IoT, sensor sentuh digunakan untuk memberikan kontrol dan interaksi yang intuitif dengan perangkat.

Apa itu Sensor Sentuh?

Sensor sentuh adalah komponen elektronik yang digunakan untuk mendeteksi sentuhan atau interaksi fisik pengguna. Sensor ini dapat merespons sentuhan, gesekan, atau tekanan dengan cara yang intuitif. Pada ESP32, sensor sentuh menggunakan prinsip kapasitif untuk mendeteksi perubahan medan elektrostatis yang terjadi saat ada sentuhan.

Keuntungan Menggunakan Sensor Sentuh pada ESP32

Menggunakan sensor sentuh pada ESP32 memiliki beberapa keuntungan, antara lain:

  • Interaksi yang intuitif: Pengguna dapat berinteraksi dengan perangkat IoT melalui sentuhan langsung, seperti menggesek atau mengetuk permukaan sensor.
  • Desain yang lebih menarik: Sensor sentuh memungkinkan desain perangkat yang lebih minimalis dan estetis karena tidak memerlukan tombol fisik.
  • Kemudahan penggunaan: Sensor sentuh memungkinkan kontrol yang lebih sederhana dan mudah dipahami oleh pengguna, tanpa perlu mempelajari tombol-tombol atau antarmuka yang kompleks.
  • Fleksibilitas: Sensor sentuh dapat ditempatkan pada berbagai permukaan atau perangkat, memberikan fleksibilitas dalam desain produk IoT.

Cara Kerja Sensor Sentuh pada ESP32

Sensor sentuh pada ESP32 menggunakan prinsip kapasitif. Ketika ada sentuhan atau interaksi fisik dengan permukaan sensor, medan elektrostatis di sekitarnya akan berubah. Sensor sentuh akan mendeteksi perubahan medan ini dan mengubahnya menjadi sinyal listrik yang dapat dianalisis oleh ESP32. Dengan demikian, kita dapat menentukan apakah sensor sentuh ditekan atau tidak.

2. Contoh Aplikasi

Sebelum kita masuk ke contoh penggunaan sensor sentuh pada ESP32, penting untuk mengetahui bahwa pada ESP32, terdapat beberapa pin yang telah diatur untuk mendukung fitur sensor sentuh. Namun, setiap papan ESP32 bisa memiliki konfigurasi pin yang berbeda-beda tergantung pada desain dan spesifikasi papan tersebut.

Pada ESP32 DevKit, beberapa pin yang umumnya dapat berfungsi sebagai pin sensor sentuh adalah: GPIO4, GPIO0, GPIO2, GPIO15, GPIO13, GPIO12, GPIO14, GPIO27, GPIO33, dan GPIO32. Anda bisa menggunakan salah satu dari pin-pin ini untuk menghubungkan sensor sentuh pada ESP32 DevKitC.

Catatan: Namun, perlu diingat bahwa jika Anda menggunakan papan ESP32 yang berbeda, baik itu papan dari produsen yang berbeda atau varian ESP32 yang berbeda, konfigurasi pin untuk sensor sentuh mungkin juga berbeda. Oleh karena itu, kami sangat menyarankan Anda untuk merujuk pada datasheet yang diberikan oleh produsen papan ESP32 yang Anda gunakan.

Skematik

Rakitlah sirkuit dengan kabel jumper dan LED seperti yang ditunjukkan pada diagram skematik berikut ini:

  • LED <-> GPIO 17
  • Jumper <-> GPIO

(Skematik ini menggunakan versi modul ESP32 Devkit dengan 38 GPIO – jika Anda menggunakan model lain, silakan periksa pinout untuk papan yang Anda gunakan).

Kode

Setelah rangkaian siap, salin kode yang disediakan di bawah ini ke Arduino IDE Anda.

3. Penjelasan Code

Pada bagian ini, kita mendefinisikan nomor pin yang akan digunakan untuk menghubungkan sensor sentuh (touchPin) dan LED (ledPin).

Variabel touchState digunakan untuk menyimpan nilai yang akan kita baca dari sensor sentuh.

Fungsi setup() digunakan untuk menginisialisasi kondisi awal sebelum program utama dijalankan. Di sini, kita memulai komunikasi serial dengan baud rate 115200 melalui Serial.begin(115200). Selanjutnya, kita mengatur pin sensor sentuh (touchPin) sebagai input menggunakan pinMode(touchPin, INPUT) dan mengatur pin LED (ledPin) sebagai output menggunakan pinMode(ledPin, OUTPUT).

Fungsi loop() akan dieksekusi secara berulang oleh mikrokontroler. Di dalam fungsi ini, pertama kita membaca nilai dari sensor sentuh menggunakan touchRead(touchPin) dan menyimpannya ke dalam variabel touchState. Selanjutnya, kita mencetak nilai sensor sentuh tersebut ke Serial Monitor menggunakan Serial.println(touchState) agar kita dapat melihat nilainya.

Kemudian, kita menggunakan kondisi if-else untuk memeriksa apakah nilai touchState lebih besar dari 50. Jika iya, itu berarti tombol sedang ditekan, maka kita akan mengirimkan sinyal HIGH ke pin LED menggunakan digitalWrite(ledPin, HIGH) untuk menyalakan LED. Jika nilai touchState tidak lebih dari 50, kita mengirimkan sinyal LOW ke pin LED menggunakan digitalWrite(ledPin, LOW) untuk mematikan LED.

4. Mengunggah Code Ke ESP32

Sebelum menekan tombol Upload, pastikan Anda pilih Board dan Port dengan benar. Caranya, masuk ke Tools > Board lalu pilih board ESP32 yang sedang Anda gunakan. Pada kasus ini, pengaturan kami sebagai berikut:

Sekarang silahkan klik atau tekan Upload

Kemudian tunggu sampai pesan “Done Uploading” muncul.

5. Menguji Proyek

Setelah semua koneksi dan pengaturan selesai, nyalakan ESP32 dan pastikan sensor sentuh berada dalam jarak jangkauan tangan Anda. Kemudian, cobalah menyentuh sensor sentuh tersebut dengan jari Anda. Jika semuanya berjalan dengan baik, Anda akan melihat tindakan respons dari ESP32, seperti perubahan pada LED yang terhubung atau penampilan nilai pada Serial Monitor jika Anda telah mengatur output lainnya berdasarkan sentuhan sensor.

Nilai touchState mencerminkan respons dari sensor sentuh, yang berarti ketika Anda menyentuh sensor, nilai touchState akan berubah dan nilainya akan berbeda dari sebelumnya. Nilai tersebut akan mencerminkan intensitas atau kekuatan sentuhan Anda pada sensor. Ketika Anda tidak menyentuh sensor, nilai touchState akan kembali ke nilai sebelumnya atau tetap pada nilai sebelumnya jika tidak ada perubahan.

Anda dapat melakukan pengujian lebih lanjut dengan mencoba variasi sentuhan, seperti menyentuh sensor dengan berbagai intensitas atau kecepatan. Selain itu, pastikan Anda telah memprogram ESP32 dengan kondisi yang berbeda, misalnya, mengatur batas ambang yang berbeda untuk mendapatkan respons yang berbeda dari sensor sentuh.

Selamat mencoba dan eksplorasi lebih lanjut untuk mengembangkan proyek Anda dengan ESP32 dan sensor sentuh!

references: randomnerdtutorials.com arduino.cc microcontrollerslab.com circuito.io ahonerd.com instructables.com mischianti.org simple-circuit.com how2electronics.com

Anton Prafanto
Anton Prafanto
Konten developer kodingindonesia.com & staf pengajar tetap di Universitas Mulawarman Samarinda