Índice:
- Etapa 1: Peças
- Etapa 2: Configurando o Raspberry Pi
- Etapa 3: Instalando a faixa de LED
- Etapa 4: Controle da faixa de LED
- Etapa 5: Criando o mostrador do relógio
- Etapa 6: Energizando o Pi
- Etapa 7: Complete o circuito e embalagem
- Etapa 8: Faça o upload do código + Concluir
Vídeo: Luz inteligente do despertador reciclado: 8 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
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
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
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
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
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
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
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
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
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.
Segundo Prêmio no Desafio de Velocidade da Faixa de LED
Recomendado:
Despertador inteligente usando Magicbit (Arduino): 10 etapas
Despertador inteligente usando Magicbit (Arduino): Este tutorial mostra como fazer um despertador inteligente usando display OLED na placa de desenvolvimento de Magicbit sem usar qualquer módulo RTC
Estação de solda portátil de material reciclado. / Estación De Soldadura Portátil Hecha Con Material Reciclado .: 8 etapas (com fotos)
Estação de solda portátil de material reciclado. / Estación De Soldadura Portátil Hecha Con Material Reciclado .: Papai era um grande artista e aventureiro, tanto quanto um grande fã da cultura DIY. Só ele fez muitas modificações na casa, que incluem móveis e armários, renovação de lâmpadas antigas e até mesmo modificou sua van Kombi VW para viagens
Despertador inteligente: um despertador inteligente feito com Raspberry Pi: 10 etapas (com imagens)
Despertador inteligente: um despertador inteligente feito com Raspberry Pi: Você sempre quis um relógio inteligente? Se sim, esta é a solução para você! Fiz o Smart Alarm Clock, é um relógio que você pode alterar a hora do alarme de acordo com o site. Quando o alarme disparar, haverá um som (campainha) e 2 luzes
Escala inteligente DIY com despertador (com Wi-Fi, ESP8266, Arduino IDE e Adafruit.io): 10 etapas (com imagens)
Balança inteligente DIY com despertador (com Wi-Fi, ESP8266, Arduino IDE e Adafruit.io): Em meu projeto anterior, desenvolvi uma balança de banheiro inteligente com Wi-Fi. Pode medir o peso do usuário, exibi-lo localmente e enviá-lo para a nuvem. Você pode obter mais detalhes sobre isso no link abaixo: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
GOOB - um despertador inteligente: 15 etapas (com imagens)
GOOB - um despertador inteligente: GOOB é um acrônimo para " Sair da cama ", um nome que se encaixa bem no meu projeto. Queria criar um aparelho que me ajudasse a acordar de manhã, já que não é a tarefa mais fácil. A ideia principal é que o despertador não pare o alarme