Índice:
- Etapa 1: Lista de peças e ferramentas
- Etapa 2: preparar display OLED e relógio em tempo real
- Etapa 3: preparar o codificador rotativo
- Etapa 4: Gabinete
- Etapa 5: Desative o LED de energia do Arduino (opcional)
- Etapa 6: Fonte de alimentação + relé de estado sólido
- Etapa 7: Arduino Nano + Fonte de alimentação + Relé de estado sólido
- Etapa 8: Arduino Nano + Relógio em tempo real
- Etapa 9: conectar o display OLED
- Etapa 10: Codificador Rotativo
- Etapa 11: instalação no gabinete
- Etapa 12: Conectando à rede / luz a ser comutada
- Etapa 13: Concluindo o Gabinete
- Etapa 14: Programando o Arduino
- Etapa 15: Configurando a hora e os horários de troca
Vídeo: Cronômetro do Arduino Crepúsculo / Madrugada: 15 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Resumo:
Este temporizador baseado em Arduino pode alternar uma luz de 220 V ao anoitecer, amanhecer ou hora especificada.
Introdução:
Algumas das luzes da minha casa são acesas automaticamente ao entardecer, até um horário pré-definido ou até o amanhecer (a noite toda).
A localização das luzes não permite o uso de sensor de luz. Os cronômetros regulares disponíveis são ativados em um horário específico. Para ligar durante o crepúsculo, portanto, é necessário ajustar regularmente a configuração do programa do temporizador.
Como um bom desafio, decidi construir um cronômetro autônomo baseado em Arduino personalizado. Ele usa um relógio de tempo real e a biblioteca Dusk2Dawn para determinar a hora em que as luzes devem ser ligadas ou desligadas. O invólucro para este cronômetro é impresso em 3D e pode ser encontrado no Thingiverse. O código do Arduino para este projeto pode ser encontrado no GitHub.
Na criação deste cronômetro me inspirei em diversos designs e circuitos da internet. Meus agradecimentos a todos os contribuidores que não são mencionados explicitamente.
Para facilitar a leitura, diagramas parciais são mostrados nas etapas onde necessário, em vez de um diagrama de circuito completo.
Soluções alternativas:
Em vez de um temporizador independente, existem muitas soluções em que um sistema de automação residencial inteligente controla as luzes. Meu objetivo era ter uma solução independente, que não dependesse de conectividade WIFI (ou outra).
Restrições:
O código fornecido com este projeto incluiu uma implementação de mudanças de horário de verão com base no sistema europeu de horário de verão.
Etapa 1: Lista de peças e ferramentas
Partes:
O custo total das peças (excluindo impressão 3D) é de aproximadamente € 30, -.
- Arduino Nano V3 (compatível) sem cabeçalhos
- Fonte de alimentação 5 V 0,6 A (34 x 20 x 15 mm)
- Relé de estado sólido 5V - Ativo baixo - 2A 230VAC
- Relógio em tempo real DS3231 (pequeno)
- Tela OLED de 0,96”SPI 128 * 64 pixels
- Codificador rotativo - EC11 - 20mm
- Botão de eixo de 6 mm 15 mm * 17 mm
- Placa de circuito impresso da placa de ensaio,
- 4 * parafusos M3x25mm
- Invólucro impresso em 3D
- Tubulação termorretrátil
- Fios
- Bloco de terminais de parafuso (para conectar fios neutros)
Ferramentas necessárias:
- Ferro de solda
- Fio de solda
- Bomba de dessoldagem
- Decapantes de fio
- Cortadores
- Impressora 3D (para imprimir caixa)
- Diversas ferramentas pequenas
AVISO
Este circuito funciona em 230v AC e se você não está acostumado a trabalhar com tensão de rede ou não tem ampla experiência em trabalhar com tensão de rede de 230v AC, fique longe deste projeto
Não assumo qualquer responsabilidade por quaisquer perdas ou danos decorrentes diretamente ou como consequência do seguimento deste projeto
É sempre aconselhável tomar os devidos cuidados e precauções ao trabalhar com a rede elétrica CA
Etapa 2: preparar display OLED e relógio em tempo real
A caixa impressa em 3D foi projetada para um tamanho mínimo. Como resultado, os cabeçalhos do display OLED e o relógio em tempo real precisam ser removidos.
Em preparação para a próxima etapa, limpe qualquer solda restante dos orifícios com a bomba de dessoldagem.
Etapa 3: preparar o codificador rotativo
O codificador rotativo possui conectores frágeis. Para evitar danos, monte uma placa de circuito impresso no codificador.
Na foto a conexão de aterramento (para o canto superior direito e inferior central) também já está preparada.
Nota: Certifique-se de que o codificador rotativo com placa de circuito impresso se encaixa no gabinete sem tocar no Arduino. Pode ser necessário retificar a placa de circuito impresso para obter um ajuste confortável.
Etapa 4: Gabinete
Imprima as três partes do gabinete com uma impressora 3D. Consulte as instruções no Thingiverse.
Etapa 5: Desative o LED de energia do Arduino (opcional)
Para evitar um brilho verde no cronômetro, o LED de energia do Arduino pode ser desativado.
Observe que esta modificação é opcional.
A modificação no Arduino Nano consiste em remover o resistor próximo ao led de força (veja o círculo vermelho na foto).
Etapa 6: Fonte de alimentação + relé de estado sólido
Nesta etapa, a fonte de alimentação e o relé de estado sólido são combinados e montados na parte inferior do gabinete.
As conexões entre a fonte de alimentação e o relé são feitas na parte inferior desses componentes. O bloco de terminais de parafuso do relé será usado para conectar ao Arduino.
Observação: ao fazer conexões, certifique-se de que os orifícios de montagem do relé de estado sólido sejam mantidos livres.
- Solde um fio de conexão entre o relé de estado sólido A1 a uma das conexões CA da fonte de alimentação
- Solde um fio para a outra conexão CA da fonte de alimentação (isso será conectado ao bloco de terminais de parafuso neutro na etapa 7)
- Solde um fio entre a fonte de alimentação -Vo para relé DC-
- Solde um fio para conectar a fonte de alimentação + Vo ao relé DC +
Nota: Pode ser necessário encurtar os fios da fonte de alimentação e do relé para caber no gabinete.
Etapa 7: Arduino Nano + Fonte de alimentação + Relé de estado sólido
Nesta etapa, o Arduino Nano é conectado à fonte de alimentação e ao relé de estado sólido.
- Corte dois fios de aproximadamente 70 mm de comprimento. Tira 30 mm de isolamento de um lado e 4 mm do outro lado.
- Solde o lado com 30 mm de isolamento descascado para o Arduino + 5V e GND, com o fio atravessando
- Corte dois tubos termorretráteis de 20 mm de comprimento e monte-os sobre a parte decapada de 25 mm. Isso isola os fios até a conexão com o bloco de terminais de parafuso de montagem DC + e DC- do relé de estado sólido.
- Observe que os fios para GND e + 5V precisam cruzar para conectar corretamente ao bloco de terminais de parafuso do relé.
- Corte um fio de aproximadamente 40 mm de comprimento e tire 4 mm de isolamento de ambas as extremidades. Solde um lado da conexão A2 no LADO DE FRENTE do Arduino e conecte o outro lado à conexão CH1 do bloco de terminais de parafuso de montagem de estado sólido.
AVISO
O Arduino é alimentado diretamente pela fonte de alimentação estável de + 5 V em vez de usar o regulador de alimentação interno do Arduino. Portanto, não é seguro conectar o USB quando o Arduino recebe energia da fonte de alimentação.
Sempre desconecte a alimentação de 230 VCA antes de usar a conexão USB do Arduino.
Etapa 8: Arduino Nano + Relógio em tempo real
Nesta etapa, o relógio de tempo real é conectado ao Arduino, em parte usando os cabos preparados na etapa anterior.
- Solde o fio vindo do Arduino GND (também conectado ao DC- do relé) para '-' do relógio de tempo real.
- Solde o fio vindo do Arduino + 5V (também conectado ao DC + do relé) ao ‘+’ do relógio de tempo real.
- Corte dois fios de aproximadamente 40 mm de comprimento e descasque 4 mm de isolamento de ambas as extremidades.
- Solde um fio entre o Arduino A4 e o relógio de tempo real D (SDA).
- Solde um fio entre o Arduino A5 e o relógio de tempo real C (SCL).
- Molde os fios do relógio de tempo real para garantir que não interfiram com o codificador rotativo. Para isso, os fios precisam estar na parte inferior do gabinete.
Etapa 9: conectar o display OLED
Nesta etapa, o display OLED SPI é adicionado ao Arduino.
- Corte 2 fios de 65 mm de comprimento e descasque 4 mm de isolamento de ambas as extremidades.
- Solde um fio para a conexão GND do display OLED. Solde este fio ao fio isolado do tubo termorretrátil vindo do GND do Arduino (consulte a etapa 4) e conecte os dois fios ao bloco de terminais de parafuso de montagem CC do relé de estado sólido.
- Solde um fio para a conexão VCC do display OLED. Solde este fio ao fio isolado do tubo termorretrátil vindo do Arduino + 5V (consulte a etapa 4) e conecte os dois fios ao bloco de terminais de parafuso de montagem DC + do relé de estado sólido.
- Corte 5 fios de 65 mm de comprimento e descasque 4 mm de isolamento de ambas as extremidades.
- Solde um fio para conectar D0 (CLK) ao Arduino D10
- Solde um fio para conectar D1 (MOSI / DATA) ao Arduino D9
- Solde um fio para conectar RES (RT) ao Arduino D8
- Solde um fio para conectar DC ao Arduino D11
- Solde um fio para conectar CS ao Arduino D12
Nota: a ordem dos fios da tela não é lógica. Este é o resultado de primeiro usar o exemplo Adafruit e, em seguida, alterar as conexões, porque usar D13 resulta em um LED vermelho no Arduino o tempo todo.
Alternativa
É possível usar um pedido 'normal' para as conexões SPI. Para isso, a definição de saída digital do programa Arduino em oledcontrol.cpp deve ser ajustada de acordo:
// Usando o software SPI
// definições de pinos
# define CS_PIN 12
# define RST_PIN 8
# define DC_PIN 11
#define MOSI_PIN 9
# define CLK_PIN 10
Etapa 10: Codificador Rotativo
O diagrama mostra as conexões do Arduino com o codificador rotativo (codificador visto de cima).
- Corte 4 fios de 45 mm e descasque 4 mm de isolamento de ambas as extremidades.
- Conecte o Arduino GND aos conectores superior direito e inferior do meio do codificador
- Conecte o Arduino D2 à parte inferior esquerda do codificador
- Conecte o Arduino D3 ao canto inferior direito do codificador
- Conecte o Arduino D4 ao canto superior esquerdo do codificador
Etapa 11: instalação no gabinete
Instale todos os eletrônicos na parte inferior do gabinete:
- Deslize o Arduino no slot vertical
- Deslize o relógio em tempo real no compartimento inferior
- Deslize a fonte de alimentação e o relé no compartimento superior, certifique-se de que o relé esteja apoiado em seus suportes.
Etapa 12: Conectando à rede / luz a ser comutada
AVISO
Certifique-se de tomar os devidos cuidados e precauções ao trabalhar com a rede elétrica CA, certifique-se de que a rede elétrica CA esteja desconectada
Não assumo qualquer responsabilidade por quaisquer perdas ou danos decorrentes diretamente ou como consequência do seguimento deste projeto
- Conecte a fase da rede elétrica CA ao bloco de terminais de parafuso A1 (esquerdo) do relé.
- Conecte a fase da luz a ser comutada ao bloco terminal de parafuso B1 (direito) do relé.
- Use um bloco de terminais de parafuso separado para conectar o fio neutro da rede elétrica CA, o fio neutro da luz e o fio neutro da fonte de alimentação.
- Para aliviar a tensão, monte uma braçadeira ao redor de cada um dos cabos de alimentação.
Etapa 13: Concluindo o Gabinete
Nesta etapa, a montagem no gabinete é concluída
- Deslize o display OLED através do orifício de montagem do display na parte central do gabinete.
- Deslize o codificador rotativo através do orifício na parte do meio, certifique-se de que o anti-rotação esteja alinhado. Monte o codificador rotativo usando a arruela e a porca incluídas.
- Monte a parte superior do gabinete e feche o gabinete montando os quatro parafusos M3x25mm na parte inferior.
Etapa 14: Programando o Arduino
AVISO
O Arduino é alimentado diretamente pela fonte de alimentação estável de + 5 V em vez de usar o regulador de alimentação interno do Arduino. Portanto, não é seguro conectar o USB quando o Arduino recebe energia da fonte de alimentação.
Sempre desconecte a alimentação de 230 VCA antes de usar a conexão USB do Arduino.
Recupere o programa de cronômetro do Arduino do GitHub.
Este programa usa o IDE Arduino, que pode ser obtido aqui.
O programa usa as seguintes bibliotecas adicionais:
SSD1303Ascii
Biblioteca Arduino Wire
Observe que a biblioteca dusk2dawn também é usada, mas incluída como código devido a uma mudança em sua interface.
Para garantir o cálculo correto do crepúsculo / amanhecer, a longitude, a latitude e o fuso horário devem ser definidos.
Conforme descrito no exemplo do anoitecer2dawn, uma maneira fácil de encontrar a longitude e latitude para qualquer local é encontrar o local no Google Maps, clicar com o botão direito do mouse no local no mapa e selecionar "O que é aqui?". Na parte inferior, você verá um cartão com as coordenadas.
Longitude e latitude são codificadas no programa, em Dusk2Dawn.cpp linha 19 e 20:
/ * A latitude e a longitude de sua localização devem ser definidas aqui.
* * DICA: Uma maneira fácil de encontrar a longitude e a latitude de qualquer local é * encontrar o local no Google Maps, clicar com o botão direito do mouse no local no mapa e * selecionar "O que é aqui?". Na parte inferior, você verá um cartão com as coordenadas *. * / #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht
O fuso horário também está codificado na linha Dusk2Dawn.cpp 24. Por padrão, é definido como Holanda (GMT + 1):
/ * Insira seu fuso horário (deslocamento para GMT) aqui.
* / #define TIMEZONE 1
Ao programar o Arduino pela primeira vez, a memória EEPROM precisa ser inicializada. Para isso, altere a linha 11 do timer.cpp para fazer a inicialização da EEPROM:
// mude para verdadeiro para a primeira programação
#define INITIALIZE_EEPROM_MEMORY falso
Faça upload do programa para o Arduino e inicialize o Arduino.
Desative a inicialização da EEPROM e carregue o programa para o Arduino novamente. O cronômetro agora se lembrará das configurações de tempo de troca quando reiniciado.
Etapa 15: Configurando a hora e os horários de troca
Conceitos de interação do usuário:
- Um toque curto é usado para confirmar as seleções. Além disso, na tela principal do temporizador, um toque curto liga ou desliga a luz.
- Pressionar longamente é usado para entrar no menu a partir da tela principal do cronômetro. Em qualquer lugar no menu, um toque longo retornará à tela principal do cronômetro.
- ‘>’ Cursus de seleção. Este cursor indica a opção selecionada em um menu.
Tela principal do cronômetro
A tela principal do cronômetro mostra:
Dia da semana Su
Hora atual 16:00
Estado atual do temporizador e próximo tempo de mudança do temporizador DESLIGADO até 17:12
Amanhecer e anoitecer Amanhecer 08:05 Crepúsculo 17:10
Definir a hora correta
Pressione e segure para entrar no menu. As seguintes opções são mostradas:
BackSet timeWeek day programOpções do programa de fim de semana
Selecione definir hora para definir a data e a hora do relógio em tempo real. Insira os valores corretos para:
YearMonthDayTime
O cronômetro determina automaticamente o dia da semana. A mudança do horário de verão também é feita automaticamente. O horário de verão é implementado apenas para o fuso horário europeu.
Configurando o programa de cronômetro
O cronômetro possui 2 programas, um para dias de semana, outro para fim de semana. Observe que sexta-feira é considerada parte do fim de semana, as luzes podem permanecer um pouco mais.
Cada temporizador tem um momento de ligar e desligar. O momento pode ser:
- Hora: hora exata especificada
- Amanhecer: mudar com base na hora calculada do amanhecer
- Crepúsculo: mude com base na hora calculada do crepúsculo
Para o crepúsculo e o amanhecer, é possível inserir um valor de correção de 59 minutos antes ou depois.
Exemplos:
Para acender a luz a noite toda, selecione ligar ao (crepúsculo + 10min), desligue ao (amanhecer - 10min)
Para acender uma luz ao entardecer, selecione ligar ao anoitecer, desligar às: 22h30.
Opções
Na tela de opções, um tempo limite pode ser definido para alternar a tela.
Quando a tela é desligada, pressionar o botão rotativo do codificador retornará à tela principal do cronômetro.
Recomendado:
Cronômetro com Arduino e codificador giratório: 5 etapas
Cronômetro com Arduino e Codificador Rotativo: O cronômetro é uma ferramenta muito utilizada tanto em atividades industriais quanto domésticas. Esta montagem é barata e fácil de fazer. Também é muito versátil, podendo carregar um programa escolhido de acordo com as necessidades. Existem vários programas escritos por mim, para Ardui
Cronômetro do dever de casa feito pelo Arduino: 5 etapas
Cronômetro do dever de casa feito pelo Arduino: Seu filho está escrevendo o dever de casa por horas? Seu filho se distrai facilmente com outras pessoas quando faz o dever de casa? Hoje, tentei fazer a melhor solução para esse conflito: um cronômetro feito pelo Arduino. Por que tento fazer este cronômetro em vez de
Cronômetro Arduino Leonardo: 3 etapas
Cronômetro Arduino Leonardo: Crédito: https://www.instructables.com/id/Arduino-Stopwatch… Este design de cronômetro originou-se do link acima, que é um cronômetro que conta a partir de 1, enquanto este conta regressivamente a partir de 60 segundos . A maior parte do código que usei segue o original
Como fazer o cronômetro de lavagem DIY Arduino de 30 segundos, PARE A PROPAGAÇÃO DE COVID: 8 etapas
Como fazer um Cronômetro de Lavagem de 30 Segundos Arduino DIY, PARE A PROPAGAÇÃO DE COVID: Olá
Cronômetro digital tudo em um (relógio, cronômetro, alarme, temperatura): 10 etapas (com imagens)
Cronômetro Digital All in One (Relógio, Cronômetro, Alarme, Temperatura): Estávamos planejando fazer um Cronômetro para alguma outra competição, mas posteriormente também implementamos um relógio (sem RTC). À medida que entramos na programação, nos interessamos em aplicar mais funcionalidades ao dispositivo e acabamos adicionando DS3231 RTC, como