Índice:

Cronômetro do Arduino Crepúsculo / Madrugada: 15 etapas
Cronômetro do Arduino Crepúsculo / Madrugada: 15 etapas

Vídeo: Cronômetro do Arduino Crepúsculo / Madrugada: 15 etapas

Vídeo: Cronômetro do Arduino Crepúsculo / Madrugada: 15 etapas
Vídeo: Como fazer um Cronômetro no Arduino 2024, Julho
Anonim
Arduino Cronômetro / Cronômetro do amanhecer
Arduino Cronômetro / Cronômetro do amanhecer

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

Lista de peças e ferramentas
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

Prepare display OLED e relógio em tempo real
Prepare 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

Prepare Codificador Rotativo
Prepare 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

Gabinete
Gabinete
Gabinete
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)

Desative o LED de energia do Arduino (opcional)
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

Fonte de alimentação + relé de estado sólido
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

Arduino Nano + fonte de alimentação + relé de estado sólido
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

Arduino Nano + Relógio em tempo real
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

Conectar display OLED
Conectar 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

Codificador rotativo
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

Instalação no gabinete
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

Conectando à rede / luz a ser comutada
Conectando à rede / luz a ser comutada
Conectando à rede / luz a ser comutada
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

Terminando o Gabinete
Terminando 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: