Sistem Pencatatan & Peringatan Photocell Raspberry Pi – Membangun Sensor Cahaya Hemat Daya dengan Python
Panduan ini memandu Anda dalam membangun photosensor berbasis Raspberry Pi yang mencatat tingkat cahaya dan memicu peringatan. Sempurna untuk memantau ruang gelap seperti lemari atau lemari peralatan, atau sekadar melacak pencahayaan sekitar.
Kami akan menggunakan LED sebagai indikator output, tetapi rangkaian dapat disesuaikan untuk mengontrol relay, buzzer, atau bahkan layanan notifikasi. Yang Anda butuhkan hanyalah Adafruit RPi Starter Kit – bundel hemat biaya yang mencakup semua yang diperlukan – atau Anda dapat merakit bagian-bagian Anda sendiri dari bill of materials di bawah ini.
- 3 × LED difusi 10 mm (merah, biru, hijau)
- 1 × kapasitor 1 µF
- 1 × photocell (fotoresistansi)
- 3 × resistor 560 Ω
- 1 × Pi Cobbler breakout
- 10 × kabel jumper breadboard
- 1 × breadboard tanpa solder panjang penuh
Berbeda dengan mikrokontroler umum, Raspberry Pi tidak memiliki konverter analog-ke-digital bawaan. Kami mengatasi ini dengan mem timing pengisian kapasitor melalui photocell – teknik RC-timing hemat biaya yang memberikan bacaan yang andal.
Prasyarat
Pemrograman dilakukan dalam Python. Kami merekomendasikan menggunakan distribusi Occidentalis Adafruit, yang mencakup pustaka RPi.GPIO dan modul yang telah dikompilasi untuk Pi. Jika Anda menginginkan setup minimal, cukup instal RPi.GPIO melalui pip.
Karena rangkaian mengonsumsi arus yang sangat kecil, supply daya Pi standar sudah cukup. Untuk kalibrasi, sumber cahaya variabel (misalnya, lampu meja dengan kecerahan yang dapat disesuaikan) akan membantu Anda melihat bagaimana sensor bereaksi terhadap berbagai tingkat iluminasi.
Langkah 1 – Pemasangan Rangkaian RC
1. Masukkan Cobbler ke breadboard, pastikan tidak ada pin yang menyentuh rail daya yang sama – sebaliknya Anda risiko melemaskan Pi.
2. Hubungkan pin 3.3 V ke rail positif breadboard dan pin GND ke rail negatif.
3. Letakkan photocell di celah breadboard di antara dua setengahnya.
4. Sambungkan satu sisi photocell ke rail 3.3 V, dan sisi lain ke pin 18 Pi.
5. Sambungkan kapasitor 1 µF dari pin 18 ke GND. Ini menyelesaikan jaringan RC.
Pada titik ini Anda dapat melanjutkan untuk mengkalibrasi sensor.
Langkah 2 – Kalibrasi & Pengujian
Jalankan skrip Python berikut. Ini terus-menerus mengukur waktu yang dibutuhkan kapasitor untuk diisi melalui photocell. Nilai yang dikembalikan menurun seiring meningkatnya intensitas cahaya.
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
RC_PIN = 18
def rc_time(pin):
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
time.sleep(0.1) # fully discharge the capacitor
GPIO.setup(pin, GPIO.IN)
count = 0
while GPIO.input(pin) == GPIO.LOW:
count += 1
return count
while True:
print(rc_time(RC_PIN))
time.sleep(0.5)
Saat Anda mengubah sumber cahaya, Anda akan melihat tren numerik yang jelas: tingkat cahaya yang lebih tinggi menghasilkan bacaan yang lebih rendah. Tangkap beberapa sampel di gelap dan di bawah iluminasi tipikal untuk menentukan ambang untuk memicu peringatan.
Langkah 3 – Menerapkan Peringatan
Dengan ambang telah ditentukan, modifikasi skrip untuk menyalakan atau mematikan LED, mencatat data ke file, atau mengirim notifikasi melalui email atau MQTT. Misalnya, untuk membedakan LED merah saat ruangan menjadi terang:
RED_LED = 17
GPIO.setup(RED_LED, GPIO.OUT)
while True:
level = rc_time(RC_PIN)
if level < THRESHOLD:
GPIO.output(RED_LED, GPIO.HIGH)
else:
GPIO.output(RED_LED, GPIO.LOW)
time.sleep(1)
Untuk alur kerja yang lebih kompleks, pertimbangkan integrasi dengan Home Assistant, Node-RED, atau layanan web Flask kustom.
Keselamatan & Praktik Terbaik
- Selalu periksa ulang koneksi pin sebelum menyala Pi.
- Gunakan supply 3.3 V untuk jaringan RC; hindari 5 V yang dapat merusak GPIO Pi.
- Jaga nilai kapasitor tetap rendah (1 µF) untuk mencegah waktu pengisian yang lama yang memperlambat skrip.
- Dokumentasikan data kalibrasi Anda; ini membuat troubleshooting dan penyesuaian di masa depan menjadi sederhana.
Dengan pengaturan ini, Anda sekarang memiliki sensor cahaya hemat daya yang andal yang mencatat dan bereaksi terhadap perubahan iluminasi. Rasa bebas untuk memperluas proyek dengan menambahkan beberapa sensor, mencatat ke database, atau memvisualisasikan data di dasbor web.