Raspberry Pi Fotocel Logging & Alert Systeem – Een Laag-energie Lichtsensor Bouwen met Python
Deze handleiding leidt u door het bouwen van een Raspberry Pi-gebaseerde fotosensor die lichtniveaus logt en alerts triggert. Perfect voor het monitoren van donkere ruimtes zoals kasten of apparatuurkluizen, of simpelweg om omgevingsverlichting bij te houden.
We zullen LEDs gebruiken als output-indicatoren, maar het circuit kan worden aangepast om relais, buzzers, of zelfs een notificatiedienst te sturen. Alles wat u nodig hebt is een Adafruit RPi Starter Kit – een kosteneffectief bundel dat alles benodigde bevat – of u kunt de onderdelen zelf samenstellen uit de onderstaande stuklijst.
- 3 × 10 mm gediffuseerde LEDs (rood, blauw, groen)
- 1 × 1 µF condensator
- 1 × fotocel (fotoweerstand)
- 3 × 560 Ω weerstanden
- 1 × Pi Cobbler breakout
- 10 × breadboard draadbrugjes
- 1 × volledige lengte solderloos breadboard
In tegenstelling tot een typische microcontroller, mist de Raspberry Pi een onboard analoge-naar-digitale converter. We overwinnen dit door de lading van een condensator door de fotocel te timen – een goedkope RC-timing-techniek die betrouwbare metingen levert.
Vereisten
Programmeren gebeurt in Python. We raden aan Adafruit's Occidentalis-distributie te gebruiken, die de RPi.GPIO-bibliotheek en pre-gecompileerde modules voor de Pi bevat. Als u een minimale setup prefereert, installeer RPi.GPIO simpelweg via pip.
Omdat het circuit heel weinig stroom verbruikt, is een standaard Pi-voeding voldoende. Voor kalibratie helpt een variabele lichtbron (bijv. een bureaulamp met instelbare helderheid) om te zien hoe de sensor reageert op verschillende verlichtingsniveaus.
Stap 1 – De RC-circuit Bedraden
1. Plaats de Cobbler in het breadboard, zorg dat geen pins dezelfde power-rail raken – anders riskeren u een kortsluiting van de Pi.
2. Verbind de 3,3 V-pin met de positieve rail van het breadboard en de GND-pin met de negatieve rail.
3. Plaats de fotocel op de opening tussen de twee helften van het breadboard.
4. Bedraad één kant van de fotocel naar de 3,3 V-rail, en de andere kant naar pin 18 op de Pi.
5. Verbind de 1 µF-condensator van pin 18 naar GND. Dit voltooit het RC-netwerk.
Op dit punt kunt u doorgaan met het kalibreren van de sensor.
Stap 2 – Kalibratie & Testen
Voer het volgende Python-script uit. Het meet continu hoe lang het duurt voordat de condensator oplaadt door de fotocel. De geretourneerde waarde daalt naarmate de lichtintensiteit toeneemt.
#!/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) # condensator volledig ontladen 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)
Naarmate u de lichtbron varieert, zult u een duidelijke numerieke trend waarnemen: hogere lichtniveaus produceren lagere metingen. vang een paar monster in het donker en onder typische verlichting om een drempelwaarde voor het triggeren van alerts vast te leggen.
Stap 3 – Alerts Implementeren
Met de gedefinieerde drempel, wijzig het script om LEDs aan of uit te zetten, data naar een bestand te loggen, of een notificatie te sturen via e-mail of MQTT. Bijvoorbeeld, om een rode LED te laten knipperen wanneer de kamer helder wordt:
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)
Voor complexere workflows, overweeg integratie met Home Assistant, Node‑RED, of een custom Flask-webservice.
Veiligheid & Best Practices
- Controleer altijd pinverbindingen dubbel voordat u de Pi voedt.
- Gebruik een 3,3 V-voeding voor het RC-netwerk; vermijd 5 V wat de GPIO van de Pi kan beschadigen.
- Houd de condensatorwaarde laag (1 µF) om lange oplaadtijden te voorkomen die het script vertragen.
- Documenteer uw kalibratiedata; het maakt troubleshooting en toekomstige aanpassingen eenvoudig.
Met deze setup heeft u nu een betrouwbare, laag-energie lichtsensor die logt en reageert op verlichtingsveranderingen. Voel u vrij om het project uit te breiden door meerdere sensoren toe te voegen, te loggen naar een database, of de data te visualiseren op een web-dashboard.
Productieproces
- Naadloze MQTT Integratie: NodeMCU DHT22 Sensoren Met Raspberry Pi 3 B+ Als Broker
- Raspberry Pi-gestuurd Aquaponica Systeem: Bouwgids & Code
- 24-V thermostaatevenementen loggen en grafisch weergeven met optokoppelaar en Raspberry Pi
- Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
- Naadloze temperatuur- en vochtigheidsbewaking op Raspberry Pi met EzTemp
- Raspberry Pi-gebaseerde kamertemperatuurbewaking met Gnuplot-grafieken en e-mailalerts
- Hoe een DS1820 One-Wire temperatuursensor aan te sluiten op een Raspberry Pi via GPIO
- HC-SR04 ultrasoon-sensor aansluiten op Raspberry Pi 3 – Complete gids
- Analoge Sensoren Meten op Raspberry Pi Zonder Native ADC
- Een Multi-sensor Temperatuur- & Lichtmonitoringssysteem Bouwen met Raspberry Pi & DS18B20
- Knopindrukken Uitlezen via GPIO op Raspberry Pi: Een Stapsgewijze Handleiding