Medidor de contaminación lumínica del cielo con un TSL2591
Mide qué tan oscuro es realmente tu cielo nocturno, regístralo cada pocos minutos y ve cómo lo cambian la Luna, las nubes y las luces de la calle.
Los astrónomos miden la oscuridad del cielo en magnitudes por segundo de arco cuadrado: más alto significa más oscuro. El TSL2591 es tan sensible que puede leer el cielo nocturno; después de calibrarlo con un valor conocido obtienes un registro útil del brillo del cielo.
Pasos de la misión
Limita la vista
Pon el sensor al fondo de un tubo negro impreso de unos 5 cm para que solo vea un pedazo de cielo cerca del cenit.
Conéctalo
TSL2591 y BME280 en el bus I2C del Pi (3V3, GND, SDA, SCL) y activa I2C con raspi-config.
Instala la librería
Instala adafruit-circuitpython-tsl2591 con pip en un entorno virtual.
Calibra
En una noche despejada y sin luna, ajusta la constante hasta que tu lectura coincida con un medidor comercial o una medición publicada de tu zona.
Registra toda la noche
Guarda lecturas cada cinco minutos en un CSV y grafica una noche; un sitio oscuro y despejado pasa de unos 21, mientras que los cielos de ciudad suelen estar cerca de 17–18.
Código
import time, math, csv, board
import adafruit_tsl2591
s = adafruit_tsl2591.TSL2591(board.I2C())
s.gain = adafruit_tsl2591.GAIN_MAX
s.integration_time = adafruit_tsl2591.INTEGRATIONTIME_600MS
CAL = 22.0 # adjust so a known dark sky gives the right value
while True:
vis = s.visible
mag = CAL - 2.5 * math.log10(max(vis, 1))
row = [time.strftime('%Y-%m-%d %H:%M'), vis, round(mag, 2)]
print(row)
with open('sky.csv', 'a', newline='') as f:
csv.writer(f).writerow(row)
time.sleep(300)Code comments are in English, like most libraries and docs — a good habit for makers.
Preguntas
¿Es tan preciso como un SQM comercial?
No, tiene otro campo de visión y otra respuesta al color. Es excelente para ver tendencias en un mismo lugar; toma los números absolutos como estimados.