Sistema de Registro y Alertas con Fotocélula en Raspberry Pi – Sensor de Luz de Bajo Consumo con Python
Esta guía le lleva a construir un fotosensor basado en Raspberry Pi que registra niveles de luz y dispara alertas. Perfecto para monitorizar espacios oscuros como armarios o taquillas de equipos, o simplemente para seguir la iluminación ambiental.
Usaremos LEDs como indicadores de salida, pero el circuito puede adaptarse para controlar relés, zumbadores o incluso un servicio de notificaciones. Todo lo que necesita es un Kit de Inicio RPi de Adafruit – un paquete rentable que incluye todo lo necesario – o puede ensamblar las piezas usted mismo desde la lista de materiales siguiente.
- 3 × LEDs difusos de 10 mm (rojo, azul, verde)
- 1 × Capacitor de 1 µF
- 1 × Fotocélula (fotorresistencia)
- 3 × Resistencias de 560 Ω
- 1 × Pi Cobbler breakout
- 10 × Cables jumper para protoboard
- 1 × Protoboard sin soldar de longitud completa
A diferencia de un microcontrolador típico, la Raspberry Pi carece de convertidor analógico-digital integrado. Superamos esto midiendo el tiempo de carga de un capacitor a través de la fotocélula –una técnica RC de temporización económica que ofrece lecturas fiables.
Requisitos Previos
La programación se hace en Python. Recomendamos usar la distribución Occidentalis de Adafruit, que incluye la biblioteca RPi.GPIO y módulos precompilados para la Pi. Si prefiere una configuración mínima, simplemente instale RPi.GPIO vía pip.
Como el circuito consume muy poca corriente, una fuente de alimentación estándar de Pi es suficiente. Para calibración, una fuente de luz variable (ej. lámpara de escritorio con brillo ajustable) le ayudará a ver cómo reacciona el sensor a diferentes niveles de iluminación.
Paso 1 – Cableado del Circuito RC
- Inserte el Cobbler en la protoboard, asegurándose de que ningún pin toque el mismo rail de alimentación –de lo contrario arriesga un cortocircuito en la Pi.
- Conecte el pin 3.3 V al rail positivo de la protoboard y el pin GND al rail negativo.
- Coloque la fotocélula en el hueco central de la protoboard entre las dos mitades.
- Conecte un lado de la fotocélula al rail de 3.3 V y el otro al pin 18 de la Pi.
- Conecte el capacitor de 1 µF del pin 18 a GND. Esto completa la red RC.
En este punto puede proceder a calibrar el sensor.
Paso 2 – Calibración y Pruebas
Ejecute el siguiente script Python. Mide continuamente cuánto tarda el capacitor en cargarse a través de la fotocélula. El valor devuelto disminuye al aumentar la intensidad lumínica.
#!/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) # descarga completa del 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)
Al variar la fuente de luz, observará una clara tendencia numérica: mayores niveles de luz producen lecturas más bajas. Capture algunas muestras en oscuridad y bajo iluminación típica para establecer un umbral para disparar alertas.
Paso 3 – Implementando Alertas
Con el umbral definido, modifique el script para encender o apagar LEDs, registrar datos en un archivo o enviar notificaciones por email o MQTT. Por ejemplo, para parpadear un LED rojo cuando la habitación se vuelve brillante:
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)
Para flujos de trabajo más complejos, considere integrar con Home Assistant, Node‑RED o un servicio web Flask personalizado.
Seguridad y Buenas Prácticas
- Verifique siempre las conexiones de pines antes de alimentar la Pi.
- Use alimentación de 3.3 V para la red RC; evite 5 V que podría dañar el GPIO de la Pi.
- Mantenga el valor del capacitor bajo (1 µF) para evitar tiempos de carga largos que ralenticen el script.
- Documente sus datos de calibración; facilita la resolución de problemas y ajustes futuros.
Con esta configuración, tiene un sensor de luz fiable y de bajo consumo que registra y reacciona a cambios de iluminación. Siéntase libre de expandir el proyecto añadiendo múltiples sensores, registrando en una base de datos o visualizando los datos en un panel web.
Proceso de manufactura
- Integración MQTT fluida: sensores NodeMCU DHT22 con Raspberry Pi 3 B+ como broker
- Sistema de acuaponía controlado por Raspberry Pi: guía de construcción y código
- Registro y gráficas de eventos de termostato 24 V con optoacoplador y Raspberry Pi
- Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
- Monitorización fluida de temperatura y humedad en Raspberry Pi con EzTemp
- Monitorización de temperatura de sala con Raspberry Pi, gráficas Gnuplot y alertas por email
- Cómo conectar un sensor de temperatura DS1820 One‑Wire a Raspberry Pi usando GPIO
- Conexión del sensor ultrasónico HC‑SR04 a Raspberry Pi 3 – Guía completa
- Mida Sensores Analógicos en Raspberry Pi sin ADC Nativo
- Construya un Sistema de Monitorización de Temperatura y Luz Multi‑Sensor con Raspberry Pi y DS18B20
- Lectura de Pulsaciones de Botón vía GPIO en Raspberry Pi: Guía Paso a Paso