Project 3: ESP32 Internal Sensor

Muhammad Ammar Murtaqib
5 min readFeb 20, 2022

--

Hi!

Tidak terasa sudah sampai project ESP32 ketiga, internal sensor. Kali ini aku akan menceritakan pengalaman project tersebut. Kalau ingin melihat project keduaku, klik disini ya.

GPIO touch sensor pada ESP32 30PIN

Apa itu sensor? Sensor adalah perangkat yang digunakan untuk mendeteksi perubahan besaran fisik seperti tekanan, gerakan, kelembaban, suhu, dan fenomena-fenomena lingkungan lainnya. ESP32 sendiri sudah dilengkapi dengan sensor internal berupa touch sensor (berinteraksi dengan sentuhan), hall effect sensor (berinteraksi dengan medan magnet) dan temperature sensor (berinteraksi dengan suhu) yang mengukur suhu internal ESP32. Bagaimana ceritaku dalam membuat project ini? baca sampai habis ya.

Alat-alat dan komponen yang kugunakan ialah:

  • ESP32
  • Breadboard
  • Jumper cable male-to-male
  • cable data micro usb type-b
  • LED
  • resistor 330ohm
  • magnet kecil (neodimium)
  • laptop

Touch Sensor

Kita akan mempelajari bagaimana sensor sentuh pada ESP32, jika sensor tersentuh maka akan muncul angka pada serial monitor yang kurang dari nomor threshold.

Touch Sensor #1:Dasar

Rangkaian yang sederhana sebagai dasar dari mempelajari sensor sentuh, ikuti seperti rangkaian dibawah ini.

skema dasar sensor sentuh

ESP32 yang sudah tertancap pada breadboard dipasang kabel jumper pada GPIO4 (Touch sensor 0). Seperti biasa, sambungkan ESP32 dengan kabel USB.

gambar nyata

Lalu, kode Arduinonya:

touch sensor#1 code

Kode akan mencetak nilai pin touch 0 (GPIO 4) pada Serial Monitor dengan touchRead(4). 4 adalah nomor GPIO.

Verify dan Upload kodenya, lalu coba untuk menyentuh ujung kabel jumper. Buka serial monitor (Tools > Serial Monitor) pada 115200 baud.

Serial monitor: Touch #1

Jika aku menyentuh kabel, angka yang keluar kurang dari 20, seperti pada kodenya bahwa threshold sama dengan 20. Dengan begitu, kita berhasil dalam dasar sensor sentuh ESP32.

touch sensor#1 : dasar

Touch Sensor #2: 1 LED

Pada percobaan ini akan menyalakan LED dengan menyentuh sensor, rangkaiannya seperti di bawah ini.

Skema 1 led (source: randomnerdtutorials.com)
gambar nyata
touch sensor#2 code

Aku menginisialisasi touchPin pada GPIO 4 dan ledPin pada GPIO16, juga nilai threshold= 20. Pada setup(), akumenginisialisasi pin LED sebagai output sehingga dapat dinyalakan. Pada loop(), aku menetapkan nilai touchRead ke variabel touchValue. Nilai akan dicetak pada monitor Serial. Jika nilai sentuh kurang dari nilai ambang batas, LED akan menyala dan sebaliknya, berikut hasilnya.

touch sensor #2 : 1 LED

Touch Sensor #3: Variasi touch sensor dan LED

Untuk variasi ini, aku menggunakan 2 LED dengan 2 sumber sensor sentuh, rangkaiannya seperti di bawah ini.

gambar nyata

Pada variasi ini aku membuat 1 sensor sentuh dapat menyalan 1 LED. Jika ingin LED nyala bersama, kita harus menyentuh 2 kabel jumper yand ada, berikut kode dari variasi ini.

touch sensor #3 code

Sama halnya dengan percobaan sebelumnya, aku menambahkan lebih banyak variabel: touchPin2 dan ledPin2, juga touchValue2. Pada loop(), nilai sensor sentuhan dibaca dua kali (touchValue dan touchValue2) melalui 2 touchPins. Jika touchValue pertama kurang dari nilai threshold, LED pertama akan menyala, sama halnya dengan LED kedua, berikut hasilnya.

touch sensor#3 : variasi

Hall-Effect Sensor

Sensor hall-effect terletak di belakang tutup logam ESP32 yang dapat mendeteksi medan magnet. Semakin besar bidang magnet, semakin besar nilai yang ditampilkan pada Serial Monitor. Kali ini kita hanya membutuhkan ESP32 yang tertancap pada breadboard dan menyediakan magnet.

hall-effect sensor code

Setelah verify dan upload kode, Buka monitor serial (Tools > Serial monitor) pada 9600 baud dan coba menempelkan magnet pada tutup logam ESP32.

Serial Monitor

Jika magnet terdeteksi, maka nilai yang muncul pada serial monitor akan naik berbeda dengan nilai sebelum terdeteksi.

percobaan hall-effect sensor

Temperature Sensor

Pada percobaan ini, kita hanya membutuhkan ESP32 yang tertancap pada breadboard. Seperti pada pembuka, kita akan mengetahui suhu internal pada ESP32.

temperature sensor code

Seperti biasa kita verify dan upload kodenya. Untuk melihat nilainya, buka serial monitor pada 115200 baud.

Serial Monitor

Serial Monitor menunjukkan 53,33 C yang menandakan suhu internal dari ESP32 kita.

Errors

Beruntung pada project kali ini aku tidak menemui error yang berat. Error yang tidak begitu berat itu terjadi saat membuat kode percobaan variasi LED dengan touch sensor, aku menemui kode yang kondisi loopnya saling tindih. Namun, akhirnya dapat teratasi dengan baik. Selain itu saat melakukan percobaan hall-effect, sempat ESP32ku terbentur sehingga di serial monitor keluar nilai yang tidak berbentuk angka melainkan huruf-huruf aneh. Solusi untuk itu ialah mengulang dari upload kode dan akan kembali semula bekerja.

Ini akhir dari cerita pengalamanku pada project ketiga ESP32, tunggu projectku selanjutnya!

Muhammad Ammar Murtaqib

18220072

II2260 Sistem Embedded

--

--