INTRODUCING THE ESP32 SENSOR

Zachrandika Alif Syahreza
7 min readFeb 15, 2021

--

Assalamualaikum, para pencari ilmu. Bagi yang baru membaca artikel ku perkenalkan nama ku Zachrandika Alif Syahreza dari Sistem dan Teknologi Informasi angkatan 2019. Sebelumnya aku sudah menjelaskan mengenai digital input dan analog input pada ESP32. Sekarang pada artikel ini aku akan menjelaskan mengenai sensor pada ESP32. Seperti biasa, agar mempermudah dalam melakukan penjelasan aku akan melakukan 3 buah project yang berkaitan dengan sensor pada ESP32

What is Sensor ?

Sensor merupakan sebuah perangkat yang digunakan untuk mendeteksi perubahan besaran fisik seperti tekanan, gaya, besaran listrik, cahaya, gerakan, kelembaban, suhu, kecepatan dan fenomena-fenomena lingkungan lainnya. Input yang terdeteksi kemudian dikonversikan menjadi outputyang dimengerti oleh manusia ataupun ditransmisikan secara elektronik untuk ditampilkan atau diolah menjadi informasi yang berguna.

Berdasarkan asal rangsangan yang diterima sensor dikelompokan menjadi 2:

  1. Proprioception : menerima rangsangan yang ditimbulkan dari dalam sistem (kapasita baterai, suhu komponen sistem)
  2. Exteroception : menerima rangsangan yang ditimbulkan dari lingkungan diluar sistem ( audio, sentuhan, cahaya)

Types of Sensors

Ada berbagai macam jenis sensor berdasarkan kegunaannya

Macam-macam sensor
  1. Akselerometer
    Sensor Akselerometer adalah sensor yang dapat mendeteksi perubahan posisi, getaran, kemiringan, dan kecepetan
  2. Sensor Cahaya
    Sensor Cahaya adalah sensor analog yang digunakanuntuk mendeteksi jumlah cahaya yang mengenai sensor tersebut
  3. Sensor Suara
    Sensor Suara adalah sensor yang digunakan untuk merasakan tingkat suara. Sensor suara menerjemahlan amplitudo volume akustik suara menjadi tegangan listrik untuk merasakan tingkat suara
  4. Sensor Tekanan
    Sensor Tekanan atau Pressure Sensor adalah sensor yang digunakan untuk mengukur jumlah tekanan. Sensor tekanan akan menghasilkan sinyal analog yang sebanding dengan jumlah tekanan yang diberikan
  5. Sensor Suhu
    Sensor Suhu atau Temperature Sensor adalah Sensor yang digunakan untuk mengukur suhu.
  6. Sensor Ultrasonik
    Sensor Ultrasonik adalah jenis sensor non-kontak yang dapat digunakan untuk mengukur jarak serta kecepatan suatu benda. Sensor Ultrasonik bekerja berdasarkan sifat-sifat gelombang suara dengan frekuensi lebih besar daripada rentang suara manusia
  7. Sensor Giroskop
    Sensor Giroskop adalah sensor yang digunakan untuk merasakan dan menentukan orientasi dengan bantuan gravitasi bumi. Perbedaan utama antara Sensor Akselerometer dan Giroskop adalah bahwa Giroskop dapat merasakan rotasi di mana akselerometer tidak bisa
  8. Sensor Efek Hall
    Sensor Efek Hall atau Hall Effect Sensor adalah sensor yang dapat mengubah informasi magnetik menjadi sinyal listrik untuk pemrosesan rangkaian elektronik selanjutnya. Sensor Efek Hall ini sering digunakan sebagai sensor untuk mendeteksi kedekatan (proximity), mendeteksi posisi (positioning), mendeteksi kecepatan (speed), mendeteksi pergerakan arah (directional) dan mendeteksi arus listrik (current sensing)
  9. Sensor Kelembaban
    Sensor Kelembaban atau Humidity Sensor merupakan sensor yang digunakan untuk mendeteksi tingkat kelembaban suatu lokasi
  10. Sel beban
    Sel Beban atau Load Cell adalah jenis sensor yang digunakan untuk mengukur berat. Input dari Load Cell ini adalah gaya atau tekanan sedangkan outputnya adalah nilai tegangan listrik

Sensor in ESP32 Lolin32 Lite

Pada board ESP32 Lolin32 Lite terdapat 9 GPIO sensor sentuh yang menggunakan kapasitansi alami tubuh manusia sebagai sensor sentuhan. GPIO tersebut dapat merasakan rangsangan yang menahan muatan listrik, seperti kulit manusia. Sehingga apabila GPIO tersentuh dengan jadi maka GPIO dapat mendeteksinya dan merubahnya menjadi sebuah nilai

ESP32 Lolin32 Lite Pinout

Dari gambar diatas dapat dilihat bahwa sensor sentuh 0 berada pada GPIO 4, sensor sentuh 1 berada pada GPIO 0, dan seterusnya

Untuk mengamplikasikan sensor sentuhan pada Arduino IDE hanya dengan menggunakan fungsi touchRead ( ). fungsi akan menerima argumen dari GPIO yang mendeteksi sentuhan tersebut

Project to Turn On LED with Touch Sensor

Pada project kali ini aku akan mencoba mengaplikasikan penggunaan sensor yang terdapat pada board ESP32 untuk menyalakan LED. Sensor yang digunakan pada project ini adalah sensor sentuh. Jadi ketika kita menyentuh kabel yang terhubung dengan GPIO sensor sentuh maka LED akan menyala begitupun sebaliknya

Komponen yang dibutuhkan untuk melakukan project ini adalah:

  1. Development Board: ESP32 (pada project ini aku menggunakan ESP32 Lolin32 Lite)
  2. Micro USB cable
  3. LED 5 mm
  4. resistor 330 Ohm
  5. Breadboard
  6. kabel jumper male to male dan male to female

Build the Circuit

Susun semua komponen pada breadboard sesuai skema berikut ini

Skema Project 3.1
  1. GPIO 16 dan GPIO 17 dihubukan dengan Resistor 330 Ohm untuk menyalakan LED
  2. GPIO 4 dipasangkan dengan kabel jumper male-to-female
  3. Kutub negatif LED dihubungkan dengan Ground pada breadboard
  4. Pin Ground pada board ESP32 dihubungkan dengan Ground pada breadboard

NB : Pastikan kabel jumper dan komponen lainnya dapat berguna dengan baik agar tidak terjadi error

Program to Turn On LED with Touch Sensor

Setelah menyusun semua komponen yang digunakan pada breadboard, masukkan kode program sebagai berikut

// set nomor pin
const int touchPin = 4;
const int ledPin1 = 16;
const int ledPin2 = 17;

const int threshold = 20;

// variabel untuk menyimpan nilai touch pin
int touchValue;

void setup(){
Serial.begin(115200);
delay(1000);
// menginisiasi ledpin1 dan ledpin2 sebagai output
pinMode (ledPin1, OUTPUT);
pinMode (ledPin2, OUTPUT);
}

void loop(){
// membaca state yang dihasilkan dari nilai touchRead
touchValue = touchRead(touchPin);
Serial.print(touchValue);
// melakukan pengecekan apakah nilai treshold lebih kecil dari nilai touchValue
// jika iya maka menyalakan LED
if(touchValue < threshold){
// menyalakan LED
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
Serial.println(" - LED on");
}
else{
// mematikan LED
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
Serial.println(" - LED off");
}
delay(500);
}

Untuk lebih jelasnya dapat download disini touch_sensor.ino

Program to Make LED Blinking with Touch Sensor

Setelah berhasil untuk menyalakan LED dengan sensor sentuh, sekarang aku akan mencoba membuat LED dapat berkedap-kedip dengan sensor sentuh

Untuk keseluruhan kode program hampir sama dengan project sebelumnya, yang berbeda hanya pada bagian loop saat menyalakan LED. Saat menyalakan LED kode program dibuat untuk menyalakan 2 buah LED secara bergantian sehingga LED soalah-olah berkedap-kedip. Berikut kode progamnya

// set nomor pin
const int touchPin = 4;
const int ledPin1 = 16;
const int ledPin2 = 17;

const int threshold = 20;

// variabel untuk menyimpan nilai touch pin
int touchValue;

void setup(){
Serial.begin(115200);
delay(1000);
// menginisiasi ledpin1 dan ledpin2 sebagai output
pinMode (ledPin1, OUTPUT);
pinMode (ledPin2, OUTPUT);
}

void loop(){
// membaca state yang dihasilkan dari nilai touchRead
touchValue = touchRead(touchPin);
Serial.print(touchValue);
// melakukan pengecekan apakah nilai treshold lebih kecil dari nilai touchValue
// jika iya maka menyalakan LED
if(touchValue < threshold){
// menyalakan LED secara blinking
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
delay(250);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(250);
Serial.println(" - LED on");
}
else{
// mematikan LED
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
Serial.println(" - LED off");
}
delay(500);
}

Untuk lebih jelasnya dapat download disini touchblinking_sensor.ino

Project to Turn On LED with Hall Effect Sensor

Setelah berhasil melakukan project pertama menggunakan sensor sentuh internal, selanjutnya aku mencoba untuk melakukan project menggunakan sensor hall

Sensor hall adalah sensor yang digunakan untuk mengukur medan magnet. Biasanya sensor hall ini digunakan pada alarm pintu. Pintu akan berbunyi apabila belum tertutup dengan rapat

Door Alarm hall sensor

Pada project kali ini aku akan mencoba menyalakan lampu LED dengan menggunakan sensor hall. Pada dasarnya untuk menyalakan LED dengan sensor hall hanya menggunakan fungsi hallRead

Komponen yang dibutuhkan pada project ini adalah:

  1. Development Board: ESP32 (pada project ini aku menggunakan ESP32 Lolin32 Lite)
  2. Micro USB cable
  3. LED 5 mm
  4. resistor 330 Ohm
  5. Breadboard
  6. Magnet
  7. kabel jumper male to male dan male to female

Build the Circuit

Skema project 3.2
  1. GPIO 16 dan GPIO 17 dihubukan dengan Resistor 330 Ohm untuk menyalakan LED
  2. Kutub negatif LED dihubungkan dengan Ground pada breadboard
  3. Pin Ground pada board ESP32 dihubungkan dengan Ground pada breadboard

NB : Pastikan kabel jumper dan komponen lainnya dapat berguna dengan baik agar tidak terjadi error

Program to Turn On LED with Hall Effect Sensor

Setelah memastikan seluruh komponen sudah terpasang dengan baik pada breadboard, masukkan kode program berikut ini pada Arduino IDE

// set nomor pin 
const int ledPin1 = 16;
const int ledPin2 = 17;

const int threshold = 50;

// variabel untuk menyimpan nilai touch pin
int touchValue;

void setup(){
Serial.begin(115200);
delay(1000);
// menginisiasi ledpin1 dan ledpin2 sebagai output
pinMode (ledPin1, OUTPUT);
pinMode (ledPin2, OUTPUT);
}

void loop(){
// membaca state yang dihasilkan dari nilai hallRead
int measurement = 0;
measurement = hallRead();
Serial.print(measurement);
// melakukan pengecekan apakah nilai treshold lebih kecil dari nilai touchValue
// jika iya maka menyalakan LED
if(measurement > threshold){
// menyalakan LED
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
Serial.println(" - LED on");
}
else{
// mematikan LED
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
Serial.println(" - LED off");
}
delay(500);
}

Untuk lebih jelasnya dapat download disini hall_sensor.ino

Project with Temperature Sensor

Internal temperature sensor ESP32

Setelah berhasil mengerjakan project menggunakan sensor hall, aku melakukan project terakhir yaitu menggunakan sensor suhu internal. Project ini mengukur suhu dari sistem ESP32 yang aku miliki. Untuk mengukur suhu internal kita hanya tinggal menggunakan fungsi temprature_sens_read

Komponen yang dibutuhkan pada project ini adalah:

  1. Development Board: ESP32 (pada project ini aku menggunakan ESP32 Lolin32 Lite)
  2. Breadboard
  3. Micro USB cable

Build the Circuit

Skema project 3.3

NB : Pastikan semua komponen sudah terpasang dengan baik agar tidak terjadi error

Program for Temperature Sensor ESP32

Setelah memasang semua komponen dengan benar masukkan kode program berikut ini

#ifdef __cplusplus
extern "C" {
#endif
uint8_t temprature_sens_read();
#ifdef __cplusplus
}
#endif
uint8_t temprature_sens_read();

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

void loop() {
Serial.print("Temperature: ");

// mengubah nilai temperatur dari Fahrenheit ke Celcius
Serial.print((temprature_sens_read() - 32) / 1.8);
Serial.println(" C");
delay(5000);
}

Untuk lebih jelasnya dapat download disini internal_temperature_sensor.ino

Conclusion

Setelah melakukan berbagai macam project mengenai internal sensor ada beberapa hal yan dapat aku simpulkan

  1. Untuk project hall sensor harus dipastikan bahwa magnet yang digunakan adalah magnet yang bagus agar ESP32 dapat mendeteksi medan mgnet dengan baik. Pada kasus yang aku lakukan dikarenakan magnet yang aku gunakan tidak begitu bagus, menyebabkan ESP32 kesulitan dalam mendeteksi medan magnetnya
  2. Untuk project internal temperatur sensor hasil temperatur yang aku dapatkan ketika melihat serial monitor adalah 53,33. Hal itu dikarenakan fungsinya hanya mengembalikan 128 (sensor tidak ada)

Watch My Youtube Video

--

--

No responses yet