AUTOMATIC LAMP
![WhatsApp Image 2022-06-19 at 11.57.21 PM (1).jpeg](/proxy/?url=https://content.instructables.com/F1P/9CMP/L4LBQ8EM/F1P9CMPL4LBQ8EM.jpg&filename=WhatsApp Image 2022-06-19 at 11.57.21 PM (1).jpeg)
Tujuan pada projek ini adalah merancang sebuah alat/produk berupa sebuah sensor passive infrared dan dilengkapi beberapa fitur yang sudah diprogram. Projek ini dibuat bertujuan untuk mempermudah pengguna dalam berumah tangga, seperti tidak perlunya menuju ke tempat saklar untuk menghidupkan/mematikan lampu nya. Melainkan lampu ini akan mati dengan sendirinya jika tidak terdeteksi adanya gerakan selama 10 detik dan akan menyala secara otomatis jika terdeteksi adanya sebuah gerakan infra merah.
Supplies
Cara kerja sistem :
Relay akan menjadi LOW/0 jika PIR sensor mendeteksi adanya sebuah gerakan infrared, maka lampu akan menyala secara otomatis. Jika tidak ada gerakan yang terdeteksi selama 10 detik maka relay akan menjadi HIGH/1 karena PIR sensor sudah tidak mendeteksi adanya gerakan selama 10 detik lamanya.
- PIR Sensor (HC SR501)
Sensor PIR atau yang biasa disebut juga dengan Passive Infra Red ini merupakan sebuah sensor yang digunakan untuk mendeteksi adanya pancaran sinar infra merah dari suatu objek. PIR sensor ini bekerja secara pasif yang berarti sensor ini tidak memancarkan sinar infra merah melainkan hanya dapat menerima radiasi sinar infra merah dari luar. Sensor PIR dapat mendeteksi radiasi dari berbagai objek, seperti manusia. Sensor PIR sendiri terdiri dari beberapa bagian, yaitu, Lensa Fresnel, Penyaring Infra Merah, Sensor Pyroelektrik, Penguat Amplifier, Komparator.
- Sensor Cahaya (BH1750)
Sensor cahaya ini atau yang biasa diketahui juga dengan BH1750 adalah sebuah IC sensor yang digunakan untuk mengukur perubahan intensitas cahaya dalam ukuran atau satuan lux. Sensor ini menggunakan protocol I2C untuk komunikasi dengan mikrokontroler atau system minimum. Jangkauan deteksi sensor ini berkisaran 1-65535 lux. Dengan besaran 1 lux berarti 1 lumens intensitas cahaya pada luas 1 meter persegi.
- Relay
Relay merupakan sebuah komponen elektronika berupa saklar atau switch elektrik yang dioperasikan secara listrik dan terdiri dari 2 bagian utama yaitu Elektromagnet(coil) dan mekanikal(kontak saklar/switch). Komponen elektronika ini menggunakan prinsip elektromagnetik untuk menggerakan saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi lagi.
Membuat Rangkaian Utama
![WhatsApp Image 2022-06-19 at 10.20.01 PM.jpeg](/proxy/?url=https://content.instructables.com/F80/2YRA/L4LBQ8BB/F802YRAL4LBQ8BB.jpg&filename=WhatsApp Image 2022-06-19 at 10.20.01 PM.jpeg)
![WhatsApp Image 2022-06-19 at 10.20.04 PM.jpeg](/proxy/?url=https://content.instructables.com/FHR/B5MX/L4LBQ8BC/FHRB5MXL4LBQ8BC.jpg&filename=WhatsApp Image 2022-06-19 at 10.20.04 PM.jpeg)
Rangkaian ini memiliki fungsi utama dalam keseluruhan rangkaian. Rangkaian ini terdiri dari :
- ESP32 Devkit V1
- Relay 5V
- PIR Sensor (HC SR501)
- BH1750
- Breadboard
- Jumper
- Lampu
- Fitting lampu, dan
- Kabel listrik
Cara kerja sistem :
Relay akan menyalakan led merah pada relay ketika mendeteksi tidak adanya gerakan dan lampu akan otomatis mati. Sebaliknya relay sendiri akan mematikan led merah nya secara otomatis jika adanya gerakan yang terdeteksi dan relay akan menghidupkan lampu secara otomatis. Projek ini juga sudah dilengkapi dengan Sensor BH1750 yang mana ini berfungsi untuk mengukur tingkat cahaya di suatu ruangannya.
Rangkaian Dan Skematik
![Screenshot (397).png](/proxy/?url=https://content.instructables.com/F1H/KFW6/L4LBQ8AS/F1HKFW6L4LBQ8AS.png&filename=Screenshot (397).png)
Rangkaian ini bekerja dengan meletakkan Pin PIR Sensor sebagai berikut :
- VCC - VCC
- GND-GND
- Data(DOut) - GPIO 14(D14)
Pinout BH1750 :
- VCC - VCC
- GND - GND
- SCL - GPIO4(D4)
- SDA - GPIO15(D15)
Pinout Relay 5V :
- VCC - VCC
- GND - GND
- IN1 - GPIO26(D26)
Setup Hardware Dengan Platform IO
![download-_5_.png](/proxy/?url=https://content.instructables.com/FEY/J621/L4LBQ8DS/FEYJ621L4LBQ8DS.png&filename=download-_5_.png)
Pertama pergi ke logo platformio pada logo semut lalu buat new project.
Lalu buat new project dengan nama bebas (disini kami menamainya sebagai esp32automaticlamp) dengan board DOIT ESP32 DEVKIT V1 dan framework Arduino Framework.
Kedua, setelah project telah jadi, buatlah file baru pada folder include dengan nama filenya sebagai “device.h”
Pada device.h kita harus mendeklarasikan atau menyatakan pin-pin apa saja yang akan disambungkan dari relay, bh1750, dan pir sensornya.
inputPin pada variable di atas merupakan pir sensor.
Ketiga, masukan library yang dibutuhkan dengan membuat variabel lib_deps. Untuk kasus ini kita menggunakan library BH1750 by claws dan Firebase Arduino client for ESP8266 and ESP32 versi 4.0.0 by mobizt. Lalu, set monitor_speed dengan angka 115200.
Setalah itu, masuk ke main.cpp dan masukkan include yang akan dibutuhkan.
Keempat, kita deklarasikan variabel-variabel yang dibutuhkan untuk meng set-up pir sensor (menggunakan interrupt dan timers) dan light sensor (bh1750). Pir sensor akan digunakan sebagai pendeteksi gerakan manusia pada sebuah ruangan dan light sensor digunakan untuk mengambil informasi atau data dari densitas cahaya yang ada pada ruangan tersebut.
Kelima, karena menggunakan interrupt pada pir sensor, buatlah fungsi tambahan dengan nama detectsMovement, tujuannya untuk menjalankan fungsi tersebut bila ada trigger.
Keenam, kita akan membuat fungsi setup terlebih dahulu sebagai blue print yang akan berjalan sekali ketika program pertama kali berjalan.
Ketujuh, masuk ke dalam void loop, di sini adalah fungsi utama yang akan menjalankan atau mengeksekusi program secara looping atau berulang.
Deklarasikan program bh1750 sebagai pembaca densitas cahaya dan pir yang akan diprogram untuk menyalakan atau mematikan lampu tergantung pada gerakan manusia atau hewan yang lewat pada range tertentu. Atur trigger interrupt sebagai rising edge, fungsi interrupt sebagai fungsi detectsMovement, dan GPIO yang dipakai sebagai trigger yaitu inputPin atau pir sensor.
Fungsi ini akan mencetak nilai densitas cahaya dengan parameter lux pada ruangan, lalu mencetak inputPin atau nilai yang akan dikirimkan dari pir ke esp 32. Bila pir tidak mendeteksi apapun, maka pir akan mengirim nilai 0 atau low ke variabel input yang akan dibaca oleh variable val. Nilai pada Val akan dicetak ke serial monitor. Variabel now akan menjalankan fungsi millis( ) dimana akan mereturn nilai dari program lain setiap miliseconds yang sudah terlewat. Jika terdeteksi gerakan, interrupt akan menjalankan fungsi detectMovements( ), write relay sebagai high (menyalakan lampu), pirState akan HIGH (menandakan lampu menyala), dan start timer masuk kondisi true (menandakan timer baru berjalan). Bila tidak ada gerakan setelahnya, fungsi berjalan kembali ke void loop dan masuk ke kondisi if dan mematikan lampu dengan kurun timer yaitu 10*1000 ms atau 10 detik. Program akan terus berulang bila pir mendeteksi gerakan.
Kedelapan yaitu mengirim data dari ESP32 ke firestore, gunanya agak kita bisa memonitoring dari jauh melewati firestore bila ada lampu menyala atau tidak dan bisa memerhatikan densitas cahaya yang ada pada ruang tersebut. Kita menggunakan contoh code yang sudah disediakan mobizt di github untuk terus-menerus mengupdate data.
Buka firebase lalu buka menu firestore dan ubah rulesnya menjadi seperti berikut.
Untuk mengakses firestore, kita membutuhkn SSID, wifi password, API key, firebase project id, email, dan password email yang terdaftar di firestore.
Tujuannya agar ESP 32 dapat read dan write pada firestore yang akan kita gunakan.
Untuk WIFI_SSID dan WIFI_PASSWORD menggunakan jaringan internet sendiri.
API_KEY bisa didapat bila sudah memasukkan email pada menu authentication. Contohnya sebagai berikut.
Bila sudah, klik menu 3 bar pojok kiri atas, lalu ke setting - project settings - dan copy-paste project id beserta dengan API key yang tertera.
Lalu,untuk use email dan user password menggunakan email dan password yang sudah dimasukkan ke authentication.
Lalu, untuk bagian mengirim data, kita hanya membutuhkan data dari lux untuk membaca densitas ruangan dan pirState untuk membaca kondisi lampu saat ini, bila nilainya 0 maka lampu mati, sebaliknya bila nilai 1 maka lampu menyala. untuk itu, kita perlu membuat documentpathnya terlebih dahulu dengan membuat 2 fields yaitu Lamp untuk pirState dan Light untuk lux.
content.set adalah data yang akan diwrite oleh hardware atau ESP 32 ke firestore.
Setelah itu, upload code lalu lihat pada menu Cloud Firestore - Data dan hasilnya sebagai berikut.
field Lamp dan Light akan terus berubah bila terjadi perubahan pada value pirState dan lux. Dengan begitu kita bisa mengetahui dari jarak jauh apakah lampu dari ruangan tertentu menyala atau tidak.
![images-_7_.png](/proxy/?url=https://content.instructables.com/FEY/WYRQ/L4LBQ8CV/FEYWYRQL4LBQ8CV.png&filename=images-_7_.png)
![88d07f9779c9b80120e63da7de5297fc.png](/proxy/?url=https://content.instructables.com/F2Z/DJJY/L4LBQ8CW/F2ZDJJYL4LBQ8CW.png&filename=88d07f9779c9b80120e63da7de5297fc.png)
![download-_4_.png](/proxy/?url=https://content.instructables.com/FM2/MJPK/L4LBQ8CX/FM2MJPKL4LBQ8CX.png&filename=download-_4_.png)
![download-_2_.png](/proxy/?url=https://content.instructables.com/F40/DU31/L4LBQ8CY/F40DU31L4LBQ8CY.png&filename=download-_2_.png)
![download-_1_.png](/proxy/?url=https://content.instructables.com/FJT/3YOI/L4LBQ8CZ/FJT3YOIL4LBQ8CZ.png&filename=download-_1_.png)
Relay 8 Channel 5V
PIR Sensor ( HC-SR501 )
ESP32 Devkit V1
Breadboard
BH1750
\
Fitting Lampu
Lampu
Tambahan
![WhatsApp Image 2022-06-19 at 11.57.21 PM (1).jpeg](/proxy/?url=https://content.instructables.com/FCR/ZX5I/L4LBQ8A8/FCRZX5IL4LBQ8A8.jpg&filename=WhatsApp Image 2022-06-19 at 11.57.21 PM (1).jpeg)
![WhatsApp Image 2022-06-20 at 2.56.45 AM.jpeg](/proxy/?url=https://content.instructables.com/F0P/P9F5/L4LBQ8A9/F0PP9F5L4LBQ8A9.jpg&filename=WhatsApp Image 2022-06-20 at 2.56.45 AM.jpeg)
![WhatsApp Image 2022-06-20 at 2.56.46 AM.jpeg](/proxy/?url=https://content.instructables.com/FK3/Y79N/L4LBQ8AA/FK3Y79NL4LBQ8AA.jpg&filename=WhatsApp Image 2022-06-20 at 2.56.46 AM.jpeg)
Berikut adalah foto alat yang sudah di design sedemikian rupa :
Berikut adalah video dokumentasi :
https://www.youtube.com/watch?v=vkdahC5k5Hk
Berikut adalah poster dari Projek kami