Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Relógio e Analisador de Rádio DCF77 v2.0 – Projeto Arduino Mega/UNO

Componentes e Materiais

ComponenteQuantidade
Arduino Mega 25601
Arduino UNO1

Sobre o Projeto

Depois de descobrir a plataforma Arduino, fiquei maravilhado e meu sonho de um dia desenvolver minha própria eletrônica tornou-se realidade.

Como qualquer um faria, comecei com os sketches básicos, mas logo quis fazer algo útil. Como sempre adorei Relógios de Rádio (eles se sincronizam com o sinal DCF77 da Alemanha no meu caso), decidi fazer um relógio que não apenas mostrasse a hora, mas um relógio que me mostrasse o que está acontecendo.

Após centenas de horas mexendo, cometendo incontáveis erros, finalmente tive um relógio funcional com meu próprio código e designs de placa de circuito impresso.

Mais tarde, descobri o superfiltrador DCF77 de Udo Klein, que fornece um sinal limpo quando o sinal de rádio não é tão bom.

Este é um board Arduino Uno separado com o software Superfilter (você pode vê-lo como uma 'caixa preta' autônoma, filtrando o sinal) conectado entre a antena DCF77 e o Arduino Mega rodando meu sketch.

Então fiz a versão 2.0 do primeiro relógio:

Demo

Para ver o vídeo, clique AQUI.

Montado em 'Relógio de Parede'

Para ver o vídeo, clique AQUI.

O Design

O painel frontal e o gabinete:

O design do painel frontal foi feito em um programa gratuito chamado Inkscape.

Produzir o painel frontal provou ser a parte mais difícil. Gastei muito dinheiro tentando fazê-lo em um FabLab local usando cortadora a laser e um tipo especial de Acrílico com revestimento semelhante a alumínio. A ideia era cortar os furos com o laser e gravar o texto e linhas queimando o revestimento muito fino, expondo o acrílico preto abaixo. Mas foi um pesadelo, pois a cortadora a laser não conseguia produzir dentro das tolerâncias que eu precisava devido ao uso intenso e 'abuso' por muitos usuários.

Então encontrei um serviço de fotos online. Eles imprimem em todo tipo de material e um deles era um painel DiBond. O preço era muito bom, 28 Euros incluindo postagem. Mas o resultado foi inicialmente decepcionante porque não imprimiram meu design 1:1, mas ligeiramente ampliado. Portanto, cuidado se você decidir usar este método. Ligue primeiro e pergunte se é possível imprimir 1:1.

Após uma ligação, eles me enviaram outro painel com as dimensões corretas. Ficou melhor do que o esperado, excelente!

Então muita perfuração e fresamento foi necessária.

Código

DCF Analyzer / Clock v2.1

Versão de 2020-01-18: correção do botão de economia de energia.

/* ================================================================================
   DCF77 Analyzer / Clock versão 2
   ================================================================================
   Este sketch é software livre; você pode redistribuí-lo e/ou modificá-lo
   sob os termos da GNU Lesser General Public License...
   Erik de Ruiter 2014-2020
   ...
*/
//----------------------------------------------------------------------------------------------------------
// Bibliotecas
//----------------------------------------------------------------------------------------------------------
#include 
#include 
#include 
#include 
#include 
#include 
//----------------------------------------------------------------------------------------------------------
// Conexões de pinos do Arduino UNO em tabela fácil de ler
//----------------------------------------------------------------------------------------------------------
#define DCF77PIN 2
#define PIRDETECTORPIN 3
#define BUZZERSWITCHPIN 4
#define CHIMESWITCHPIN 5
#define POWERSAVESWITCHPIN 6
#define TEMPSENSORPIN 8
#define TEMPRESETPIN 9
#define MAXIMCCLD 10
#define MAXIMCCCLK 11
#define MAXIMCCDATA 12
// Pinos 22 a 53 apenas para LEDs
#define LED_SUNDAY 22
#define LED_MONDAY 23
#define LED_TUESDAY 24
#define LED_WEDNESDAY 25
#define LED_THURSDAY 26
#define LED_FRIDAY 27
#define LED_SATURDAY 28
#define LED_CEST 29
#define LED_CET 30
#define LED_LEAPYEAR 31
#define LED_RTCERROR 32
#define LED_RTCSYNC 33
#define LED_TEMP 34
#define LED_OPTION1 35
#define LED_OPTION2 36
#define LED_ERRORPT 37
#define LED_ERRORPW 38
#define LED_BUFFERFULL 39
#define LED_MINUTEMARKER 40
#define LED_BUFFEROVERFLOW 41
#define LED_DCFSTATUS 42
#define LED_POWERSAVE 43
#define LED_PARITY1PASS 44
#define LED_PARITY1FAIL 45
#define LED_PARITY2PASS 46
#define LED_PARITY2FAIL 47
#define LED_PARITY3PASS 48
#define LED_PARITY3FAIL 49
#define LED_PIRMOTION 50
// Pinos analógicos
#define BUZZER A7
#define SPEAKERVOLPIN A6
#define CHIMEPIN A5
// USADO para DS1307 RTC
// I2C DATA - conectar ao PCB do Relógio de Tempo Real
// I2C CLOCK - conectar ao PCB do Relógio de Tempo Real
//----------------------------------------------------------------------------------------------------------
// Inicialização DS18B20
//----------------------------------------------------------------------------------------------------------
OneWire ds(TEMPSENSORPIN);
//----------------------------------------------------------------------------------------------------------
// Inicialização Display Matriz Maxim 7219
//----------------------------------------------------------------------------------------------------------
LedControl MaximCC = LedControl(MAXIMCCDATA, MAXIMCCCLK, MAXIMCCLD, 7, false);
//----------------------------------------------------------------------------------------------------------
// Configurações do usuário, definições de variáveis e arrays
//----------------------------------------------------------------------------------------------------------
#define SPEAKERVOLUME 12
#define PERFORM_LED_TEST 1
#define LEDTEST_DELAY_DISPLAYS 600
#define LEDTEST_DELAY_LED_RING 20
#define CONFIGURE_DS18B20 0
#define POWERSAVINGOFFTIME 9
#define POWERSAVINGONTIME 22
#define POWERSAVE_BY_PIR 1
#define PIR_DELAY_TIME 30
#define TEMPRESET_MIDNIGHT 1
// ... (código truncado para brevidade, o arquivo completo está disponível para download)

Sketch do Superfiltrador

// Este é o sketch do Superfiltrador que uso com o DCF Analyzer/Clock 2.0
// Udo Klein fez um trabalho incrível com este filtro
// Erik de Ruiter
#include 
// ... (configurações de pinos e código completo disponível no download)

Peças Personalizadas e Gabinetes

Esquemáticos

FAÇA DOWNLOAD para ver os detalhes! dcf77-analyzer-clock-v2_1_jVZT5sqIwn.zip

Processo de manufatura

  1. Relógio Cuco: História, Artesanato e Evolução Moderna
  2. Relógio POV com Arduino: Construa um Display LED de Persistência de Visão
  3. Construa um Relógio Retrô Numitron com Arduino: Simples, Confiável e Eficiente
  4. Relógio de Parede Estiloso com Anel Neopixel 60 LEDs Adafruit e Arduino
  5. Relógio de Palavras DIY com Arduino – Construa um Display Elegante de Tempo Real
  6. Relógio em Tempo Real com Arduino para Horários de Oração Islâmica
  7. Construa um Spybot Controlado por Bluetooth com Arduino
  8. FlickMote: Controle Remoto IR por Gestos para Casa Inteligente
  9. Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
  10. Construa um Relógio Despertador Confiável com RTC DS1302 e Arduino UNO