- Para reduzir para o nível 1 uma luz noturna que sempre liga no nível 3 de brilho, foi criada uma PCB baseada em ATtiny85 que, ao receber energia, pressiona o botão três vezes no lugar da pessoa
- Como a fonte com queda por capacitor fornece apenas alguns mA, em vez de um ESP8266 ou Raspberry Pi Zero foi escolhido o ATtiny85, que consome menos de 1 mA a 1 MHz e cai para a faixa de μA em modo de economia de energia
- O circuito foi montado em torno de um HT7333 para reduzir 8,3 V para 3,3 V e de um 2N3904 para curto-circuitar o botão ao terra, e foi projetado e fabricado com EasyEDA e JLCPCB
- O chip foi programado com os GPIOs de um Raspberry Pi 3 e avrdude; quando o Home Assistant liga a luz noturna, ele espera um pouco e então pressiona o botão três vezes para alternar automaticamente para o brilho mínimo
- Os arquivos de projeto e o código em C foram publicados sob a licença MIT, mas só podem ser aplicados a dispositivos com tensão interna de 4 a 12 V e entrada de botão que é curto-circuitada ao terra; aparelhos comerciais sem transformador ligados à rede elétrica exigem cuidado especial
Três apertos de botão repetidos todos os dias
- O Home Assistant está configurado para ligar a luz noturna por meio de uma tomada de parede Zigbee quando o celular entra no modo de foco de sono
- A luz noturna barata tem uma chave que define se ela acende automaticamente e um botão que muda o nível de brilho, mas toda vez que é ligada ela começa no nível 3 de brilho
- Ao pressionar o botão uma vez, vai para o nível 4; ao pressionar de novo, para o nível 5; na terceira vez, vai para o nível 1
- Para obter o brilho mínimo desejado, era preciso pressionar o botão três vezes todas as noites
- Ao abrir o aparelho, o nome do chip não estava visível e também não havia potenciômetro de ajuste
- Um método encontrado online que dizia permitir mudar o brilho padrão na EEPROM mantendo o botão pressionado por cerca de 10 segundos também não funcionou nesse produto
Microcontrolador adequado à energia limitada
- Um microcontrolador que automatizasse a entrada do botão era a solução mais adequada
- Como a luz noturna reduz a tensão da rede elétrica usando um capacitor em vez de um transformador, a fonte só consegue fornecer alguns mA
- O ESP8266 do Wemos D1 Mini precisa de centenas de mA ao inicializar e ligar a função sem fio
- O Raspberry Pi Zero é um computador Linux completo que precisa inicializar um sistema operacional
- Ambos os dispositivos exigiriam uma fonte separada ou um grande capacitor de armazenamento e circuitos adicionais para suportar o momento da inicialização
- O ATtiny85 escolhido ao final é da família AVR, como os Arduinos clássicos, e o código pode ser escrito na Arduino IDE
- Em operação a 1 MHz, consome menos de 1 mA
- Em modo de economia de energia, cai para a faixa de μA, semelhante a um relógio de quartzo
- Os LEDs da luz noturna usam milhares de vezes mais energia que o ATtiny85
Circuito que reproduz o aperto real do botão
- O barramento de alimentação interno da luz noturna é de 8,3 V, e o ATtiny85 precisa de 3,3 V, então foi usado um regulador de tensão HT7333
- Um transistor 2N3904 curto-circuita a linha de sinal do botão ao terra, reproduzindo a ação de pressionar o botão de verdade
- Os componentes ao redor cuidam da limitação de corrente, da prevenção de entradas falsas e da estabilização da alimentação
- O resistor de 1 kΩ entre o ATtiny85 e o transistor limita a corrente de acionamento que flui para o transistor
- O resistor de 10 kΩ mantém o transistor desligado enquanto a energia está sendo ligada, evitando entradas de botão indesejadas
- Três pequenos capacitores suavizam a alimentação fornecida ao regulador de tensão e ao chip
- O header de 3 pinos se conecta à alimentação, ao terra e à linha de sinal do botão
- O circuito foi projetado como uma placa separada para servir como um dispositivo genérico que pressiona um botão um número definido de vezes e também para aprender o processo de fabricação de PCBs
Projeto do circuito e da placa no EasyEDA
- No EasyEDA, os componentes e suas relações de conexão foram primeiro desenhados como um esquemático
- Pontos de conexão com o mesmo nome, como
GNDe3V3, são interligados pelo roteador - Ao especificar os componentes reais a usar, isso pode ser aproveitado no layout da PCB e na criação da lista de materiais
- Pontos de conexão com o mesmo nome, como
- Na etapa de edição da PCB, é possível definir diretamente a posição dos componentes, as rotas de trilha, o formato da placa e os elementos impressos
- A placa recebeu a impressão do logotipo de hardware open source e do nome de usuário
- Como o circuito era simples, foi feita uma placa de face única, sem necessidade de roteamento complexo nem correção de comprimento ou formato das trilhas
Fabricação pela JLCPCB e montagem dos componentes
- A placa foi encomendada na JLCPCB, escolhendo os componentes reais e se haveria montagem
- A quantidade mínima de pedido era de 5 placas, mas só era necessária 1, então a maior parte dos componentes foi soldada manualmente
- Resistores e capacitores muito pequenos tinham baixo custo adicional, então foi usado o serviço de montagem da JLCPCB para eles
- As placas chegaram 4 dias depois do pedido
Programação do ATtiny85 e validação prévia
- Um ATtiny85 vazio não tem bootloader, portanto não pode ser conectado diretamente por USB como um Arduino e precisa de um programador separado
- Ele foi programado usando os GPIOs de um Raspberry Pi 3 e o avrdude
- Depois de conectar o header do Pi e o chip com 6 jumpers, basta executar um comando
- Antes de conectá-lo diretamente à luz noturna, o funcionamento foi validado primeiro ligando um LED ao pino de saída
- O comportamento final é piscar três vezes e depois permanecer parado
- No vídeo de teste, o número necessário de acionamentos foi corrigido tarde demais, então ele pisca quatro vezes
Processo de instalação e segurança com rede elétrica
- A placa finalizada foi soldada dentro da luz noturna; as peças e o espaço eram muito pequenos, o que dificultou o trabalho
- O capacitor grande da placa original estava instalado com a polaridade invertida, e isso foi confirmado com uma verificação com multímetro
- Como a luz noturna não tem transformador, ao instalar a PCB adicional todo o circuito fica conectado à rede elétrica
- O ATtiny85 deve ser gravado antes de ser colocado no aparelho
- Depois da instalação, não se deve reconectar um cabo USB nem um Raspberry Pi
Automação do sono e funcionamento final
- Quando o relógio informa ao celular o estado de hora de dormir, o celular avisa o Home Assistant, e o Home Assistant liga a luz noturna pela tomada Zigbee
- A PCB energizada espera um pouco para evitar mau funcionamento da luz noturna e então pressiona o botão três vezes, alternando para o nível 1 de brilho
- As sombras da fiação interna aparecem atrás do difusor, mas não surgem na parede do quarto, então não houve problema no uso real
Materiais open source e condições de aplicação
- Os seguintes materiais foram publicados em tymscar/button-presser sob a licença MIT
- Arquivos Gerber para fabricar a mesma placa
- Lista de materiais e esquemático
- Um pequeno código em C executado no ATtiny85
- Antes da aplicação, é necessário realizar as duas verificações com multímetro indicadas no README
- Este circuito só funciona em dispositivos que tenham internamente um barramento de alimentação de 4 a 12 V e cujo sinal seja curto-circuitado ao terra ao pressionar o botão
- Vários aparelhos baratos atendem a essas condições, mas isso não vale para todos os produtos; dispositivos alimentados pela rede elétrica devem ter suas instruções de segurança verificadas antes de qualquer intervenção
Ainda não há comentários.