ESP32 Working with Internal Sensor

Paul Marturia
5 min readFeb 13, 2021

--

HALOO SEMUANYA! Kita ketemu lagi di pertemuan kita pada kesempatan ini. Setelah sebelumnya kita mengenal apa itu ESP32, apa saja yang ada didalamnya, bagaimana cara menggunakan pin-pin yang tersedia di sana? Sekarang kita akan belajar mengenai sensor.

Sensor adalah sesuatu yang digunakan untuk mendeteksi adanya perubahan lingkungan. ESP32 memiliki 10 GPIO (pin) yang dapat mendeteksi sensor. GPIO ini dapat merasakan variasi apapun yang menahan muatan listrik, seperti misalnya pada kulit manusia.

Nice, kalau udah paham, sekarang markiprak (mari kita praktik) HEHE :D Mula-mula kita akan kenalan dulu dengan 3 macam sensor yang akan kita lakukan terlebih dahulu sebelum kita berkreasi. Adapun 3 sensor tersebut adalah sebagai berikut :

  1. Touch Sensor
  2. Half Effect Sensor
  3. Temperature Sensor

Note : kalian bisa klik tulisan tersebut untuk melihat tutorial pada laman web.

A.1 Touch Sensor

Kita bahas terlebih dahulu yang pertama. Siapkan ESP32, serta 1 kabel jumper Male to Female. Oh iya, kabel USB dan laptop jangan lupa yak hehehe.

Pertama, ambil kabel jumper, masukkan ke dalam pin GPIO4 (D4) (Female). Setelah itu, colokkan ESP32 ke dalam laptop.

Buka Arduino dan salin kode berikut ini.

// ESP32 Touch Test
// Just test touch pin - Touch0 is T0 which is on GPIO 4.

void setup() {
Serial.begin(115200);
delay(1000); // give me time to bring up serial monitor
Serial.println("ESP32 Touch Test");
}

void loop() {
Serial.println(touchRead(4)); // get value of Touch 0 pin = GPIO 4
delay(1000);
}

Btw, kalian bisa juga dapetin kode ini di web randomnerdtutorials.

Setelah itu verify dan upload. Lalu pergi ke Tools >Serial Monitor

Tools > Serial Monitor

Nah, disini coba kalian sentuh kabelnya. Saat disentuh angka nya akan berubah turun, saat dilepas angkanya akan naik kembali.

Kalian bisa juga melihat perubahan ini dengan plotter. Pergi ke Tools > Serial Plotter, dan lihatlah apa yang kalian dapatkan.

Tools > Serial Plotter

A.2 How to Turn On/Off LED using Touch Sensor?

Sekarang kita akan mencoba untuk menyalakan serta mematikan lampu LED menggunakan bantuan sensor sentuh. Mula-mula siapkan terlebih dahulu yuk alat bahannya.

  1. ESP32 serta Breadboard
  2. Kabel Jumper
  3. Resistor
  4. Lampu LED
  5. Laptop serta Kabel USB

Kalau semuanya sudah siap, kita mulai aja langsung gapake lamaaa.

  1. Siapkan ESP32 dalam breadboard
  2. Masukkan kabel jumper ke dalam pin GND dan kutub negatif.

3. Masukkan kabel jumper pada pin GPIO4. Kabel ini nantinya akan digunakan sebagai sensor sentuh.

4. Letakkan LED diatas breadboard.

5. Letakkan resistor di kaki LED.

6. Masukkan kabel jumper di kaki LED dan di kutub negatif breadboard.

7. Masukkan kabel jumper di pin GPIO16 dan di resistor.

8. Buka Arduino dan salin kode berikut.

// set pin numbers
const int touchPin = 4; // inisialisasi sensor di pin 4
const int ledPin = 16; // inisialisasi led di pin 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);
}

Setelah itu, lihat hasilnya. Kalau punyaku, hasilnya seperti ini.

Gimana, gampang kan?

Disini aku mencoba menambahkan 2 LED lagi, dan langkah-langkahnya bisa diulangi lagi dari nomor 4.

Setelah itu jangan lupa, kode programnya tambahkan, ada LED yang harus diinisialisasikan di pin tempat kamu menaruh. Sebagai referensi, akan aku tampilkan rangkaian dan kode program yang telah kubuat.

Rangkaian dengan 3 buah lampu LED
Kode Program dengan 3 buah lampu

Dan nanti setelah di upload dan verify, kira-kira hasilnya akan seperti ini.

Bagaimana, mudah bukan menggunakan touch sensor?

B.1 Half Effect Sensor

Sekarang, kita akan mencoba memanfaatkan sensor magnet, yang dimiliki oleh badan dari ESP32 itu sendiri. Kali ini kita testing dulu aja, alat yang diperlukan hanya ESP32, laptop, USB Cable, dan barang bermagnet.

Masukkan rangkaian kode berikut ini.

// Simple sketch to access the internal hall effect detector on the esp32.
// values can be quite low.
// Brian Degger / @sctv
int val = 0;void setup() {
Serial.begin(9600);
}
// put your main code here, to run repeatedly
void loop() {
// read hall effect sensor value
val = hallRead();
// print the results to the serial monitor
Serial.println(val);
delay(1000);
}

Kalau kalian malas ngopinya, bisa klik File > Examples > ESP32 > HallSensor.

Setelah itu verify dan upload. Setelah itu klik Tools >Serial Monitor. Caranya sama seperti yang tadi kita lakukan saat belajar tentang sensor sentuh. Dekatkan / jauhkan magnet dengan logam yang ada di ESP32. Setelah itu amati perubahan angkanya.

Jika ingin melihat dengan pergerakan garis, kalian bisa klik Tools > Serial Plotter dan lihat pergerakannya.

Untuk foto akan menyusul karena magnet yang aku gunain itu ada masalah gitu, jadi angkanya gaada perubahan saat didekatkan maupun saat dijauhkan.

Nah, sekarang gimana? sudah dapet kan ilmu-ilmu persensoran yang terdapat pada ESP32? Nantikan tutorial selanjutnya ya teman-teman! Sampai jumpa minggu depannn.

Sumber :

  1. https://randomnerdtutorials.com/esp32-touch-pins-arduino-ide/
  2. https://randomnerdtutorials.com/esp32-hall-effect-sensor/

--

--