Hallo lagi 👋
Minggu kemarin kita sudah mencoba digital I/O menggunakan push button. Sekarang kita akan mencoba hal lain lagi nih, kita akan mencoba fitur sensor yang sudah ada pada ESP32. Karena sensor ini "fasilitas" dari ESP32 karena sensor ini sudah bulit-in di ESP32. karena kita sudah "difasilitasi" kenapa tidak kita coba hehe.
Nah, pada ESP32 terdapat 3 buah sensor yang sudah built-in, yaitu :
- Touch sensor
- Hall-effect sensor (sensor medan magnet)
- Sensor suhu
Tutorial dasarnya bisa kita lihat dari Random Nerd Tutorials, untuk linknya bisa langsung dilihat disini :
Oke deh mari kita mulai.
Touch Sensor
Pertama kita akan bermain dengan touch sensor ESP32. alat-alat yang kita butuhkan adalah :
- ESP32
- Laptop/PC
- Breadboard
- Kabel jumper
- Kabel micro USB
- LED
- Aluminium foil (opsional)
- Tulis Code
Oke kita coba untuk menulis code seperti ini :
// set pinoutconst int touchPin = 4; const int ledPin = 16;const int touchPin2 = 15;const int ledPin2 = 5;
//thresehold adalah batas nilai kondisi touch pin
const int threshold = 25;
// variabel untuk menyimpan touch valueint touchValue;int touchValue2;
void setup(){ Serial.begin(115200); delay(1000); // inisiasi LED sebagai output: pinMode (ledPin, OUTPUT); pinMode (ledPin2, OUTPUT);}
void loop(){ //Membaca value dari touchValue touchValue = touchRead(touchPin); touchValue2 = touchRead(touchPin2); Serial.print(touchValue); Serial.print(touchValue2);
// Pengecekan touchValue apakah dibawah threshold atau tidak // Jika dibawah threshold LED akan menyala (HIGH)
//LED 1 if(touchValue2 < threshold){ // turn LED on digitalWrite(ledPin, HIGH); Serial.println(" - LED on"); } else{ // turn LED off digitalWrite(ledPin, LOW); Serial.println(" - LED off"); }
// LED 2 if(touchValue < threshold){ // turn LED on digitalWrite(ledPin2, HIGH); Serial.println(" - LED on"); } else{ // turn LED off digitalWrite(ledPin2, LOW); Serial.println(" - LED off"); } delay(500);}
Jika sudah kita bisa lanjut ke tahap selanjutnya.
2. Susun Rangkaian pada Breadboard
(p.s. Sebenernya langkah 2 ini bisa dilakukan duluan. langkah 1 dan langkah 2 bebas mau mana duluan, kalau saya enakan langkah 1 dulu hehe 😅)
Kita bisa coba untuk menyusun rangkaian seperti dibawah ini.
Nah di atas saya sudah menyebutkan untuk meyiapkan aluminium foil, tetapi ini opsional karena, jika kita memegang pin kabel jumper, touch sensor masih tetap akan bekerja. Saya pakai alumunium foil karena biar mudah untuk merekam video di bawah hehe.
// set pinout
const int touchPin = 4;
const int ledPin = 16;
const int touchPin2 = 15;
const int ledPin2 = 5;
//thresehold adalah batas nilai kondisi touch pin
const int threshold = 25;
// variabel untuk menyimpan touch value
int touchValue;
int touchValue2;
void setup(){
Serial.begin(115200);
delay(1000);
// inisiasi LED sebagai output:
pinMode (ledPin, OUTPUT);
pinMode (ledPin2, OUTPUT);
}
void loop(){
//Membaca value dari touchValue
touchValue = touchRead(touchPin);
touchValue2 = touchRead(touchPin2);
Serial.print(touchValue);
Serial.print(touchValue2);
// Pengecekan touchValue apakah dibawah threshold atau tidak
// Jika dibawah threshold LED akan menyala (HIGH)
//LED 1
if(touchValue2 < threshold){
// turn LED on
digitalWrite(ledPin, HIGH);
Serial.println(" - LED on");
}
else{
// turn LED off
digitalWrite(ledPin, LOW);
Serial.println(" - LED off");
}
// LED 2
if(touchValue < threshold){
// turn LED on
digitalWrite(ledPin2, HIGH);
Serial.println(" - LED on");
}
else{
// turn LED off
digitalWrite(ledPin2, LOW);
Serial.println(" - LED off");
}
delay(500);
}
Jika sudah kita bisa lanjut ke tahap selanjutnya.
2. Susun Rangkaian pada Breadboard
(p.s. Sebenernya langkah 2 ini bisa dilakukan duluan. langkah 1 dan langkah 2 bebas mau mana duluan, kalau saya enakan langkah 1 dulu hehe 😅)
Kita bisa coba untuk menyusun rangkaian seperti dibawah ini.
Nah di atas saya sudah menyebutkan untuk meyiapkan aluminium foil, tetapi ini opsional karena, jika kita memegang pin kabel jumper, touch sensor masih tetap akan bekerja. Saya pakai alumunium foil karena biar mudah untuk merekam video di bawah hehe.
3. Testing
Nah, setelah code dan rangkaian di atas breadboard sudah siap, saatnya kita compile dan import codenya ke ESP32. Nah nanti hasilnya akan seperti ini :
Gimaha berhasil ga nih ? hehe, jika tidak berhasil mungkin kita bisa coba hal hal berikut :
- Pastikan pin pada Code sesuai dengan pin yang kita rangkai di Breadboard
- Coba untuk membuka serial monitor pada Arduino IDE, jika saat pin dipegang dan nilainya tidak berubah. Mungkin kita bisa mencoba untuk mengganti kabel jumpernya. atau sesuaikan variabel thresholdnya
Hall Effect Sensor
Karena hall effect bisa membaca medan magnet. maka kita akan bermain dengan magnet dan mencoba PWM 😮
Pertama kita akan bermain dengan touch sensor ESP32. alat-alat yang kita butuhkan adalah :
- ESP32
- Laptop/PC
- Breadboard
- Kabel jumper
- Kabel micro USB
- LED
- Magnet
- Tulis Code
Oke kita coba untuk menulis code seperti ini :
int val = 0;const int ledPin = 16;const int resolution = 4;const int freq = 5000;const int ledChannel = 0;
void setup() { Serial.begin(9600); ledcSetup(ledChannel, freq, resolution);
ledcAttachPin(ledPin, ledChannel);}
void loop() { // membaca sensor hall effect val = hallRead(); // print pembacaan hall effect di serial monitor Serial.println(val);
ledcWrite(ledChannel, abs(val)); // terang redupnya LED bergantung pada nilai mutlak hall effect delay(15); delay(1000);}
Jika sudah kita bisa lanjut ke tahap selanjutnya.
int val = 0;
const int ledPin = 16;
const int resolution = 4;
const int freq = 5000;
const int ledChannel = 0;
void setup() {
Serial.begin(9600);
ledcSetup(ledChannel, freq, resolution);
ledcAttachPin(ledPin, ledChannel);
}
void loop() {
// membaca sensor hall effect
val = hallRead();
// print pembacaan hall effect di serial monitor
Serial.println(val);
ledcWrite(ledChannel, abs(val)); // terang redupnya LED bergantung pada nilai mutlak hall effect
delay(15);
delay(1000);
}
Jika sudah kita bisa lanjut ke tahap selanjutnya.
2. Susun Rangkaian pada Breadboard
3. Testing
Nah, setelah code dan rangkaian di atas breadboard sudah siap, saatnya kita compile dan import codenya ke ESP32. Dan kita coba untuk membuka serial monitor untuk memastikan sensor bekerja dengan baik.
Nah nanti hasilnya akan seperti ini :
Gimaha berhasil ga nih ? hehe :
- Cari magnet yang kuat. Di video atas saya menggunakan magnet kulkas yang mungkin kurang kuat jadi perubahannya kurang keliatan.
Dari built-in sensor sebenarnya kita bisa kembangkan dengan banyak hal. Dengan touch sensor kita bisa mencoba mengembangkannya menjadi touch piano (saya juga pengen buat tapi gaada output audio :( ), untuk hall effect bisa kita kembangkan untuk sensor anti maling. Semoga dengan tulisan ini bisa bermanfaat untuk kalian.
Terima Kasih.