Halo semua! kembali lagi sama aku, Zarfa. Kali ini aku mau membahas tentang projek dengan bantuan berbagai sensor yang ada di ESP32. Ternyata di ESP32 kalian, sudah otomatis terdapat internal sensor yaitu touch sensor dan Hall Effect Sensor atau bahasa lainnya sensor magnetik yah.
Bahannn??
Komponen yang dibutuhkan hampir sama seperti projek sebelumnya, untuk spesifikasi dan foto barang masing-masingnya boleh langsung cuss ke tulisan aku sebelum ini! :D
Berikut bahan-bahan yang kalian butuhkan!
1. Laptop
2. Breadboard 830 MB102 Points Solderless
3. ESP32 Dual-Mode Development Board
4. Kabel USB tipe micro USB
5. Resistor 330 ohm
6. Lampu LED 5mm
7. Kabel Jumper Male-to-Male
8. Magnet
Inti Projek!
TOUCH SENSOR
Pertama-tama kalian harus memahami foto dibawah. Untuk menentukan GPIO mana yang merupakan touch sensor, karena tidak semua GPIO bisa dijadikan touch sensor. Perhatikan kotak berwarna pink yang berisi tulisan TOUCH[number]. Hanya GPIO tersebut lah yang dapat digunakan sebagai touch sensor. Jangan salah lagi ya! nanti rangkaian kalian tidak akan berhasil
Step-stepnya :
- Set up program arduino dengan step-step yang sudah aku jelaskan di projek pertamaku! kalian boleh lihat saja di profilku
- Ikuti skema berikut:
perhatikan, kaki LED yang sebaris dengan resistor adalah kaki yang panjang
3. Masukkan code di aplikasi Arduino kalian seperti ini contohnya untuk projek ini:
// set GPIO
const int touchPin = 4;
const int ledPin = 16;
const int touchPin1 = 15;
const int ledPin1 = 18;
Kode diatas menujukkan GPIO yang aku pilih dalam projek ini
// tetapkan konstanta threshold
const int threshold = 20;
// variabel untuk storing value touch pin
int touchValue;
int touchValue1;
Konstanta threshold yang akan menentukan apakah kita sudah menyentuh kabel atau belum.
void setup(){
Serial.begin(115200);
delay(1000); // waktu untuk penulisan di serial monitor
// inisialisasi LED pin sebagai output
pinMode (ledPin, OUTPUT);
pinMode (ledPin1, OUTPUT);
}
Kalian harus melakukan inisialisasi terlebih dahulu untuk komponen kalian
void loop(){
// membaca value push button
touchValue = touchRead(touchPin);
touchValue1 = touchRead(touchPin1);
Serial.print(touchValue);
Serial.print(touchValue1); // check apakah touch value pertama kurang dari konstanta threshold
// jika iya, set ledPin jadi metode blink
if(touchValue < threshold){
// nyalakan LED
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);// matikan LED
delay(200);
Serial.println(“ — LED on 1”); //print di serial monitor
} // check apakah touch value kedua kurang dari konstanta threshold
// jika iya, set ledPin jadi HIGH
else if(touchValue1 < threshold){
// nyalakan LED
digitalWrite(ledPin1, HIGH);
Serial.println(“ — LED on”);//print di serial monitor
} else{
// matikan LED
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin, LOW);
Serial.println(“ — LED off”);//print di serial monitor
}
delay(500);
}
Berikut merupakan code utama dari program. Pada LED yang pertama akan terjadi blink jika aku menyentuh ujung kabel GPIO touch sensor pertama, sementara LED kedua akan tetap mati. Sebaliknya jika aku menyentuh ujung kabel GPIO touch sensor kedua, maka LED kedua akan menyala dan LED pertama akan mati. Jika aku tidak menyentuh kabel apapun, kedua LED akan mati
4. Upload code ke ESP32
Jika tidak berhasil, lakukan tahap ke 5
5. Cek input touch sensor dengan klik Tools -> Serial Monitor
Berikut tampilan yang benar pada monitor anda. Akan ada perbedaan tulisan pada serial monitor setiap anda menyentuh kabel GPIO. Jika tidak bisa juga, di bagian kanan bawah foto tersebut, jika angka anda belum menunjukkan angka 115200 (samakan dengan kode program), segera ganti ke angka tersebut. Lalu seharunya projek anda sudah selesai!
HALL EFFECT SENSOR
Untuk projek ini, kalian hanya perlu ESP32 dan magnet lalu melihat hasilnya di serial monitor, tidak perlu membuat rankaian seperti biasanya
Berikut kode untuk sensor ini, kita hanya perlu inisialisasi dan print hasil pada serial monitor untuk memeriksa keberhasilan projek kita kali ini
int val = 0; //inisialisasi
void setup() {
Serial.begin(9600);
}
void loop() {
val = hallRead(); // memanggil sensor hall effect
Serial.println(val); // mencatat hasil pada serial monitor
delay(1000);
}
Tadaa! sudah selesai projek keduanya :D
Ini Nih Buktinya!
Yuk kita analisis!
Jika kita menyentuh kabel di touch sensor, konstanta di serial monitor akan berubah yang menjadikan LED dapat menyala karena program yang sudah kita buat. Sedangkan untuk hall effect sensor akan membaca medan magnet yang ada pada magnet, lalu konstanta di serial monitor akan menampilkan perubahannya.
Sekian aja nih projek kali ini, sampai jumpa di lain waktu!