Embedded System (ESP32 Project 3): Internal Sensor

Imam Rusydi Ibrahim
3 min readFeb 22, 2023

--

Halo, Setelah sukses dengan project LED Blink dan Digital input output, kali ini kita akan membuat project ke-3 yaitu internal sensor dengan menggunakan ESP32 lagi. Pada project ketiga ini kita memiliki subproject yang dibagi menjadi 3, yaitu project Touch sensor, Hall effect sensor dan Temperature sensor. Akan tetapi, tidak semua ESP mendukung temperature sensor.

- Touch Sensor

Untuk project ini kita memerlukan tools sebagai berikut.

TOOLS

  • ESP32 DOIT DEVKIT V1
  • LED
  • Breadboard
  • Kabel jumper (male to male)
  • Resistor 220 Ohm
  • Kabel Data Micro USB
  • Laptop/PC yang sudah terinstall Arduino IDE

Jika belum melakukan instalasi Arduino IDE, Anda dapat menginstalnya pada https://www.arduino.cc/en/software

Jangan lupa untuk melakukan setup Arduino IDE, jika belum silahkan untuk membaca pada postingan sebelumnya.

Berikut linknya! Embedded System (ESP32 Project 1): LED Blink

Untuk merangkai komponennya, kita dapat melihat ilustrasi berikut agar mendapat gambaran untuk merangkainya.

Untuk langkah-langkahnya sebagai berikut.

  • Pertama kali, siapkan alat dan bahannya
  • Sambungkan ground pada ESP32 (kode GND) ke kutub negatif pada breadboard
  • Kemudian, hubungkan pin D4 yang telah support touch sensor dengan kabel jumper
  • Setelah itu, sambungkan pin output ke LED dan berikan resistor 220 ohm.
  • Hubungkan kutub negatif LED dengan kutub negatif breadboard.
  • Hubungkan Arduino IDE pada laptop dengan rangkaian project menggunakan kabel data microUSB
  • Saatnya melakukan eksperimen!

Experiment

Berikut adalah kode yang saya gunakan di arduino IDE.

Kalian bisa mencontoh kode tersebut, lalu lakukan verify dan lakukan upload.

Pada kode tersebut, terdapat 2 function yaitu setup() dan loop(). Kemudian, pada function loop(), terdapat function touchRead(touchPin) yang akan membaca nilai sensor dan kemudian hasilnya disimpan ke variable touchValue. Nilai dari touchValue akan semakin kecil jika kita menyentuh sensor. Kemudian terdapat variable treshold sebagai parameter konstanta nilai toleransi sentuhnya. Nilai dari variable treshold dapat diubah-ubah sesuai kondisi yang diinginkan. Kemudian, terdapat kondisi apabila nilai sentuh kurang dari threshold maka lampu akan menyala. Kemudian setelah kode tersebut dijalankan, inilah yang terjadi.

- Hall Effect Sensor

Pada percobaan kedua ini kita akan menggunakan rangkaian yang sama seperti percobaan Touch sensor sebelumnya. Namun, pada percobaan Hall Effect Sensor, kita tidak memerlukan kabel jumper pada input touch. Kalian juga dapat melihat ilustrasi berikut agar mendapat gambaran untuk merangkainya.

Untuk percobaan kali ini, kita dapat menggunakan kode program berikut.

Kalian bisa mencontoh kode tersebut, lalu lakukan verify dan lakukan upload.

Pada kode tersebut, terdapat 2 function yaitu setup() dan loop(). Kemudian, pada function loop(), terdapat function hallRead() yang akan membaca nilai sensor dan kemudian hasilnya disimpan ke variable hallEffectValue. Nilai dari hallEffectValue tergantung dengan seberapa kuat magnetnya. Ketika didekati magnet, nilai kembalian dari function hallRead() akan berubah bisa negatif maupun positif tergantung kutub magnet. Jika tidak didekati magnet sekalipun (anggapan netral), nilai return dari function hallRead() akan berubah-ubah, untuk itu kita perlu menyesuaikan nilai konstanta variable treshold. Kemudian setelah kode tersebut dijalankan, inilah yang terjadi.

- Temperature Internal Sensor

Pada percobaan ketiga ini, kita tidak memerlukan rangkaian tambahan. Kalian dapat menghubungkan ESP32 dengan Arduino IDE pada laptop/PC kalian. Namun, perlu diingat bahwa terdapat beberapa ESP32 yang tidak memiliki sensor temperatur.

Untuk percobaan kali ini, kalian dapat menggunakan kode program berikut.

Kalian bisa mencontoh kode tersebut, lalu lakukan verify dan lakukan upload.

Berdasarkan serial monitor yang dihasilkan, angka suhu menunjukkan angka konstan, yaitu 53.33 C. Menurut beberapa sumber di internet, ternyata ESP32 tidak memiliki sensor temperatur internal. Dari sini kita dapat simpulkan bahwa fungsi temprature_sens_read() hanya mereturn nilai 128 fahrenheit yang kemudian dikonversi menjadi 53.33 C.

Oke, akhirnya project ketiga ini selesai.

--

--

No responses yet