Search Code

Tutorial ESP32 21/55 - Mendeteksi Manusia dengan Sensor Gerak PIR | Kit Pembelajaran IoT ESP32 SunFounder

Tutorial ESP32 21/55 - Mendeteksi Manusia dengan Sensor Gerak PIR | Kit Pembelajaran IoT ESP32 SunFounder

Dalam tutorial ini, kita akan mempelajari cara menggunakan sensor gerak PIR dengan ESP32 untuk mendeteksi keberadaan manusia. ESP32 adalah mikrokontroler yang kuat yang menawarkan kemampuan Wi-Fi dan Bluetooth, menjadikannya ideal untuk proyek IoT. Dengan mengintegrasikan sensor PIR, kita dapat membangun sistem yang mengaktifkan LED atau buzzer setiap kali gerakan terdeteksi, memberikan cara sederhana namun efektif untuk memantau aktivitas manusia.

SENSOR PIR RE 200B

Sensor PIR (Inframerah Pasif) mendeteksi gerakan dengan merasakan radiasi inframerah yang dipancarkan oleh objek, terutama yang berbadan hangat seperti manusia. Ketika gerakan terdeteksi, sensor mengirimkan sinyal ke ESP32, yang kemudian dapat memicu keluaran, seperti menyalakan LED atau membunyikan buzzer. Tutorial ini akan memandu Anda melalui pengaturan perangkat keras, pengkabelan, dan kode yang diperlukan agar sistem berfungsi dengan benar (di video pada 00:45).

Skema ESP32-21_motion_sensor

Penjelasan Perangkat Keras

Proyek ini melibatkan beberapa komponen kunci. Mikrokontroler ESP32 berfungsi sebagai otak dari operasi, menangani data sensor dan mengendalikan keluaran. Sensor gerak PIR mendeteksi gerakan dengan mengukur perubahan radiasi inframerah. LED atau buzzer memberikan peringatan visual atau audio ketika gerakan terdeteksi.

ESP32 dilengkapi dengan Wi-Fi dan Bluetooth, memungkinkan fungsionalitas yang diperluas seperti konektivitas cloud. Sensor PIR berisi lensa yang memfokuskan cahaya inframerah ke sensor piroelektrik, yang menghasilkan sinyal tegangan ketika mendeteksi perubahan tingkat inframerah, yang menunjukkan gerakan.

Detail Datasheet

Produsen SunFounder
Nomor bagian Modul Sensor PIR
Tegangan Logika/IO 3,3 V
Tegangan suplai 3,3 V
Arus keluaran (per saluran) Maks 20 mA
Arus puncak (per saluran) Maks 50 mA
Panduan frekuensi PWM T/A
Ambang logika masukan 0,3 V (rendah), 2,0 V (tinggi)
Penurunan tegangan / RDS(on) / saturasi T/A
Batas termal 0 hingga 70 °C
Kemasan Modul
Catatan / varian Sensitivitas dan penundaan yang dapat disesuaikan

 

  • Pastikan suplai daya yang tepat (3,3 V) untuk menghindari kerusakan.
  • Gunakan resistor untuk LED untuk membatasi arus.
  • Pertahankan pengkabelan yang benar untuk mencegah korsleting.
  • Sesuaikan kenop sensor PIR untuk sensitivitas dan penundaan sesuai kebutuhan.
  • Uji sensor di lingkungan yang berbeda untuk kinerja optimal.

Instruksi Pengkabelan

ESP32-21_motion_sensor-wiring

Untuk menghubungkan sensor gerak PIR dan LED ke ESP32, mulailah dengan menghubungkan pin VCC sensor PIR ke keluaran 3,3 V pada ESP32. Selanjutnya, hubungkan pin ground sensor PIR ke pin ground pada ESP32. Pin sinyal (sering diberi label S) dari sensor PIR harus dihubungkan ke pin GPIO 14 pada ESP32.

Untuk LED, hubungkan kaki yang lebih panjang (anoda) ke pin GPIO 26 melalui resistor 220 Ohm, dan hubungkan kaki yang lebih pendek (katoda) ke ground. Pastikan semua koneksi aman untuk memastikan fungsionalitas yang tepat. Jika Anda menggunakan buzzer alih-alih LED, hubungkan satu pin buzzer ke pin GPIO 26 dan yang lainnya ke ground, menggantikan pengaturan LED.

Contoh Kode & Penjelasan

Dalam kode, kita mendefinisikan nomor pin untuk sensor PIR dan LED. Kita menggunakan const int pirPin = 14; untuk mengatur pin PIR dan const int ledPin = 26; untuk pin LED. Konstanta ini memastikan bahwa nomor pin tetap tidak berubah selama eksekusi program.

const int pirPin = 14;  // nomor pin pir
const int ledPin = 26;     // pin LED

Potongan ini menginisialisasi pin yang akan kita gunakan. Dalam fungsi setup(), kita mengonfigurasi pin PIR sebagai input dan pin LED sebagai output. Pengaturan ini sangat penting untuk membaca status sensor dan mengendalikan LED.

void setup() {
  Serial.begin(115200);  
  pinMode(pirPin, INPUT);  // menginisialisasi pin pir sebagai input
  pinMode(ledPin, OUTPUT);  // menginisialisasi pin LED sebagai output
}

Dalam fungsi loop(), kita terus membaca status sensor PIR menggunakan digitalRead(pirPin);. Jika sensor mendeteksi gerakan (ditunjukkan oleh status HIGH), kita menyalakan LED dengan menggunakan digitalWrite(ledPin, HIGH);. Jika tidak, kita mematikan LED.

if (pirState == HIGH) {
    digitalWrite(ledPin, HIGH);  // menyalakan LED
} else {
    digitalWrite(ledPin, LOW);    // mematikan LED
}

Logika ini memungkinkan LED merespons gerakan yang dideteksi oleh sensor PIR. Pastikan untuk mengunggah kode lengkap yang disediakan di bawah artikel untuk fungsionalitas penuh.

Demonstrasi / Apa yang Diharapkan

Setelah semuanya diatur dan kode diunggah, LED akan menyala ketika gerakan terdeteksi oleh sensor PIR. Anda dapat menguji sensor dengan bergerak di depannya; LED harus segera menyala. Jika sensor diatur dengan penundaan, LED akan tetap menyala selama waktu yang ditentukan sebelum mati kembali (di video pada 12:15).

Kesalahan umum termasuk pemasangan kabel yang salah, yang dapat mencegah sensor berfungsi. Pastikan sensor PIR diberi daya dengan benar dan pin sinyal terhubung ke pin GPIO yang tepat pada ESP32. Menyesuaikan kenop sensitivitas dan penundaan pada sensor PIR juga dapat membantu mengoptimalkan kinerja berdasarkan lingkungan Anda.

Stempel Waktu Video

  • 00:00 Mulai
  • 1:54 Pengenalan Sensor PIR
  • 6:38 Penjelasan pemasangan kabel
  • 10:21 Penjelasan kode Arduino
  • 12:45 Memilih papan ESP32 dan port COM di Arduino IDE
  • 14:27 Demonstrasi dan kalibrasi sensor PIR

Gambar

ESP32-21_motion_sensor-wiring
ESP32-21_motion_sensor-wiring
PIR SENSOR RE 200B
PIR SENSOR RE 200B
ESP32-21_motion_sensor-schematic
ESP32-21_motion_sensor-schematic
820-ESP32 Tutorial 21/55- Arduino code for motion sensor
Bahasa: C++
// set pin numbers
const int pirPin = 14;  // the number of the pir pin
const int ledPin = 26;     // LED pin

// variable for storing the pir status 
int pirState = 0;

void setup() {
  Serial.begin(115200);  
  // initialize the pir pin as an input
  pinMode(pirPin, INPUT);
  // initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the state of the pir value
  pirState = digitalRead(pirPin);
  Serial.println(pirState);
  delay(100);

  // if the pir is pressed, the pirState is HIGH
  if (pirState == HIGH) {
    // turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // turn LED off
    digitalWrite(ledPin, LOW);
  }
}

Sumber daya & referensi

Belum ada sumber daya.

Berkas📁

Lembar Data (pdf)

File lainnya