Relógio Matriz NTP LED com DS3231, BME280, BH1750 e ESP01
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Sobre este projeto
Foi isso que me levou ao Arduino's. Eu encontrei o LED Word Clock de Nick e pensei em fazer isso.
Desde que baixei seu código, eu o modifiquei para incluir sensores e botões extras, além de adicionar um ESP01.
O BH1750 é usado para escurecer automaticamente a tela, dependendo das condições de iluminação, e pode desligar a tela à noite. O BME280 mostra a temperatura, umidade e pressão. O ESP01 é usado para obter o tempo de pool.ntp.org.
Os botões extras existem para facilitar o ajuste das configurações. Você pode ajustar as configurações do sensor de luz usando os botões, bem como alterar as fontes e as configurações NTP / DST / UTC.
Seis novas fontes foram adicionadas, criei as fontes usando:http://dotmatrixtool.com/.
Fiz algumas alterações no word clock, agora ele tem mais palavras e mudei um pouco para o PROGMEM para economizar RAM.
Página do projeto de Nick:https://123led.wordpress.com/mini-led-clock/
Meu código:https://github.com/Ratti3/miniclock
O código agora está completo, exceto por bugs desconhecidos e um ajuste aqui e ali, farei um caso para isso.
Você precisará ajustar o código do sensor de luz para corresponder às suas condições de luz, codifiquei isso durante a luz do sol forte sentado ao lado de uma janela.
Um ESP01 é usado para obter a hora via NTP, o ESP01 é codificado para hibernar (wi-fi desligado) quando não for necessário e é ativado via serial para obter a hora no formato UNIX. O nome SSID e a senha são passados por meio do código Arduino para conveniência.
Esta versão também possui cálculos DST / UTC e BST. Essas configurações podem ser ajustadas ou desativadas por meio do menu.
As configurações são salvas na EEPROM, ou seja, se você desligar e ligar novamente, as alterações feitas por meio do menu serão salvas.
Estes são os arquivos de código no Github:
Código no Github [https://github.com/Ratti3/miniclock]:Arduino LEDClock32x8.ino ProgmemData.hArduino ESP-01_NTP.ino LEDClock32x8_ESP01-NTP.ino ProgmemData.h
Quando o ESP01 estiver em execução, o Arduino Serial mostrará isso:
Arduino:Solicitação NTP enviada para ESP01ESP01:Solicitação NTP recebida do Arduino [tentativa 1 de 3] Conectando-se ao SSID:TheInternets .... connectedSSID:TheInternets, Endereço IP:192.168.0.135Signal Strength (RSSI):-42 dBm Enviando pacote NTP para:195.195.221.100 [tentativa 1] Enviando pacote NTP para:195.195.221.100 [tentativa 2] UNIX1562848457 Desativando WiFi .... ok
Mais fotos e instruções em breve ...
Juntando tudo:
Fiação:
DS3231, BH1750 e BME280:SCL PINS =A5 SDA PINS =A4 VCC =3.3vLED Matriz:CLK =D11 CS =D10 DIN =D12 VCC =5vSwitches:D2 - Menu D3 - Data / + D4 - Temp / - D5 - Opções de exibição ESP01 - D7 opcional - Pino TX de ESP01 D6 - Pino RX de ESP01
Estas são as variáveis globais que você pode alterar:
// Variáveis globais (padrões alteráveis), os números entre [] colchetes são o local de armazenamento da EEPROM para esse valor // Configurações do relógio // [200] Intensidade / brilho padrão (0-15), pode ser definido via menu intensidade =2; // [201] Modo de relógio padrão. Padrão =0 (basic_mode) byte clock_mode =0; // [206] Define o modo aleatório - muda o tipo de exibição a cada poucas horas. Padrão =0 (desligado) bool random_mode =0; // [207] Define o modo aleatório da fonte - muda a fonte a cada poucas horas. 1 =fonte aleatória onbool random_font_mode =0; // [208] Defina o tempo de 12 ou 24 horas. 0 =24 horas. 1 =12 horas bool ampm =0; // Configurações de luz // [202] Modo de ativação / desativação de exibição padrão, usado pelo sensor de luz. 0 =normal, 1 =sempre ligado, 2 - sempre desligado, 3 - 5 =definido por hour_off_1,2,3byte display_mode =5; // [209] Configuração de intensidade de luz automática padrãobool auto_intensity =1; // Esses três definem que o sensor de luz das horas pode desligar a exibição se estiver escuro o suficiente, o formato é 24 horas, a rotina para // verifica entre 8,00 e um desses valores por hora_off_1 =21; byte hour_off_2 =22; byte hour_off_3 =23; // Configurações de fonte - são definidas por meio do menu de configuração Fonte, consulte a rotina set_font_case () para todos os valores padrão:// [203] Relógio padrão fonte grande stylebyte font_style =2; // [204] Ajuste de deslocamento de fonte grande do relógio padrãobyte font_offset =1; // [205] Colunas de fonte grande do relógio padrão Adjustbyte font_cols =6; // Configurações DST NTP e UTC // [210] Habilitar função DST, 1 =habilitar, 0 =desabilitar dst_mode =1; // [211] Habilitar função NTP, 1 =habilitar, 0 =desabilitar ntp_mode =1; // Número de segundos para ajustar o valor NTP antes de aplicar ao DS3231, leva algumas centenas de milissegundos para processar o databyte ESP01 ntp_adjust =1; // [213] Ajuste de deslocamento UTC, hoursint8_t utc_offset =0; // A hora diária de sincronização NTP / DST acontece, deve ser deixada às 2h da manhã se estiver usando o modebyte DST ntp_dst_hour =2; // Número de tempo para repetir a solicitação NTP 1 =35 segundos (ish) no total, valores 1 - 9 bytes ntp_max_retry =3; // Usado para calcular quando encerrar ntp () quando não está recebendo dados, valor em segundos, é multiplicado por ntp_max_retrybyte ntp_timeout =45; // Constantes globais - SSID e senha para WiFi, passados para ESP01 via SoftwareSerial // O SSID combinado e o comprimento da senha não podem exceder 72 caracteres // O comprimento do seu nome SSID, por exemplo, SSID =MyWifi, ssid_len =6const byte ssid_len =8; // Seu nome SSID, por exemplo, MyWificonst char ssid [] ="YourSSID"; // O comprimento de sua senha SSID, por exemplo, senha =senha, pass_len =8const byte pass_len =12; // Sua senha SSID, por exemplo, passwordconst char pass [] ="YourPassword";
Código
Github de Ratti3
https://github.com/Ratti3/miniclockEsquemas
Não havia BH1750, ele se conecta da mesma forma que BME280Processo de manufatura
- Relógio Arduino com horas de oração islâmica
- Arduino com Bluetooth para controlar um LED!
- Relógio POV de LED estilo analógico
- Lâmpada de matriz LED com cola quente
- Controle o seu LED com a Cortana
- Relógio giratório Arduino de matriz de LED único
- Controlando uma matriz de LED com Arduino Uno
- Um relógio barato e preciso baseado em GPS
- Matriz Arduino controlada por Bluetooth com texto de rolagem
- Despertador simples com DS1302 RTC