Skip to main content

Internal sensor ESP32 (Hall sensor & Touch sensor)

Pada percobaan kali ini kita akan mencoba menggunakan sensor internal yang ada di dalam ESP-32. Board ESP 32 di dalamnya terdapat sensor-sensor bawaan yaitu sensor sentuh (touch sensor), sensor efek hall dan pad sebagian versi ESP 32 memiliki sensor suhu. Pada percobaan section pertama ini, kita akan membaca nilai sensor dengan menggunakan serial terminal yang ada di Arduino IDE. Kemudian pada section kedua, kita akan menggunakan sensor internal tersebut untuk membangunkan ESP 32 dari mode tidur (deep sleep).

Weekly project 03 | Sistem Penginderaan


Section pertama

Persiapan

Komponen yang perlu kita siapkan adalah seperti dalam tabel berikut.

No. Nama Komponen
1 Board ESP32 Devkit V1
2 Jumper wire
3 Breadboard

Rangkai seluruh komponen seperti gambar dibawah ini.


Kode program

Buat sketch baru di Arduino IDE dengan memilih menu File > New Sketch dan copy-paste kode berikut.

// ESP 32 touch test
// Just test touch pin 
// Proyek ke 3

void setup()
{
  Serial.begin(115200);
  delay(1000);
}

void loop()
{
  Serial.print("Touch sensor : ");
  Serial.print(touchRead(4));
  Serial.println();
  Serial.print("Hall sensor : ");
  Serial.print(hallRead());
  Serial.println();
}

Penjelasan program

Kode sketch diatas merupakan kode yang digunakan untuk menampilkan hasil pengukuran internal sensor hall effect dan touch. Fungsi yang  digunakan untuk membaca internal sensor adalah touchRead() untuk sensor sentuh dan hallRead() untuk sensor efek hal. hasil pengukuran tersebut kemudian dikirim melalui protokol serial yang dapat dilihat dengan Serial Monitor di tools Arduino IDE.


Upload program

Setelah kita memahami program diatas, let's compile. Upload sketch tersebut kedalam ESP32 dengan menekan icon upload. Detail proses upload, dapat mengikuti panduan dalam percobaan di link ini. Untuk melihat nilai pengukuran sensor internal, kita dapat menggunakan serial monitor yang ada di Arduino IDE. Adapun untuk membuka serial monitor tersebut dapat mengikuti langkah-langkah berikut:

Langkah pertama, membuka menu Tools > Serial Monitor.

menu serial monitor.png

Langkah kedua, pastikan baudrate yang kita gunakan sesuai dengan yang kita atur dalam kode sketch diatas Serial.begin(115200) disini kita menggunakan baudrate 115200.

serial monitor box.png

Hasil dari percobaan kita seperti yang ada dalam video berikut.


Section kedua

Pada percobaan section kedua ini sebenarnya konsepnya ringan saja, hanya mencoba memanfaatkan sensor touch untuk membangunkan ESP32 yang kita atur dalam mode deep sleep. Hanya saja kebetulan saya kedatangan mainan baru nih, yaitu layar Round TFT. Komponen ini terbeli karena ada kegiatan kantor yang mengharuskan saya membuat IoT underwater untuk memonitoring kapal. Nah pada saat belanja, kami kurang 100 ribu lagi untuk dapat free ongkos kirim, jadi ya terpaksa beli Round TFT karena harganya 90 ribu. Daripada teman baru kita ini nganggur (Round TFT), ada baiknya kita gunakan untuk percobaan kita.

Sebagian besar aktifitas kita di section dua ini adalah melakukan konfigurasi round TFT untuk dapat memunculkan animasi gambar berwarna (blink-eye). Animasi ini kita gunakan sebagai indikator yang menunjukan bahwa rangkaian ESP32 sedang dalam mode deep sleep atau sedang wakeup.


Persiapan

Mari kita persiapkan beberapa komponen dalam tabel berikut.

No. Komponen
1. Development-board ESP32 Devkit V1
2. Round TFT GC9A01 (240 x 240) 1.28"
4. Jumper wires
5. Breadboard

Skema rangkaian dari Round TFT ke ESP32 menggunakan protokol komunikasi SPI. Hem...., apa itu SPI? (Serial Peripheral Interface) adalah protokol komunikasi serial sinkron yang memungkinkan ESP32 untuk mengirim dan menerima data dengan layar LED. Protokol ini menggunakan 4 kabel: pin data (MOSI), pin clock (SCK), pin pilih chip (CS), dan pin ground (GND). ESP32 bertindak sebagai master SPI, sedangkan layar LED bertindak sebagai slave.

Round TFT
ESP32
Vcc 3.3V
GND GND
DIN / SDA  23  
CLK / SCK / SCL    18  
CS   15  
DC    2  
RST    4  

Skema rangkaiannya adalah seperti di bawah ini. Bagi teman-teman yang ingin membuat ilustrasi rangkaian seperti dibawah ini dapat menggunakan aplikasi Fritzing ya. Aplikasi ini gratis, dapat diunduh di laman https://fritzing.org/download/ .
rangkaian advance_bb.png

 


Kode program
Penjelasan program
Upload program

Hasil percobaan

Referensi:

  1. https://www.youtube.com/watch?v=pmCc7z_Mi8I
  2. https://www.waveshare.com/1.28inch-lcd-module.htm

jangan lupa titik-koma;