Índice:
- Etapa 1: Matriz de lâmpadas
- Etapa 2: Teoria de escurecimento
- Etapa 3: prática de escurecimento
- Etapa 4: controlador da lâmpada (ESP32)
- Etapa 5: Painel de Controle
- Etapa 6: Divirta-se
Vídeo: Lâmpada brilhante controlável do nascer do sol: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Você já acordou às 7hs, o horário normal de que precisa para acordar para o trabalho, e se viu na escuridão? O inverno é uma época terrível, certo? Você tem que acordar no meio da noite (caso contrário, por que está tão escuro?), Arrancar-se da cama e mandar seu corpo semiconsciente para o chuveiro.
Este projeto visa resolver um dos problemas - escuridão matinal.
Há muitas lâmpadas baratas do nascer do sol por aí, mas todas têm baixa potência e são claras. Eles se parecem mais com um abajur, que supostamente faz você dormir melhor. Não é o que eu quero.
Ao mesmo tempo, basta ligar a luz forte para acordá-lo imediatamente, mas não com a suavidade suficiente. O que eu quero é uma combinação de ambas as abordagens - acender com um brilho baixo, lentamente atingir a velocidade máxima, então um alarme real dispara e você não fica mais com tanto sono. Vamos adicionar um pouco do canto de um pássaro a ele, e você acorda no céu todas as manhãs!
Etapa 1: Matriz de lâmpadas
Em primeiro lugar, precisamos da própria lâmpada. Eu tenho uma sala bem grande com paredes e teto brancos, então optei por 7 lâmpadas LED GU10, algo como 6W cada, mais de 40W de potência pura! Isso é o suficiente para fazer você sentir que já é dia. Também pode ser usado como uma iluminação ambiente normal durante o dia.
Realmente não importa como você o monta, quais lâmpadas você usa com quais soquetes. Tudo o que importa - essas lâmpadas devem ser reguláveis!
No meu caso, tenho uma prancha de madeira com 7 tomadas GU10 conectadas, todas conectadas entre si. Vou colocá-lo em uma caixa de plástico mais tarde.
Etapa 2: Teoria de escurecimento
Em teoria, não há diferença entre teoria e prática. Na prática, sim.
Controlar um dimmer de ESP32 / Arduino parecia não ser tão simples quanto eu imaginava. Eu tenho um dos módulos RobotDyn AC Light Dimmer. O fabricante sugere uma biblioteca para isso. Ele não funciona no ESP32 (e é realmente difícil de se adaptar, porque usa muito acesso de registro específico do ATMega de baixo nível), meio que funciona no Arduino Nano, dando uma tremulação terrível no brilho médio-baixo. É por isso que passei algum tempo investigando como tudo funciona e fazendo meu próprio caminho.
Um pouco de teoria
O módulo dimmer escolhido usa um TRIAC muito popular: BTA16. Existem muitos artigos sobre isso. Vou tentar resumir aqui.
TRIAC é um módulo que pode transmitir uma tensão positiva ou negativa de entrada para a saída ou pode bloqueá-la. Por padrão, ele bloqueia tudo. Para abri-lo, devemos dar-lhe um sinal alto na entrada do portão para 100 us. Então ele ficará aberto até que a corrente caia para zero, o que acontece quando uma tensão de entrada muda de sinal, cruzando uma tensão zero. Então, no ciclo seguinte, devemos fazer outro pulso de 100 us e assim por diante. Ao escolher quando dar um pulso, controlamos o brilho: faça logo no início, e será quase 100% de transmissão de potência. Faça isso mais tarde e ele ficará esmaecido. Confira o diagrama acima, explicando-o.
Para gerar pulsos no mesmo ponto do ciclo, precisamos saber exatamente quando ele começa. É por isso que o módulo dimmer tem um detector Zero-Cross embutido. Ele apenas levanta um sinal (que pegaremos como uma interrupção de hardware no Arduino) toda vez que a tensão passa de zero.
Etapa 3: prática de escurecimento
Sim, é assim que você acordaria, se sua lâmpada não diminuísse e colocasse todos os 40W de energia em seus olhos sonolentos.
Problemas comuns
Existem vários problemas que precisamos resolver.
Cintilando.
O tempo do microcontrolador deve ser realmente preciso para ligar e desligar a saída do gate. A biblioteca RobotDyn sugere, tem uma interrupção do temporizador a cada 100us e altera o nível do portão apenas no temporizador. Isso significa que pode estar +/- 50 microssegundos fora do valor ideal. Ele dá um bom resultado com brilho alto, mas treme muito com brilho baixo. Além disso, se o microcontrolador faz muitas coisas, diminui a precisão do tempo, portanto, o ideal é usar um microcontrolador dedicado para o dimmer.
Brilho mínimo. Os LEDs têm um conversor de energia embutido, que se recusará a funcionar sem energia suficiente. Minhas lâmpadas pareciam funcionar bem a partir de 10-11%.
Mesmo com esse valor, algumas das minhas lâmpadas recusaram-se a acender na inicialização. Mesmo ao aumentar o brilho posteriormente, eles permanecem escuros. É por isso que, quando passamos do estado OFF para algum brilho positivo, iniciamos com um período de aquecimento de 5 ciclos, quando damos potência total às lâmpadas. Em seguida, continuamos com o brilho desejado. É quase imperceptível, mas realmente ajuda.
Freqüência da rede elétrica de 50/60 Hz. Você precisa saber quanto esperar antes do próximo zero. É muito simples - apenas olhamos para a diferença de tempo entre as duas últimas interrupções.
Mudança gradual de brilho. ESP32 é muito lenta, leva 0,5 seg para processar um HTTP trivial ou até mesmo solicitação WebSocket, então não espere uma transição de brilho suave, ela precisa ser implementada de alguma forma no nível do dimmer. É por isso que, quando recebe um novo brilho de uma porta serial, ele apenas define o alvo e, em seguida, se aproxima lentamente com o tempo.
A solução
Aqui está meu código simples do Arduino para o dimmer. Ele espera por um comando (um byte com o novo brilho) da entrada serial, lida com interrupções Zero-Cross, controla o TRIAC, lidando com todos os problemas acima.
Etapa 4: controlador da lâmpada (ESP32)
Aqui está o esquema de conexão de todos os componentes que possuo. A placa ESP32 é muito diferente da que eu uso (Heltec), então os pinos escolhidos parecem um pouco estranhos, mas ainda deve funcionar bem. Sinta-se à vontade para usar diferentes pins em seu projeto.
Aqui está o código que controla tudo. É muito simples.
As características principais
Controlável. A lâmpada se conecta ao WiFi, inicia um servidor WebSocket na porta 81 e aguarda os comandos. O formato do comando é
Apenas dois comandos são suportados por enquanto: "set_brightness" e "update_settings", que são … bastante autodescritivos.
Obtendo o tempo do NTP. Não quero complicar demais as coisas e adicionar um relógio de tempo real ao esquema. Temos acesso à Internet, o que significa que podemos obter o tempo real de algum servidor NTP e, em seguida, controlar a hora atual usando os temporizadores do sistema.
Alarme do nascer do sol. Você pode definir um alarme. O que ele realmente faz: começa com o brilho mínimo e gradualmente vai para o brilho total ao longo de 10 minutos. Em seguida, ele permanece ligado por algumas horas. Em seguida, ele desliga gradualmente ao longo de 60 segundos.
Todos os parâmetros acima são configuráveis.
Pássaros cantando. O FPlayer mini é usado para reproduzir música. Existem muitos guias para isso, mas essencialmente você só precisa conectar um cartão MicroSD, formatado em FAT32, com um arquivo chamado 0001.mp3. Este arquivo pode ter o que você quiser, no meu caso são 15 minutos de pássaros cantando (ele será repetido), e isso torna minha manhã incrível. Observe que há um enorme capacitor ligado e resistores de 1 kOhm na linha serial entre ESP32 e DFplayer - são opcionais, mas ajudam a reduzir o ruído.
Armazenamento das configurações na EEPROM. Todas as configurações são gravadas na EEPROM e carregadas na inicialização. Torna possível usar a lâmpada com pelo menos um recurso de alarme sem um controlador conectado.
Renderizando algumas informações na tela OLED. Meu Heltec ESP32 tem uma tela SSD1306 128X64 I2C embutida. Todas as informações essenciais são reproduzidas nela. Eu sei, a caixa parece feia, acabei de imprimir algumas coisas em 3D e cortei os buracos e as janelas com uma furadeira. Rápido, sujo, mas funciona!
Etapa 5: Painel de Controle
Esse é o coração do projeto. Um Raspberry Pi com uma tela original de 7 , executando um front-end Kivy.
Aqui está o código-fonte completo.
As características
Escrito em Python. Eu amo Kivy, é uma estrutura Python para interfaces de usuário. Muito simples, mas flexível e eficiente (usa muito código C interno para alto desempenho e aceleração de hardware).
Clima. Mostra a temperatura e a pressão atuais do lado de fora. Se você conectar um sensor remoto - temperatura interna também. Solicita e analisa a previsão do tempo para as 12 horas seguintes e dá um conselho sobre a probabilidade de chuva.
Controlador SunriseLamp. Outro painel exibe algumas informações básicas sobre o alarme e permite que você ajuste o brilho. Se você for para as configurações, você pode configurar qualquer parâmetro da lâmpada, incluindo a programação de alarme, volume máximo de áudio e assim por diante.
Screensaver. Renders Game of Life na tela após algum período de inatividade.
Costumava haver mais do que isso, mas outras coisas pareciam ser inúteis.
Instalação
Instalei tudo manualmente no Raspbian, e agora posso dizer: não repita meus erros. Use o KivyPie, tem tudo pré-instalado.
Além disso, basta seguir o guia de instalação no repositório de código.
Etapa 6: Divirta-se
Pessoalmente, estou feliz com o dispositivo. Eu uso como iluminação principal em casa durante o dia, e me permite acordar de manhã, é incrível.
Eu sei que as instruções não são muito granulares e descritivas. Se alguém fizer a mesma coisa e tiver problemas, terei todo o gosto em ajudar!
Recomendado:
Lâmpada do simulador de nascer do sol: 7 etapas (com imagens)
Lâmpada do Simulador Sunrise: Eu criei esta lâmpada porque estava cansado de acordar no escuro durante o inverno. Eu sei que você pode comprar produtos que fazem a mesma coisa, mas gosto da sensação de usar algo que criei. A lâmpada simula o nascer do sol aumentando gradualmente em
Despertador do nascer do sol (melhorar a vigília matinal): 13 etapas
Despertador do nascer do sol (melhorar a vigília matinal): programe seu próprio nascer do sol pessoal, melhore a vigília matinal Última invenção aleatória, programe seu próprio nascer do sol! Durante o dia, a luz azul da luz do sol aumenta nossa atenção, memória, níveis de energia, tempos de reação e humor geral . Luz azul s
UCL-lloT-Outdoor-light Disparado ao nascer do sol / pôr do sol: 6 etapas
UCL-lloT-Outdoor-light Triggered by Sunrise / Sundown .: Olá a todos! Com um pouco de trabalho, algumas partes e código eu montei este instrutível que irá mostrar a vocês do início ao fim exatamente como produzir essa luz para exteriores. A ideia partiu do meu pai, que durante o verão tinha que sair manualmente
Como fazer flash super brilhante com LED - Faça você mesmo: Luz super brilhante: 11 etapas
Como fazer flash super brilhante com LED - Faça você mesmo: Luz super brilhante: primeiro assista ao vídeo
Uma lâmpada do nascer e do pôr do sol com LEDs: 7 etapas (com fotos)
Lâmpada do nascer e do pôr do sol com LEDs: Você sabe, no inverno é difícil se levantar, porque está escuro lá fora e seu corpo simplesmente não acorda no meio da noite. Então você pode comprar um despertador que te acorde com luz. Esses dispositivos não são tão caros como poucos