Índice:

Luz inteligente do despertador reciclado: 8 etapas (com imagens)
Luz inteligente do despertador reciclado: 8 etapas (com imagens)

Vídeo: Luz inteligente do despertador reciclado: 8 etapas (com imagens)

Vídeo: Luz inteligente do despertador reciclado: 8 etapas (com imagens)
Vídeo: NR-12 Acidente em torno 2024, Novembro
Anonim
Luz Inteligente do Despertador Upcycled
Luz Inteligente do Despertador Upcycled
Luz Inteligente do Despertador Upcycled
Luz Inteligente do Despertador Upcycled
Luz Inteligente do Despertador Upcycled
Luz Inteligente do Despertador Upcycled

Neste projeto, eu monitorei um despertador de corda completamente quebrado. O mostrador do relógio é substituído por 12 LEDs, iluminados por uma faixa de LED ao redor da borda do relógio. Os 12 LEDs informam a hora e a faixa de LEDs é programada para funcionar como um alarme, aumentando o brilho total na hora definida. Tudo é controlado por um Raspberry Pi Zero permitindo inúmeras possibilidades de integração e expansão, como sincronizar automaticamente o alarme de luz com o alarme do seu telefone ou piscar os LEDs ao receber um e-mail.

O projeto usa componentes relativamente baratos ou reaproveitados - a única coisa que acabei comprando foi o regulador de tensão. Tudo o mais que eu tinha por aí, como um pedaço de tira de LED. Este Instructable irá guiá-lo através de como eu dei uma nova vida ao meu relógio quebrado e espero que possa inspirá-lo a fazer um upgrade em algo seu.

Etapa 1: Peças

Peças
Peças
Peças
Peças
Peças
Peças

Para controlar tudo, vamos usar um Raspberry Pi Zero, pois é pequeno, custa muito pouco e pode ser conectado a Wi-Fi, o que significa que não precisamos de um relógio em tempo real e, portanto, podemos facilmente atualizar o código remotamente de um laptop. A menos que você tenha um Pi Zero W, conectaremos a uma rede WiFi usando um dongle WiFi USB.

Aqui está uma lista das peças que usei, mas a maioria das coisas pode ser substituída por alternativas adequadas. Por exemplo, em vez de um Raspberry Pi, você poderia usar um Arduino com um relógio em tempo real para controlar o projeto.

Peças usadas

  • Um velho despertador
  • 30 cm de faixa de LED branco quente
  • 1x Raspberry Pi Zero + cartão micro SD
  • 1x dongle USB WiFi + conversor micro USB para USB
  • 12x LEDs
  • Resistores 12x 330ohm (use maior se quiser dimmer LEDs)
  • 1x TIP31a (ou outro transistor de potência npn ou MOSFET)
  • 1x resistor 1k
  • 1x conversor de buck ajustável LM2596 DC-DC (diminui 12V para 5V para o Raspberry Pi)
  • Fonte de alimentação 1x 12v (+ forma de entrar em seu projeto)
  • 10cm x 10cm de madeira para o mostrador do relógio (deve ser adequadamente fino para montar seus LEDs)
  • Vários pedaços de fio de cores diferentes

Coisas úteis para ter

  • Ferro de soldar + solda
  • Cola quente
  • Multímetro
  • Tábua de pão
  • Pinos de cabeçalho femininos
  • Leitor ou conversor de cartão micro SD
  • Um computador
  • Adaptador mini HDMI + tela HDMI se você quiser usar o ambiente de desktop do Pi

Etapa 2: Configurando o Raspberry Pi

Configurando o Raspberry Pi
Configurando o Raspberry Pi
Configurando o Raspberry Pi
Configurando o Raspberry Pi

Sistema operacional

Como o Raspberry Pi não será conectado a uma tela, optei por usar o Raspbian Buster Lite, que não vem com um ambiente de desktop. Se você é mais novo no Raspberry Pi, pode optar pelo Raspbian Buster padrão, que vem com um desktop. Se você não tem certeza de como instalar seu sistema operacional, este é um ótimo recurso. Ambos os sistemas operacionais podem ser baixados do site Raspberry Pi.

Por enquanto, alimente o Pi por meio de sua entrada de alimentação Micro USB. Também conecte o dongle WiFi USB.

Conversando com o Raspberry Pi

Depois que tudo estiver empacotado, é muito difícil acessar o Pi se você quiser alterar o código etc. O uso do SSH permite conectar ao Pi e controlá-lo de outro computador. Isso não está ativado por padrão, mas podemos fazer simplesmente criando uma pasta chamada ssh na partição de inicialização do seu cartão SD. Se você já estiver conectado ao seu Pi, também pode fazer isso digitando sudo raspi-config no Terminal, navegando até Opções de interface> SSH e escolhendo Sim para habilitá-lo.

Agora você pode se conectar ao seu Pi em outro computador. No Mac ou Linux, você pode usar seu aplicativo de terminal, mas na maioria das versões do Windows, você terá que instalar um cliente SSH, como PuTTY. Conecte-se ao Pi digitando ssh pi @ onde o nome do host é substituído pelo nome do host do endereço IP do seu Pi. O nome do host padrão é raspberrypi.local. Ele irá pedir uma senha que, se você ainda não a alterou, é framboesa.

Instalando coisas necessárias

Primeiro certifique-se de que tudo está atualizado executando sudo apt update e então sudo apt full-upgrade.

Para ter certeza do que precisamos controlar os pinos GPIO no Pi digite sudo apt-get install python-rpi.gpio e sudo apt-get install python3-rpi.gpio. Eles já devem estar instalados na versão completa do Raspbian.

O código

Aqui está o código para baixar para fazer tudo funcionar. Se você estiver usando um ambiente de área de trabalho, cole-os na pasta Documentos.

Se você estiver usando a linha de comando do SSH, navegue até sua pasta pessoal digitando cd ~ / Documents e pressionando enter. Faça um novo arquivo chamado test1.py com nano test1.py. Isso abrirá o editor de texto nano, onde você pode colar o código do arquivo test1.py baixado. CTRL-O e pressione Enter para salvar o arquivo e CTRL-X para sair do editor. Repita o processo para os arquivos restantes.

Etapa 3: Instalando a faixa de LED

Instalando a faixa de LED
Instalando a faixa de LED
Instalando a faixa de LED
Instalando a faixa de LED

Primeiro coloque a tira de LED no relógio para ver quanto você precisa, marque esse comprimento e corte a tira no próximo ponto de corte, conforme mostrado. É muito mais fácil soldar os fios à tira antes que ela prenda no lugar. Este é um guia muito bom sobre como fazer isso, mas se você não tiver certeza, eu apenas praticaria na junta de solda na peça da qual você acabou de cortar a tira. Solde um fio no ponto de solda positivo e um fio no negativo. Certifique-se de testar o funcionamento da faixa de LED antes de colocá-la no relógio.

Como a tira de LED que usei já havia sido usada antes, ela havia perdido o revestimento autoadesivo, então tive que usar cola quente para fixar a tira ao redor da borda do relógio. Se você tiver comprimento excessivo, cubra o ponto onde os fios estão conectados. Você pode querer instalar a tira mais tarde, mas achei mais fácil guardá-la no relógio.

Etapa 4: Controle da faixa de LED

Controlando a faixa de LED
Controlando a faixa de LED

Conectando a faixa de LED

A faixa de LED funciona com 12 V, portanto, não pode ser alimentada diretamente do Pi. Para controlá-los, usaremos um transistor de potência (por exemplo, TIP31a) conectado ao Pi como mostrado acima. Eu recomendo primeiro verificar se tudo isso funciona em uma placa de ensaio.

  • Conecte o GPIO 19 à base por meio de um resistor de 1k
  • O emissor deve ser conectado ao GND
  • Conecte o coletor ao terminal negativo da faixa de LED
  • Conecte o terminal positivo da faixa de LED a + 12V

Testando

Na linha de comando, vá para a pasta de documentos (cd ~ / Documentos) e digite python test1.py e digite. Você deve ver a faixa de LED aumentar e diminuir o brilho. Para sair do programa, pressione CTRL-C. Você pode editar o arquivo (nano test1.py) para alterar a velocidade e o brilho no programa.

import RPi. GPIO as GPIOimport time GPIO.setmode (GPIO. BCM) # Use a pinagem de BCM GPIO.setwarnings (False) # Ignore avisos sobre pinos sendo usados para outras coisas ledStripPin = 19 # A tira de LED é conduzida a partir deste pino GPIO.setup (ledStripPin, GPIO. OUT) # Definir ledStripPin como uma saída pwm = GPIO. PWM (ledStripPin, 100) # PWM em ledStripPin com frequência 100Hz dutyCycle = 0 # Brilho inicial como porcentagem pwm.start (dutyCycle) try: enquanto True: for dutyCycle in range (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0,05) para dc no intervalo (95, -1, -1): # Fade down pwm. ChangeDutyCycle (dc) time.sleep (0,05) exceto KeyboardInterrupt: # Pressione CTRL-C para sair e, em seguida: pwm.stop () # Pare o pwm GPIO.cleanup () # Limpe os pinos GPIO

Etapa 5: Criando o mostrador do relógio

Fazendo o mostrador do relógio
Fazendo o mostrador do relógio
Fazendo o mostrador do relógio
Fazendo o mostrador do relógio
Fazendo o mostrador do relógio
Fazendo o mostrador do relógio

Corte o pedaço de madeira para o seu relógio no tamanho certo para que ele caiba no seu relógio. Eu fiz o meu descansar a cerca de 3 cm da frente. Faça 12 furos com o diâmetro de seus LEDs (geralmente 3 mm ou 5 mm) espaçados 30 graus um do outro. Lixe a frente com a face para baixo e aplique um acabamento de sua escolha. Na parte de trás, coloque os LEDs de forma que eles apontem para a frente. Usei cola quente para manter os LEDs no lugar com o terminal positivo (fio mais longo) voltado para dentro. O tamanho do meu relógio significava que eu poderia soldar todos os terminais negativos juntos (veja acima), então apenas um fio foi necessário para conectar todos os 12 LEDs ao GND. Em seguida, solde um fio em cada LED.

Se você quiser testar isso em uma placa de ensaio, primeiro lembre-se de usar um resistor (330ohm é o padrão) em série com cada LED antes de conectá-lo a um dos pinos Pi GPIO. Brinque com o valor do resistor que você usa para obter um nível de brilho que o agrade. Um t-cobbler é realmente útil para quebrar os pinos do Pi em uma placa de ensaio, embora você precise soldar os pinos do cabeçalho para isso. Use test2.py (execute usando python test2.py), mas certifique-se de primeiro editar o programa e inserir os pinos GPIO do Pi que você usou para cada LED.

importar RPi. GPIO como GPIO

import time GPIO.setmode (GPIO. BCM) # Use a pinagem BCM GPIO.setwarnings (False) # Ignore os avisos sobre os pinos sendo usados para outras coisas # Substitua um, dois,… pelo número do pino correspondente hourPin = [um, dois, três, quatro, cinco, seis, sete, oito, nove, dez, onze, doze] # Os pinos aos quais os LEDs estão conectados de 1-12 para i no intervalo (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Defina todos os hourPins como saídas GPIO.output (hourPin , 0) # Certifique-se de que todos os LEDs estão desligados try: while True: for i in range (0, 12) GPIO.output (hourPin , 1): time.sleep (0,05) para i no intervalo (0, 12) GPIO.output (hourPin , 0): time.sleep (0,05) exceto KeyboardInterrupt: # Pressione CTRL-C para sair e então: GPIO.cleanup () # Limpe os pinos GPIO

Etapa 6: Energizando o Pi

Energizando o Pi
Energizando o Pi

Precisamos de uma maneira fácil de obter 5 V para o Pi Zero para que possamos nos livrar do cabo micro USB que usamos para alimentá-lo até agora. Há uma série de soluções que diminuem 12 V para 5 V, como um regulador de tensão linear LM7805, mas eles não são muito eficientes, então optei por usar o conversor de buck ajustável mais eficiente usando o chip LM2596. NB, com isso você terá que girar o potenciômetro até que a tensão de saída seja reduzida para 5 V conforme necessário, então você precisará de alguma forma de medir a tensão.

Usar o LM2596 é simples: conecte + 12V em IN +, aterramento em IN-. O Pi pode ser conectado diretamente a 5 V conectando OUT + a um dos pinos de 5 V do Pi, mas certifique-se de ter alterado a tensão de saída para 5 V antes de fazer isso ou você vai fritar seu Pi!

Etapa 7: Complete o circuito e embalagem

Complete o circuito e embalagem
Complete o circuito e embalagem
Complete o circuito e embalagem
Complete o circuito e embalagem
Complete o circuito e embalagem
Complete o circuito e embalagem
Complete o circuito e embalagem
Complete o circuito e embalagem

Agora cobrimos todos os três elementos do circuito que são mostrados juntos no circuito geral acima. Para economizar espaço e deixar o circuito mais limpo, coloque seu circuito em uma placa de fita ou placa de protótipo. Solde primeiro os menores componentes, os resistores, depois o transistor de potência, todos os conectores e finalmente os fios. Planeje seu circuito antes de soldar para ter certeza de que há espaço para tudo.

Eu conectei tudo em um PCB de prototipagem e usei pinos de encaixe fêmeas para que o Pi pudesse ser montado diretamente no PCB. Os LEDs na face do relógio são conectados por meio de resistores em um lado da placa e eu mantive espaço no outro lado da placa para o transistor de potência e livre para qualquer outro circuito que possa querer adicionar mais tarde.

Anexe o mostrador do relógio ao relógio e certifique-se de que todos os componentes eletrônicos se encaixem. Tudo se encaixou bem para mim, então talvez seja necessário fazer alguns ajustes. Conecte a fonte de alimentação e execute test1.py e test2.py no SSH para verificar se tudo funciona antes de conectar a parte traseira.

Etapa 8: Faça o upload do código + Concluir

Faça o upload do código + Concluir
Faça o upload do código + Concluir
Faça o upload do código + Concluir
Faça o upload do código + Concluir
Faça o upload do código + Concluir
Faça o upload do código + Concluir

O código

Finalmente, se ainda não o fez, carregue o código e adapte-o como desejar (usando nano filename.py). A vantagem de se conectar ao Pi por SSH é que você pode atualizar o código sem abrir o relógio.

Esses programas Python da Etapa 2 fazem o seguinte:

  • light_clock_simple.py simplesmente exibe a hora nos LEDs e aumenta e diminui gradualmente a faixa de LED em determinados momentos
  • light_clock_pwm.py é o mesmo que acima, mas também permite que o brilho dos LEDs seja reduzido e exibe os minutos com um brilho diferente das horas. Você precisará brincar com os níveis de brilho de ambos para que o contraste entre os dois seja perceptível

Eles devem fornecer uma base sólida para adicionar ao código, por exemplo, você pode querer adicionar um botão para adiar o alarme de luz.

Para iniciar o programa quando o Pi é inicializado, precisamos adicionar '@reboot nohup python light_clock_pwm.py &' ao final do arquivo crontab que pode ser aberto a partir do terminal com crontab -e. Reinicie o Raspberry Pi para verificar se está funcionando com sudo shutdown -r now.

Potenciais adições

Aqui estão algumas idéias de funcionalidades extras que podem ser adicionadas

  • Adicionando um botão de soneca
  • Adicionando um modo de lâmpada
  • Conectando-se ao IFTTT (por exemplo, a luz pode acender quando o alarme do seu telefone é desligado / pisca quando o e-mail é recebido)
  • Adicionando capacidade de toque, ou seja, transformar o relógio em uma lâmpada de toque

Você pode notar ao usar o PWM que às vezes, especialmente com brilho mais baixo, o LED pisca um pouco. Isso ocorre porque o Pi usa o software PWM para que os processos da CPU possam afetar o ciclo de trabalho. Ter menos processos em execução ajudou nisso, então usei o sistema operacional Raspbian Lite reduzido. O hardware PWM também está disponível em alguns pinos, portanto, se a oscilação for um problema, pode ser algo a se examinar.

Espero que você tenha achado este instrutivo informativo e se sinta inspirado para atualizar um despertador antigo ou usar elementos do código em seu próprio projeto.

Desafio de velocidade da tira de LED
Desafio de velocidade da tira de LED
Desafio de velocidade da tira de LED
Desafio de velocidade da tira de LED

Segundo Prêmio no Desafio de Velocidade da Faixa de LED

Recomendado: