Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Selasa, 30 Desember 2025

MicroPython ESP32/ESP8266 - Deteksi Gerakan Menggunakan Sensor Radar RCWL-0516

Artikel ini menjelaskan cara menggunakan sensor kedekatan radar gelombang mikro RCWL-0516 bersama ESP32 dan ESP8266 menggunakan MicroPython untuk mendeteksi gerakan. Anda akan mempelajari cara menghubungkan sensor ke board serta cara memprogram ESP32/ESP8266 menggunakan firmware MicroPython. Sensor RCWL-0516 merupakan alternatif yang andal dibandingkan sensor gerak PIR (Passive Infrared), terutama untuk aplikasi yang membutuhkan deteksi gerakan berbasis gelombang mikro.

Mengenal Sensor Proximity Radar Gelombang Mikro RCWL-0516

Sensor RCWL-0516 adalah sensor berukuran kecil dan berbiaya rendah yang menggunakan radar gelombang mikro untuk mendeteksi keberadaan objek yang bergerak. Sensor ini bekerja dengan memancarkan gelombang mikro, kemudian menganalisis pergeseran Doppler dari gelombang yang dipantulkan ketika objek bergerak melewatinya.

 

Umumnya, sensor ini dijual dalam paket isi lima unit dan tidak dilengkapi dengan pin header. Oleh karena itu, Anda perlu menyediakan pin header secara terpisah dan melakukan proses penyolderan sebelum sensor dapat digunakan pada breadboard atau rangkaian prototipe.

Cara Kerja Sensor RCWL-0516

Sensor RCWL-0516 dilengkapi dengan osilator internal yang menghasilkan sinyal gelombang mikro pada frekuensi sekitar 3,18 GHz. Sinyal ini dipancarkan ke segala arah (pola radiasi 360 derajat) untuk memantau area di sekitarnya.

 

Ketika sebuah objek bergerak dalam jangkauan sensor, gelombang mikro yang dipantulkan akan diterima kembali oleh receiver internal. Sensor kemudian membandingkan frekuensi sinyal pantulan dengan sinyal asli. Perubahan frekuensi akibat efek Doppler menandakan adanya pergerakan objek, sehingga sensor mendeteksi gerakan.

 

Sensor RCWL-0516 memiliki satu pin output digital yang akan berstatus HIGH saat gerakan terdeteksi, dan kembali ke status LOW ketika tidak ada pergerakan.

Fitur Sensor RCWL-0516

Sensor RCWL-0516 memiliki jangkauan deteksi hingga ±7 meter dan mampu mendeteksi objek dengan kecepatan gerak hingga 2 meter per detik. Selain itu, sensor ini dilengkapi dengan pengaturan waktu tunda (delay) internal yang dapat disesuaikan untuk mencegah pemicu berulang akibat deteksi gerakan dari objek yang sama.


Catatan: Meskipun spesifikasi menyebutkan jangkauan deteksi hingga 7 meter, pada pengujian dengan konfigurasi rangkaian yang digunakan, hasil tersebut tidak selalu tercapai secara optimal. Namun demikian, berdasarkan pengalaman dan umpan balik dari banyak pengguna, sensor ini tetap memberikan kinerja yang baik dan responsif untuk berbagai aplikasi deteksi gerakan.

Berikut ringkasan fitur utama sensor RCWL-0516:

- Menggunakan radar gelombang mikro untuk mendeteksi objek yang bergerak

- Jangkauan deteksi hingga ±7 meter

- Mampu mendeteksi objek dengan kecepatan hingga 2 meter per detik

- Dilengkapi pengaturan waktu tunda (delay) internal

- Konsumsi daya rendah

- Harga ekonomis

Spesifikasi Sensor RCWL-0516

- Tegangan suplai: 4–28 VDC

- Frekuensi kerja: 3,18 GHz

- Jarak deteksi: 5–7 meter

- Level output: HIGH ±3,4 V / LOW < 0,7 V

- Arus drive output: hingga 100 mA

- Waktu output: sekitar 2 detik dan akan terpicu ulang jika masih terdeteksi adanya gerakan

Sensor Light Dependent Resistor (LDR) Opsional

Sensor RCWL-0516 menyediakan opsi pemasangan sensor Light Dependent Resistor (LDR) melalui proses penyolderan, jika Anda ingin sistem hanya aktif pada kondisi cahaya rendah atau gelap. Dengan konfigurasi ini, deteksi gerakan dapat dibatasi agar tidak aktif saat kondisi terang.

 

Sinyal keluaran dari sensor LDR dapat diakses melalui pin LDR pada modul. Sebagai alternatif, sensor LDR juga dapat dihubungkan ke pin CDS, tergantung pada kebutuhan dan skema rangkaian yang digunakan.


Ketika tegangan keluaran sensor LDR lebih besar dari 0,7 V, pin OUT akan menghasilkan sinyal HIGH saat terdeteksi adanya gerakan. Sebaliknya, jika gerakan terdeteksi tetapi tegangan keluaran LDR berada di bawah 0,7 V, maka pin OUT tetap berstatus LOW. Dengan demikian, ketika sensor LDR dipasang, modul RCWL-0516 hanya akan mendeteksi gerakan pada kondisi gelap atau minim cahaya.


Sensitivitas sensor LDR dapat diatur dengan menambahkan resistor pada pad R-CDS (lihat bagian berikutnya), atau dengan memasang resistor pull-up eksternal yang diparalelkan dengan pin CDS.

 

Pada pengujian yang dilakukan, ditambahkan resistor pull-up 22 kΩ pada pin LDR agar sensor dapat mendeteksi gerakan saat kondisi cahaya rendah. Tanpa resistor tersebut, sensor tidak memberikan sinyal output, bahkan pada kondisi yang sangat gelap. Oleh karena itu, Anda mungkin perlu mencoba beberapa nilai resistansi yang berbeda untuk menemukan konfigurasi yang paling sesuai dengan kondisi lingkungan dan kebutuhan aplikasi.

Komponen Penyesuaian (Adjustment Components)

Di bagian belakang modul sensor, terdapat tiga pad yang disediakan untuk pemasangan komponen SMD tambahan berukuran 0805, yang dapat digunakan untuk melakukan penyesuaian karakteristik kerja sensor.


Informasi berikut dirangkum berdasarkan dokumentasi teknis dari repositori GitHub terkait:

- C-TM: Digunakan untuk mengatur waktu pemicu ulang (repeat trigger time). Secara default (tanpa komponen), waktu tunda adalah sekitar 2 detik. Dengan menambahkan kapasitor SMD, durasi pemicu ulang dapat diperpanjang. pin 3 IC menghasilkan sinyal frekuensi (f), dan waktu pemicu dalam detik dapat dihitung dengan rumus (1 / f) × 32678.

- R-GN: Berfungsi untuk mengatur jarak deteksi sensor. Jarak deteksi standar adalah sekitar 7 meter. Dengan menambahkan resistor 1 MΩ, jarak deteksi dapat dikurangi menjadi sekitar 5 meter.

- R-CDS: Merupakan resistor paralel dengan pull-up 1 MΩ yang digunakan untuk mengatur ambang sensitivitas sensor LDR. Tanpa resistor R-CDS, nilai resistansi minimum LDR (kondisi cahaya terang) agar output tetap aktif adalah sekitar 269 kΩ (≈0,7 V). Penambahan resistor pada pad ini akan menurunkan nilai resistansi LDR pada ambang aktif/nonaktif. Jika resistansi LDR pada tingkat cahaya yang diinginkan lebih kecil dari 269 kΩ, maka resistor eksternal dapat ditambahkan secara seri dengan LDR.

Konfigurasi Pin (Pinout) Sensor Radar Gelombang Mikro RCWL-0516

Sensor radar gelombang mikro RCWL-0516 memiliki lima pin utama dengan fungsi sebagai berikut:

- 3V3: Tegangan keluaran dari regulator internal, bukan pin catu daya utama. Pin ini dapat digunakan sebagai referensi atau suplai tegangan rendah dengan arus terbatas.

- VIN: Berfungsi sebagai pin masukan catu daya. Sensor dapat dioperasikan dengan rentang tegangan 4–28 VDC.

- GND: Merupakan pin ground atau referensi tegangan nol.

- OUT: Adalah pin keluaran digital. Pin ini akan berstatus HIGH saat sensor mendeteksi gerakan, dan tetap LOW ketika tidak ada pergerakan yang terdeteksi.

- CDS: Digunakan untuk menghubungkan sensor Light Dependent Resistor (LDR). LDR berfungsi untuk menonaktifkan deteksi gerakan pada kondisi cahaya terang.

Tabel berikut menampilkan konfigurasi pin (pinout) dari sensor radar gelombang mikro RCWL-0516.


Perbandingan Sensor Radar Gelombang Mikro dengan Sensor Gerak PIR

Sensor proximity radar gelombang mikro sering digunakan sebagai alternatif sensor gerak PIR, tergantung pada kebutuhan dan karakteristik aplikasi yang dikembangkan. Tabel berikut menyajikan perbandingan antara sensor radar gelombang mikro dan sensor PIR untuk membantu menentukan pilihan sensor yang paling sesuai.

 

Menghubungkan Sensor Radar Gelombang Mikro RCWL-0516 ke ESP32 dan ESP8266

Gunakan tabel koneksi atau diagram skematik berikut untuk menghubungkan sensor radar gelombang mikro RCWL-0516 dengan ESP32 atau ESP8266. Pada contoh rangkaian ini, sensor LDR tidak digunakan, sehingga hanya koneksi dasar yang diperlukan.


Skema Rangkaian ESP32 dan Sensor RCWL-0516


Skema Rangkaian ESP8266 NodeMCU dan Sensor RCWL-0516


Skrip MicroPython – Sensor RCWL-0516

Menggunakan IDE MicroPython pilihan Anda, salin kode berikut ke dalam file `main.py`. Skrip ini berfungsi untuk membaca sinyal keluaran sensor RCWL-0516, menyalakan LED, serta menampilkan pesan pada MicroPython Shell ketika gerakan terdeteksi. Sensor akan menghasilkan sinyal HIGH saat mendeteksi pergerakan dan sinyal LOW ketika tidak ada aktivitas (idle).

 

from machine import Pin

import time


# Pin numbers for LED and sensor

led_pin = 2

sensor_pin = 12


# Set the LED pin as an output and the sensor pin as an input

led = Pin(led_pin, Pin.OUT)

sensor = Pin(sensor_pin, Pin.IN)


# Initialize state variables

state = 0

val = 0


while True:

    val = sensor.value()  # read sensor value


    if val == 1:  # check if the sensor is HIGH

        led.on()  # turn LED ON


        if state == 0:

            print("Motion detected!")

            state = 1  # update variable state to HIGH

    else:

        led.off()  # turn LED OFF


        if state == 1:

            print("Motion stopped!")

            state = 0  # update variable state to LOW


    # Add a small delay to avoid constant checking of the sensor

    time.sleep(0.1)

 

Sebagai alternatif, pendeteksian status sensor juga dapat dilakukan menggunakan mekanisme interrupt. Anda dapat memanfaatkan struktur kode yang sama seperti pada tutorial berikut (pastikan penyesuaian nomor GPIO dilakukan sesuai dengan konfigurasi rangkaian): MicroPython: Interrupt pada ESP32 dan ESP8266.

Cara Kerja Kode Program

Langkah awal adalah mengimpor modul yang diperlukan. Modul `machine` digunakan untuk berinteraksi dengan perangkat keras, dan dari modul ini digunakan kelas `pin` untuk mengendalikan GPIO. Selain itu, modul `time` digunakan untuk memberikan jeda (delay) serta mengatur waktu eksekusi program.

 

# Import required libraries

from machine import Pin

import time

 

Selanjutnya, tentukan pin GPIO yang digunakan untuk LED indikator dan pin output sensor. Untuk penyederhanaan, contoh ini menggunakan LED bawaan pada board ESP32 dan ESP8266 yang umumnya terhubung ke GPIO2 (konfigurasi ini dapat berbeda tergantung model board yang digunakan). Sebagai alternatif, Anda dapat menghubungkan LED eksternal ke GPIO lain, dengan menyesuaikan penomoran pin pada kode program.

 

# Pin numbers for LED and sensor

led_pin = 2

sensor_pin = 12

 

Selanjutnya, buat dua objek `pin`, masing-masing untuk LED indikator (`led`) dan sensor radar gelombang mikro (`sensor`). LED dikonfigurasikan sebagai output menggunakan `Pin.OUT`, sedangkan sensor dikonfigurasikan sebagai input menggunakan `Pin.IN`.

 

# Set the LED pin as an output and the sensor pin as an input

led = Pin(led_pin, Pin.OUT)

sensor = Pin(sensor_pin, Pin.IN)

 

Selanjutnya, buat beberapa variabel untuk memantau status sensor. Variabel `val` digunakan untuk menyimpan nilai keluaran sensor secara real-time, sedangkan variabel `state` digunakan untuk melacak apakah gerakan telah terdeteksi atau tidak selama proses berjalan.

 

# Initialize state variables

state = 0

val = 0

 

Program kemudian masuk ke dalam loop tak hingga (`while True`), sehingga berjalan secara terus-menerus untuk memantau dan mendeteksi adanya gerakan.

 

while True:

 

Langkah berikutnya adalah membaca nilai keluaran sensor gerak menggunakan metode `sensor.value()`. Metode ini akan mengembalikan nilai 0 jika tidak ada gerakan yang terdeteksi dan 1 jika gerakan terdeteksi. Nilai hasil pembacaan tersebut kemudian disimpan ke dalam variabel `val`.

 

val = sensor.value()  # read sensor value

 

Jika nilai keluaran sensor bernilai 1 (menandakan gerakan terdeteksi), maka LED akan dinyalakan sebagai indikator.

 

if val == 1:  # check if the sensor is HIGH

    led.on()  # turn LED ON

 

Catatan: LED bawaan pada ESP8266 bekerja dengan logika terbalik (inverted logic), sehingga perintah `.off()` digunakan untuk menyalakan LED dan `.on()` untuk mematikannya. Jika Anda menggunakan LED eksternal yang terhubung ke GPIO tersebut, maka LED akan bekerja dengan logika normal.

 

Selanjutnya, program memeriksa status sebelumnya. Jika nilai sebelumnya adalah 0, berarti terjadi perubahan status dan gerakan baru saja terdeteksi. Program kemudian menampilkan pesan pada shell dan mengubah nilai variabel `state` menjadi 1.

 

if state == 0:

    print("Motion detected!")

    state = 1  # update variable state to HIGH

 

Jika nilai keluaran sensor bernilai 0 (menandakan tidak ada gerakan yang terdeteksi), maka LED akan dimatikan.

 

else:

    led.off()  # turn LED OFF

 

Jika status sebelumnya bernilai 1 dan nilai sensor saat ini berubah menjadi 0, hal ini menunjukkan bahwa gerakan telah berhenti, sehingga variabel `state` dapat dikembalikan ke nilai 0.

 

if state == 1:

    print("Motion stopped!")

    state = 0  # update variable state to LOW

 

Program akan terus berjalan dalam loop tanpa batas, secara berkala memantau status gerakan, serta memperbarui kondisi LED dan pesan yang ditampilkan pada MicroPython Shell sesuai hasil deteksi.

Demonstrasi

Simpan kode program ke board ESP32 atau ESP8266 menggunakan Thonny IDE atau IDE MicroPython lain sesuai preferensi Anda. Pada contoh ini, digunakan Thonny IDE.

1. Salin kode program yang telah disediakan ke dalam file baru pada Thonny IDE.

2. Unggah kode ke board. Jika menggunakan Thonny IDE, pilih menu File > Save as…, kemudian pilih perangkat MicroPython sebagai tujuan penyimpanan.



3. Simpan file program dengan nama `main.py` agar dieksekusi secara otomatis setiap kali ESP32/ESP8266 dinyalakan atau di-reset. Pada sistem MicroPython juga terdapat file `boot.py`, yang dibuat secara otomatis saat proses instalasi (burning) firmware MicroPython dan dijalankan sebelum `main.py`.



4. Terakhir, klik tombol OK untuk melanjutkan proses penyimpanan.

5. Selanjutnya, tekan tombol RST/EN pada board untuk melakukan restart, sehingga program mulai dijalankan, atau klik tombol Run (ikon hijau) pada IDE untuk mengeksekusi kode secara langsung.

 

Gerakkan tangan Anda di depan sensor gerak. Saat gerakan terdeteksi, akan muncul pesan “Motion detected!” pada MicroPython Shell, yang kemudian diikuti pesan “Motion stopped!” setelah sekitar dua detik. Selain itu, LED bawaan pada board akan menyala selama gerakan terdeteksi.



Jika sensor LDR terpasang, Anda perlu menurunkan tingkat pencahayaan lingkungan agar sensor dapat memberikan respons deteksi gerakan.

 

 

 

 

 

 

 

 

 

Siap Untuk Membuat Proyek Impianmu Menjadi Kenyataan?

Klik di sini untuk chat langsung via WhatsApp dan dapatkan dukungan langsung dari tim ahli kami! 

 

0 on: "MicroPython ESP32/ESP8266 - Deteksi Gerakan Menggunakan Sensor Radar RCWL-0516"