Dalam tutorial ini, kita akan mempelajari cara menggunakan Light Dependent Resistor (LDR) dengan mikrokontroler ESP32 untuk mengukur intensitas cahaya. Dengan membaca resistansi LDR, kita dapat memicu tindakan, seperti menyalakan buzzer ketika tingkat cahaya melebihi ambang batas tertentu. Proyek ini akan menunjukkan interaksi antara tingkat cahaya dan kemampuan pembacaan analog ESP32, memungkinkan kita untuk membuat aplikasi responsif berdasarkan cahaya sekitar. (dalam video pada 5:30)
Penjelasan Perangkat Keras
Komponen utama yang akan kita gunakan dalam proyek ini meliputi mikrokontroler ESP32, sebuah LDR, dan resistor 10 kΩ. LDR mengubah resistansinya berdasarkan intensitas cahaya yang mengenai permukaannya: semakin banyak cahaya menghasilkan resistansi yang lebih rendah, sedangkan semakin sedikit cahaya menghasilkan resistansi yang lebih tinggi. Sifat ini memungkinkan kita untuk mengukur tingkat cahaya yang bervariasi dengan menghubungkan LDR dalam konfigurasi pembagi tegangan dengan resistor.
Mikrokontroler ESP32 dilengkapi dengan Wi-Fi dan Bluetooth bawaan, menjadikannya ideal untuk proyek IoT. ESP32 memiliki beberapa pin analog yang dapat membaca tingkat tegangan yang bervariasi, yang akan kita gunakan untuk memantau tegangan pada LDR. Tegangan ini akan diubah menjadi nilai analog yang dapat diproses oleh ESP32 dan digunakan untuk memicu tindakan seperti mengaktifkan buzzer.
Detail Datasheet
Produsen
Espressif Systems
Nomor bagian
ESP32
Tegangan logika/IO
3,3 V
Tegangan suplai
3,0 - 3,6 V
Arus keluaran (per GPIO)
Maks 40 mA
Panduan frekuensi PWM
1 kHz - 40 kHz
Ambang batas logika masukan
Tinggi: min 2,0 V, Rendah: maks 0,8 V
Penurunan tegangan / RDS(on) / saturasi
Maks 0,3 V
Batas termal
-40 °C hingga 125 °C
Kemasan
QFN48
Catatan / varian
Mendukung berbagai protokol Wi-Fi dan Bluetooth
Gunakan resistor 10 kΩ secara seri dengan LDR untuk pembagian tegangan.
Pastikan ESP32 diberi daya dengan 3,3 V untuk menghindari kerusakan.
Hubungkan LDR dan resistor dengan benar untuk mengukur intensitas cahaya.
Gunakan kapasitor untuk decoupling jika diperlukan untuk menstabilkan catu daya.
Periksa nilai pembacaan analog untuk memastikan nilainya berada dalam rentang yang diharapkan.
Instruksi Pengkabelan
ESP32-22_light_sensor-wiring
Untuk menghubungkan LDR dan resistor ke ESP32, mulailah dengan menghubungkan satu terminal LDR ke pin daya 3,3 V pada ESP32. Terminal LDR lainnya harus dihubungkan ke salah satu terminal resistor 10 kΩ. Hubungkan terminal resistor lainnya ke ground.
Selanjutnya, hubungkan kabel jumper dari titik persimpangan antara LDR dan resistor ke pin 35 pada ESP32. Pengaturan ini menciptakan pembagi tegangan, memungkinkan ESP32 untuk membaca tegangan yang bervariasi berdasarkan intensitas cahaya yang mengenai LDR. Pastikan semua koneksi aman dan LDR diposisikan di tempat yang dapat merasakan perubahan cahaya secara akurat.
Contoh Kode & Penjelasan
Dalam kode, kita mulai dengan menginisialisasi komunikasi serial untuk memantau pembacaan dari LDR. Pengidentifikasi kunci di sini adalah analogValue, yang menyimpan pembacaan dari pin 35.
void setup() {
Serial.begin(115200);
}
void loop() {
int analogValue = analogRead(35);
Serial.printf("Nilai analog ADC = %d\n",analogValue);
delay(100);
}
Potongan kode ini menginisialisasi monitor serial pada baud rate 115200 dan terus membaca nilai analog dari pin 35. Nilai tersebut dicetak ke monitor serial, memungkinkan kita untuk mengamati bagaimana nilainya berubah dengan tingkat cahaya yang bervariasi.
Ketika intensitas cahaya berubah, resistansi LDR bervariasi, dan dengan demikian tegangan yang dibaca oleh ESP32 juga akan berubah, mencerminkan kondisi cahaya (dalam video pada 12:45).
Demonstrasi / Apa yang Diharapkan
Saat Anda menjalankan program dan mengamati monitor serial, Anda akan melihat nilai analog ADC berfluktuasi berdasarkan kondisi cahaya sekitar. Ketika Anda menutupi LDR, nilainya akan meningkat, menunjukkan resistansi yang lebih tinggi, sementara mengeksposnya ke cahaya terang akan menurunkan nilainya secara signifikan. Perilaku ini dapat digunakan untuk memicu buzzer atau tindakan lain berdasarkan ambang batas yang telah ditentukan.
Jika pembacaan tidak berubah seperti yang diharapkan, periksa masalah pengkabelan, pastikan LDR tidak mengambang, dan konfirmasikan bahwa ESP32 diberi daya dengan benar. Ini akan membantu mencegah kesalahan umum dan memastikan pengoperasian yang lancar (dalam video pada 15:30).
Stempel Waktu Video
00:00 Mulai
1:48 Pengenalan LDR
8:33 Penjelasan pengkabelan
11:07 Penjelasan kode Arduino
13:07 Memilih papan ESP32 dan port COM di Arduino IDE
821-ESP32 Tutorial 22/55- Arduino code for Light dependant resistor
Bahasa: C++
void setup() {
// initialize serial communication at 115200 bits per second:
Serial.begin(115200);
}
void loop() {
// read the analog value
int analogValue = analogRead(35);
// print out the values you read:
Serial.printf("ADC analog value = %d\n",analogValue);
delay(100); // delay in between reads for clear read from serial
}
Pengungkapan: Sebagai Mitra Amazon, kami mendapatkan penghasilan dari pembelian yang memenuhi syarat. Ini berarti kami mungkin menerima komisi kecil jika Anda mengklik tautan dan melakukan pembelian tanpa biaya tambahan untuk Anda.