Propaganda
Os interruptores do crepúsculo até o amanhecer e os interruptores do timer são maneiras úteis de automatizar suas luzes. Não seria ótimo se você pudesse combinar os dois ou conectá-los à Internet para obter um sistema de iluminação verdadeiramente inteligente?
Um Raspberry Pi, um relé, um sensor de luz e uma pitada de código são tudo o que você precisa para obter esse nirvana de iluminação automática com pouca força.
O que você precisará
Os componentes do seu comutador inteligente com sensor de luz são fáceis de obter. Você precisará:
- Qualquer modelo de Raspberry Pi executando Raspbian.
- UMA placa de relé, facilmente encontrado na Amazon.
- A Sensor de luminosidade Adafruit TSL2561.
- Fios de ligação em ponte.
- Algumas luzes para automatizar!
Como funciona um comutador inteligente com sensor de luz
Usando um relé da mesma maneira que nosso projeto automático de abridor de porta de garagem Como automatizar sua porta de garagem com IFTTT e Raspberry PiNeste tutorial, mostraremos como automatizar a porta da garagem usando nada mais que um Raspberry Pi e IFTTT. consulte Mais informação
, você pode programar um Raspberry Pi para ativar e desativar um circuito de iluminação em horários fixos. Adicionar um sensor de luminosidade à mistura significa que o Pi pode detectar o nível de luz ambiente e optar por acender as luzes somente quando realmente forem necessárias.Como um Pi é um pequeno computador que pode ser conectado a uma rede, você também pode configurá-lo para ser controlado pela Internet. Suas luzes inteligentes terão três entradas para determinar quando elas serão acesas:
- Uma programação programada.
- O nível da luz ambiente.
- Um sinal de substituição enviado pela rede.
Etapa 1: Conecte o Raspberry Pi ao relé
Se você é novo no GPIO, comece lendo Tudo o que você precisa saber sobre os pinos do Raspberry Pi GPIO.
Primeiro, verifique se a sua placa de relé possui um jumper conectando os pinos VCC e JD-VCC. Se houver, remova-o.

Com tudo desligado, conecte a placa de relé ao seu Pi da seguinte maneira:
- Pi 2 (5v) no JD-VCC na placa de relé.
- Pi Pino 6 (GND) a GND na placa de relé.
- Pino 15 do Pi (GPIO 22) a IN1 na placa de relé
- Pi 17 (3,3v) ao VCC na placa de relé.

Etapa 2: conectar o sensor de luminosidade
O TSL2561 é um sensor de luz que pode detectar luz infravermelha, espectro total e visível ao homem. Ele pode enviar uma leitura digital muito precisa para o Raspberry Pi. O sensor relata o nível de luz em uma escala de 0,1 (sem luz) a 40.000 (sol brilhante).
O conselho do TSL2561 conversa com o Raspberry Pi usando o protocolo i2c. O I2C precisa apenas de duas conexões, uma para um relógio para manter os dois dispositivos sincronizados e outra para os dados que estão sendo transferidos. Obviamente, o sensor lux também precisa de energia; portanto, há quatro conexões a serem feitas:
- Conecte o Pino Pi 1 (3,3v) ao Vin (ou VCC) no sensor lux
- Conecte o Pino Pi 3 (SDA) ao SDA no sensor lux
- Conecte o pino 5 do Pi (SCL) ao SCL no sensor lux
- Conecte o pino 9 do Pi (GND) ao GND no sensor lux

Etapa 3: configurar e instalar dependências
Antes de prosseguir, verifique se o I2C está ativado no seu Raspberry Pi (por padrão está desativado). Digite o seguinte no terminal:
sudo raspi-config
Selecione Opções de interface> P5 I2C, então escolha sim.

Bater Entrar então selecione Terminar para sair da tela de configuração. Reinicie seu Pi para que a alteração entre em vigor:
reinicialização do sudo
Algumas dependências são necessárias para que o Pi possa se comunicar com a placa do sensor. Digite os seguintes comandos:
sudo apt-get update. sudo apt-get install -y python-smbus. sudo apt-get install -y i2c-tools
Você pode verificar se tudo está funcionando, digitando:
sudo i2cdetect -y 1
Se suas dependências estiverem instaladas e seu sensor de lux estiver conectado corretamente, você verá uma resposta como esta:

Aqui, o utilitário está relatando que encontrou um dispositivo I2C (o sensor lux) no endereço I2C 39.
Você ainda não terminou as dependências. Você precisará de algumas bibliotecas também. Primeiro, crie uma pasta para manter tudo relacionado a este projeto em:
mkdir ~ / iluminação. cd ~ / iluminação
Em seguida, faça o download garrafa, uma estrutura leve que criará um servidor Web simples no seu Pi. Você o usará para controlar suas luzes da Web.
wget https://bottlepy.org/bottle.py
As outras bibliotecas de que você precisa estão no Github. Portanto, se o seu Raspberry Pi ainda não tiver o Git instalado, adicione-o agora:
sudo apt-get install git
Agora clone duas bibliotecas, assim:
clone git https://github.com/adafruit/Adafruit_Python_GPIO.git. clone git https://github.com/adafruit/Adafruit_Python_PureIO.git
E, por último, crie um script de teste criando um novo arquivo:
nano test.py
Cole neste código (cortesia de Adafruit):
#! / usr / bin / env python. # - * - codificação: utf-8 - * - de __future__, importeimportante_importante, divisão, função_impressão, literais_do_ unicode. de tsl2561 import TSL2561. se __name__ == "__main__": tsl = TSL2561 (depuração = True) print (tsl.lux ())
pressione Ctrl + X para salvar, seguindo as instruções na tela para sair.
Quando terminar, execute o script de teste:
python test.py
Se tudo estiver instalado e funcionando, você receberá um número de volta. Esse número é uma leitura lux do sensor. Tente bloquear o sensor ou movê-lo para que fique mais ou menos claro. Em seguida, execute o script de teste novamente e veja como o número muda.
Etapa 4: criar os scripts de automação
O Raspberry Pi acende as luzes quando escurece, mas também as apaga em determinados momentos. Por exemplo, você pode querer que as luzes acendam quando escurece à noite e depois apague por volta da meia-noite para economizar eletricidade. Eles podem voltar a ligar de manhã cedo e depois se desligam quando fica claro.
Para gerenciar um agendamento com várias zonas de tempo como essa, existem dois scripts diferentes. 1 (onzone.py) será executado a cada minuto durante o horário em que você deseja que as luzes acendam, se estiver escuro. O outro (offzone.py) será executado a cada minuto durante o horário em que você deseja que as luzes se apaguem, independentemente do nível da luz.

Os scripts serão agendados para execução usando tarefas cron Como agendar tarefas no Linux com Cron e CrontabA capacidade de automatizar tarefas é uma daquelas tecnologias futuristas que já estão aqui. Todo usuário do Linux pode se beneficiar do agendamento de tarefas do sistema e do usuário, graças ao cron, um serviço em segundo plano fácil de usar. consulte Mais informação . Ao escolher as horas do dia e da noite em que cada script é executado, será fácil definir as horas em que suas luzes podem acender automaticamente. Você pode configurar quantos períodos de ativação e desativação desejar.
Além de scripts para controlar automaticamente as luzes, existe um terceiro script para gerenciar situações de substituição. Isso permitirá que você acenda as luzes remotamente, independentemente do nível da luz ambiente.
Script 1: A Zona ON
Esse script Python será executado a cada minuto do dia em que você deseja que as luzes acendam, se estiver escuro. Faça o download do script copiando e colando este comando no terminal:
wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
Sempre que o onzone.py for executado, ele obterá um valor lux do sensor para ver se está escuro. Se estiver, ele verificará se as luzes estão acesas ou apagadas. Se eles estiverem desligados, eles serão ligados. Se não estiver escuro, o script verá se as luzes estão acesas. Se estiverem, serão desativados, a menos que tenham sido substituídos.
O script usa uma variável chamada lowlux para decidir em que momento está escuro o suficiente para acender as luzes. Você pode alterá-lo para algo adequado para sua própria instalação, alterando o valor nesta linha perto da parte superior do onzone.py:
lowlux = 50
Script 2: A Zona OFF
Esse script será executado a cada minuto do dia em que você deseja que as luzes permaneçam apagadas, a menos que tenham sido substituídas. Faça o download do script:
wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
Este script não se importa com o quão claro ou escuro é. Seu trabalho é simplesmente desligar as luzes se estiverem acesas (a menos que tenham sido substituídas).
Script 3: O servidor de substituição
Este script cria um serviço da web simples que pode aceitar comandos para executar as seguintes ações:
- Acenda as luzes por alguns minutos, independentemente do nível da luz ambiente.
- Desligue as luzes.
- Descubra se as luzes estão acesas ou apagadas.
- Descubra quanto tempo as luzes devem permanecer acesas quando forem substituídas.
Faça o download do script:
wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
Antes de passar para a próxima etapa, execute o script offzone.py assim:
python offzone.py
Isso criará os arquivos de controle que os scripts usam para acompanhar tudo.
Etapa 5: agendar os scripts
Seu Raspberry Pi pode executar os scripts de automação com cron. Configure o agendamento assim:
sudo crontab -e
Cole estas duas linhas no 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: Se o nome de usuário com o qual você efetuou login no Raspberry Pi não era o padrão pi, altere o caminho adequadamente.
Liste todas as horas em que você deseja que as luzes acendam quando estiver escuro na primeira linha. Todas as horas em que você deseja que as luzes se apagem vão na segunda linha.
Agora defina o script de substituição para executar automaticamente quando o Pi for iniciado:
sudo nano /etc/rc.local
Cole esta linha na parte inferior do arquivo e salve e saia:
nohup python /home/pi/lighting/lightserver.py &
Por fim, reinicie o Raspberry Pi para verificar se o script do servidor está carregando como deveria
reinicialização do sudo
Etapa 6: Teste o relé
Antes de conectar as luzes, teste se tudo está funcionando usando a função de substituição. Digite o seguinte em um navegador da web na mesma rede que o seu Pi, substituindo o endereço IP pelo endereço do seu próprio Raspberry Pi:
11.22.33.44:1234/overrideon/3
Se tudo estiver bem, você ouvirá o clique do relé e o navegador responderá que as luzes foram acesas por três minutos.
Enquanto o relé estiver fechado, você pode testar as outras funções de substituição. Isso informará por quantos minutos as luzes permanecerão acesas devido à substituição:
11.22.33.44:1234/getoverrideremaining
Isso deve indicar que as luzes estão acesas:
11.22.33.44:1234/lightstatus
Por fim, você pode desativá-los novamente com:
11.22.33.44:1234/overrideoff
O relé irá clicar quando abrir.
Etapa 7: Conecte suas luzes
Desligue e desconecte o Raspberry Pi antes de conectar as luzes ao relé. Use os conectores normalmente abertos (NA) na placa de relé no lugar de um comutador comum, como este:

Por fim, você pode instalar o seu sensor lux em um local onde ele capturará o nível de luz ambiente. Observe que o TSL2561 relatará estar saturado se encontrar luz solar direta; portanto, é melhor mantê-lo na sombra, se possível.
Mais projetos do Raspberry Pi para você experimentar
Substituir remotamente sua nova configuração de iluminação inteligente digitando comandos em um navegador da web é bastante complicado. Uma maneira melhor é conectar algo como um Amazon Echo para facilitar as coisas. Combinando o serviço Alexa e o serviço Webhooks em IFTTT é uma maneira simples de adicionar controle de voz.
Veja nossa guia para usar o IFTTT para ajudar você a começar.

Outra opção é usar os atalhos da Siri. Um único atalho com menus pode consultar o status das luzes e usar as funções de substituição para ativá-las e desativá-las.
Se você gostou deste projeto, verifique estas projetos estranhos do Raspberry Pi 10 projetos mais estranhos do Raspberry PiHá um cientista louco dentro de cada um de nós, e o Raspberry Pi permite que seu mergulhão interior saia e brinque. Às vezes, as coisas ficam estranhas. Muito estranho. consulte Mais informação para mais idéias.
Hamish é escritor freelancer, amante da tecnologia ao longo da vida e nerd confirmado. Ele trabalhou nos departamentos de TI de várias multinacionais antes de finalmente demitir seu chefe e seguir sozinho.