Anuncio

Los interruptores del anochecer al amanecer y los interruptores del temporizador son formas prácticas de automatizar sus luces. ¿No sería genial si pudieras combinar los dos, o incluso conectarlos a Internet para un sistema de iluminación verdaderamente inteligente?

Un Raspberry Pi, un relé, un sensor de luz y una pizca de código son todo lo que necesita para lograr este nirvana de iluminación automático con muy poco dinero.

Lo que necesitarás

Los componentes para su interruptor inteligente con sensor de luz son fáciles de obtener. Necesitarás:

  • Cualquier modelo de Raspberry Pi con Raspbian.
  • UNA tablero de relevos, fácil de encontrar en Amazon.
  • Un Sensor de luminosidad Adafruit TSL2561.
  • Cables de puente.
  • ¡Algunas luces para automatizar!

Cómo funciona un interruptor inteligente con sensor de luz

Al usar un relé de la misma manera que nuestro proyecto de apertura automática de puertas de garaje Cómo automatizar la puerta de su garaje con IFTTT y Raspberry PiEn este tutorial, le mostraremos cómo automatizar la puerta de su garaje utilizando nada más que una Raspberry Pi e IFTTT. Lee mas

instagram viewer
, puede programar una Raspberry Pi para encender y apagar un circuito de iluminación a horas fijas. Agregar un sensor de luminosidad a la mezcla significa que el Pi puede detectar el nivel de luz ambiental y elegir encender las luces solo cuando realmente se necesiten.

Debido a que un Pi es una computadora pequeña que se puede conectar a una red, también puede configurarla para que se controle a través de Internet. Sus luces inteligentes tendrán tres entradas para determinar cuándo se encenderán:

  1. Un horario programado.
  2. El nivel de luz ambiental.
  3. Una señal de anulación enviada a través de la red.

Paso 1: conecte la Raspberry Pi al relé

Si eres nuevo en el uso de GPIO, comienza leyendo Todo lo que necesitas saber sobre los pines GPIO de Raspberry Pi.

Primero, verifique si su placa de relé tiene un puente que conecta los pines VCC y JD-VCC juntos. Si es así, retírelo.

Puente de relé JD-VCC a VCC

Con todo apagado, conecte la placa de relé a su Pi de la siguiente manera:

  • Pi Pin 2 (5v) al JD-VCC en el tablero de relés.
  • Pi Pin 6 (GND) a GND en la placa de relés.
  • Pi Pin 15 (GPIO 22) a IN1 en la placa de relés
  • Pi Pin 17 (3.3v) a VCC en el tablero de relés.
Raspberry Pi Zero W conectado a una placa de relé

Paso 2: conecta el sensor de luminosidad

El TSL2561 es un sensor de luz que puede detectar infrarrojos, espectro completo y luz visible para humanos. Puede enviar una lectura digital muy precisa a la Raspberry Pi. El sensor informa el nivel de luz en una escala de 0.1 (sin luz) a 40,000 (sol brillante).

La junta TSL2561 habla con el Raspberry Pi usando el protocolo i2c. I2C solo necesita dos conexiones, una para un reloj para mantener los dos dispositivos sincronizados y otra para los datos que se transfieren. Por supuesto, el sensor de lux también necesita algo de energía, por lo que hay cuatro conexiones para hacer:

  • Conecte Pi Pin 1 (3.3v) a Vin (o VCC) en el sensor de lux
  • Conecte Pi Pin 3 (SDA) a SDA en el sensor lux
  • Conecte Pi Pin 5 (SCL) a SCL en el sensor de lux
  • Conecte Pi Pin 9 (GND) a GND en el sensor lux
Raspberry Pi Zero W conectado al sensor de lux TSL2561

Paso 3: configurar e instalar dependencias

Antes de continuar, deberá verificar que I2C esté habilitado en su Raspberry Pi (está deshabilitado de forma predeterminada). Escriba lo siguiente en la terminal:

sudo raspi-config

Seleccione Opciones de interfaz> P5 I2C, entonces escoge si.

Opciones de interfaz en la utilidad raspi-config

Golpear Entrar luego seleccione Terminar para salir de la pantalla de configuración. Reinicie su Pi para que el cambio surta efecto:

reinicio de sudo

Algunas dependencias son necesarias para que el Pi pueda comunicarse con la placa del sensor. Escriba los siguientes comandos:

sudo apt-get update. sudo apt-get install -y python-smbus. sudo apt-get install -y herramientas i2c

Puede verificar que todo esté funcionando escribiendo:

sudo i2cdetect -y 1

Si sus dependencias están instaladas y su sensor de lux está conectado correctamente, verá una respuesta como esta:

Utilidad IC-Detect que informa la dirección del sensor lux

Aquí, la utilidad informa que ha encontrado un dispositivo I2C (el sensor de lux) en la dirección I2C 39.

Aún no has terminado con las dependencias. También necesitarás algunas bibliotecas. Primero, haga una carpeta para mantener todo lo relacionado con este proyecto en:

mkdir ~ / iluminación. cd ~ / iluminación

A continuación, descargue botella, un marco ligero que creará un servidor web simple en su Pi. Lo usará para controlar sus luces desde la web.

wget https://bottlepy.org/bottle.py

Las otras bibliotecas que necesitará están en Github, por lo que si su Raspberry Pi aún no tiene instalado Git, agréguelo ahora:

sudo apt-get install git

Ahora clone dos bibliotecas, como esta:

git clone https://github.com/adafruit/Adafruit_Python_GPIO.git. git clone https://github.com/adafruit/Adafruit_Python_PureIO.git

Y, por último, cree un script de prueba creando un nuevo archivo:

nano test.py

Pegue este código (cortesía de Adafruit):

#! / usr / bin / env python. # - * - codificación: utf-8 - * - from __future__ import absolute_import, division, print_function, unicode_literals. desde tsl2561 importar TSL2561. if __name__ == "__main__": tsl = TSL2561 (debug = True) print (tsl.lux ())

prensa Ctrl + X para guardar, siguiendo las instrucciones en pantalla para salir.

Cuando hayas terminado, ejecuta el script de prueba:

prueba de python.py

Si todo está instalado y funcionando, obtendrá un número. Ese número es una lectura de lux del sensor. Intente bloquear el sensor o moverlo para que reciba más o menos luz. Luego ejecute el script de prueba nuevamente y vea cómo cambia el número.

Paso 4: crear los scripts de automatización

El Raspberry Pi encenderá las luces cuando oscurezca, pero también las apagará en ciertos momentos. Por ejemplo, es posible que desee que se enciendan las luces cuando oscurece por la noche, y luego apagarse alrededor de la medianoche para ahorrar electricidad. Podrían volver a encenderse temprano en la mañana y luego apagarse cuando amanezca.

Para administrar una programación con múltiples zonas de tiempo como esta, hay dos scripts diferentes. Uno (onzone.py) se ejecutará cada minuto durante el tiempo que desee que se enciendan las luces si está oscuro. El otro (offzone.py) se ejecutará cada minuto durante el tiempo que desee que las luces se apaguen independientemente del nivel de luz.

Programa de guión de iluminación inteligente

Las secuencias de comandos se programarán para ejecutarse utilizando trabajos cron Cómo programar tareas en Linux con Cron y CrontabLa capacidad de automatizar tareas es una de esas tecnologías futuristas que ya está aquí. Cada usuario de Linux puede beneficiarse del sistema de programación y las tareas del usuario, gracias a cron, un servicio en segundo plano fácil de usar. Lee mas . Al elegir qué horas del día y de noche se ejecuta cada script, será fácil establecer las horas en que las luces se pueden encender automáticamente. Puede configurar tantos períodos de encendido y apagado como desee.

Además de los scripts para controlar automáticamente las luces, hay un tercer script para gestionar situaciones de anulación. Esto le permitirá encender las luces de forma remota, independientemente del nivel de luz ambiental.

Script 1: La Zona ON

Este script de Python se ejecutará cada minuto del día que desee que se enciendan las luces si está oscuro. Descargue el script copiando y pegando este comando en la terminal:

wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py

Cada vez que se ejecuta onzone.py, obtendrá un valor de lux del sensor para ver si está oscuro. Si es así, verificará si las luces están encendidas o apagadas. Si están apagados, los encenderá. Si no está oscuro, el guión verá si las luces están encendidas. Si lo están, los apagará a menos que se hayan anulado.

El script usa una variable llamada bajo flujo para decidir en qué punto está lo suficientemente oscuro como para encender las luces. Puede cambiarlo a algo adecuado para su propia instalación alterando el valor en esta línea cerca de la parte superior de onzone.py:

bajo flujo = 50

Script 2: La Zona OFF

Este script se ejecutará cada minuto del día que desee que las luces permanezcan apagadas, a menos que se hayan anulado. Descargar el guión:

wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py

Este guión no le importa cuán claro u oscuro sea. Su trabajo es simplemente apagar las luces si están encendidas (a menos que se hayan anulado).

Script 3: El servidor de anulación

Este script crea un servicio web simple que puede aceptar comandos para realizar las siguientes acciones:

  1. Encienda las luces durante varios minutos, independientemente del nivel de luz ambiental.
  2. Apaga las luces.
  3. Averigüe si las luces están actualmente encendidas o apagadas.
  4. Averigüe cuánto tiempo más deben permanecer encendidas las luces cuando se han anulado.

Descargar el guión:

wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py

Antes de pasar al siguiente paso, ejecute el script offzone.py de esta manera:

python offzone.py

Esto creará los archivos de control que usan los scripts para realizar un seguimiento de todo.

Paso 5: programar las secuencias de comandos

Su Raspberry Pi puede ejecutar los scripts de automatización con cron. Configure el horario así:

sudo crontab -e

Pegue estas dos líneas en el editor de texto:

* 7,8,9,17,18,19,20,21,22,23 * * * python /home/pi/lighting/onzone.py> NULL. * 0,1,2,3,4,5,6,10,11,12,13,14,15,16 * * * python /home/pi/lighting/offzone.py> NULL

Nota: Si el nombre de usuario con el que inició sesión en su Raspberry Pi no era el predeterminado Pi, cambie la ruta en consecuencia.

Enumere todas las horas en las que desea que se enciendan las luces cuando está oscuro en la primera línea. Todas las horas en las que quieres apagar las luces van en la segunda línea.

Ahora configure el script de anulación para que se ejecute automáticamente cuando se inicie Pi:

sudo nano /etc/rc.local

Pegue esta línea en la parte inferior del archivo, luego guarde y salga:

nohup python /home/pi/lighting/lightserver.py &

Finalmente, reinicie Raspberry Pi para que pueda verificar que el script del servidor se está cargando como debería

reinicio de sudo

Paso 6: prueba el relé

Antes de conectar sus luces, compruebe que todo funciona utilizando la función de anulación. Escriba lo siguiente en un navegador web en la misma red que su Pi, reemplazando la dirección IP con la dirección de su propia Raspberry Pi:

11.22.33.44:1234/overrideon/3

Si todo está bien, escuchará el clic del relé y el navegador responderá que las luces se han encendido durante tres minutos.

Mientras el relé está cerrado, puede probar las otras funciones de anulación. Esto le indicará durante cuántos minutos más las luces permanecerán encendidas debido a la anulación:

11.22.33.44:1234/getoverrideremaining

Esto debería decirle que las luces están encendidas:

11.22.33.44:1234/lightstatus

Finalmente, puede apagarlos nuevamente con:

11.22.33.44:1234/overrideoff

El relé hará clic cuando se abra.

Paso 7: conecta tus luces

Apague y desconecte su Raspberry Pi antes de conectar sus luces al relé. Utilice los conectores normalmente abiertos (NO) en la placa de relés en lugar de un interruptor normal, como este:

Insertar el relé en el circuito de iluminación

Finalmente, puede instalar su sensor de lux en un lugar donde capturará el nivel de luz ambiental. Tenga en cuenta que el TSL2561 informará que está saturado si encuentra luz solar directa, por lo que es mejor mantenerlo a la sombra si es posible.

Más proyectos de Raspberry Pi para que pruebes

Anular de forma remota su nueva configuración de iluminación inteligente escribiendo comandos en un navegador web es bastante engorroso. Una mejor manera es conectar algo como un Amazon Echo para facilitar las cosas. Combinando el servicio Alexa y el servicio Webhooks en IFTTT es una manera simple de agregar control de voz.

Mira nuestro guía para usar IFTTT para ayudarlo a comenzar.

Applet IFTTT para conectar luces inteligentes a Alexa

Otra opción es usar Atajos de Siri. Un solo acceso directo con menús puede consultar el estado de las luces y usar las funciones de anulación para encenderlas y apagarlas.

Si disfrutaste este proyecto, asegúrate de revisar estos proyectos extraños de Raspberry Pi 10 proyectos de Raspberry Pi más extrañosHay un científico loco dentro de cada uno de nosotros, y el Raspberry Pi permite que tu bribón interior salga y juegue. A veces, las cosas se ponen raras. Muy raro. Lee mas para mas ideas

Hamish es un escritor independiente, amante de la tecnología de toda la vida y un nerd confirmado. Trabajó en los departamentos de TI de varias multinacionales antes de finalmente despedir a su jefe y hacerlo solo.