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 Matriz NTP LED com DS3231, BME280, BH1750 e ESP01

Componentes e suprimentos

Arduino Nano R3
× 1
Módulo periférico Maxim Integrated DS3231MPMB1
O barato no Ebay, com o resistor removido para impedir a explosão da bateria
× 1
SparkFun Atmospheric Sensor Breakout - BME280
O mais barato do Ebay
× 1
Sensor de luz BH1750
Do Ebay
× 1
Matriz LED Max7219 32x8
× 1
Capacitor 10 µF
× 2
Espressif ESP8266 ESP-01
Opcional se você quiser definir o tempo via NTP
× 1
LM3940IT3.3
Regulador LDO de 3,3v para ESP01
× 1
SparkFun Level Shifter Board
Necessário para ESP01
× 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/miniclock

Esquemas

Não havia BH1750, ele se conecta da mesma forma que BME280

Processo de manufatura

  1. Relógio Arduino com horas de oração islâmica
  2. Arduino com Bluetooth para controlar um LED!
  3. Relógio POV de LED estilo analógico
  4. Lâmpada de matriz LED com cola quente
  5. Controle o seu LED com a Cortana
  6. Relógio giratório Arduino de matriz de LED único
  7. Controlando uma matriz de LED com Arduino Uno
  8. Um relógio barato e preciso baseado em GPS
  9. Matriz Arduino controlada por Bluetooth com texto de rolagem
  10. Despertador simples com DS1302 RTC