Tabla de contenido:

Verdadero reloj binario con sincronización NTP: 4 pasos
Verdadero reloj binario con sincronización NTP: 4 pasos

Video: Verdadero reloj binario con sincronización NTP: 4 pasos

Video: Verdadero reloj binario con sincronización NTP: 4 pasos
Video: Comienza a Usarlos AHORA MISMO! - El Secreto de los NÚMEROS 369 del Código Tesla es POR FIN REVELADO 2024, Noviembre
Anonim
Verdadero reloj binario con sincronización NTP
Verdadero reloj binario con sincronización NTP
Verdadero reloj binario con sincronización NTP
Verdadero reloj binario con sincronización NTP

Un verdadero reloj binario muestra la hora del día como una suma de fracciones binarias de un día completo, a diferencia de un "reloj binario" tradicional que muestra la hora como dígitos decimales codificados en binario correspondientes a las horas / minutos / segundos. Los "relojes binarios" tradicionales en realidad utilizan sexagesimales con codificación decimal codificada en binario. ¡Que desastre! Los verdaderos relojes binarios simplifican enormemente las cosas.

En un verdadero reloj binario, el primer dígito le dice que es el medio día, el segundo dígito es un cuarto de día, el tercer dígito es un octavo de un día, etc. Se puede leer a cualquier resolución muy rápidamente (con práctica, por supuesto). El primer dígito codifica de manera efectiva AM versus PM, el segundo dígito codifica si es temprano AM / PM o tarde AM / PM, y así sucesivamente.

Al diseñar mi verdadero reloj binario, utilicé doce dígitos de resolución, por lo que el día se divide en 2 ^ 12 = 4096 partes (cada incremento es de aproximadamente 20 segundos). En lugar de mantener todos los dígitos en una línea, los 12 dígitos se separaron en 3 filas de 4 dígitos. Aunque los dígitos binarios reales no se modifican, esto permite que el reloj se lea como 3 dígitos hexadecimales codificados en binario, la primera línea muestra los 16 de un día (1,5 horas), la segunda línea muestra los 256 del día (~ 5 minutos) y la tercera línea muestra 4096 de un día (~ 20 segundos).

El reloj se sincroniza con NTP (Network Time Protocol) mediante un ESP8266. El ESP8266 está configurado para que, en el inicio, al presionar un botón en el reloj se envíe al modo de configuración. En el modo de configuración, el reloj creará una red WiFi que ofrece una página web que puede usarse para ingresar su propia configuración wifi, servidor NTP y zona horaria. Esta información se almacena en la EEPROM del ESP8266 y se lee cuando el reloj se inicia en modo reloj para que pueda conectarse a Internet y recuperar la hora.

Suministros:

  • NodeMCU ESP8266
  • Tira de LED WS2812B
  • Presionar el botón
  • Resistencia de 470 ohmios
  • Resistencia de 10K Ohm
  • Condensador de 470 uF
  • palitos de helados
  • Canicas
  • Madera (u otra hoja de material) para el estuche

Paso 1: circuito

Circuito
Circuito
Circuito
Circuito
Circuito
Circuito
Circuito
Circuito

Para tener una pantalla, este proyecto utiliza una tira de led RGB colocada en 3 filas. Corté 3 tiras de 8 leds de la tira de leds WS2812B y las soldé juntas. (Son frágiles y soldar las almohadillas pequeñas puede ser difícil. Envolví los extremos soldados en cinta aislante para aislarlos de cualquier doblez). Aunque solo necesitaba 4 leds por fila, corté tiras de 8 para que podría tener un mayor espacio entre las luces utilizando solo uno de los otros LED. Estas tiras se pegaron luego a una base plana hecha de palitos de helado. Entre cada fila, una doble capa de palitos de helado proporciona el perfil para que la cara frontal se pueda pegar contra el interior de la caja del reloj (ver foto).

La tira de led se alimenta desde la VU y GND del NodeMCU. La VU proviene (casi) directamente del USB, por lo que proporciona 5V a los LED WS2812B a pesar de que el ESP8266 funciona a 3.3V. Coloqué un capacitor de 470 uF a través de la potencia de la tira WS2812B para proteger los leds. Los datos de la tira de led se conectan al pin D3 del NodeMCU a través de la resistencia de 470 Ohm. Consulte este instructivo para obtener más información sobre cómo controlar los leds WS2812B con el ESP8266. El circuito se soldó en un protoboard con algunos encabezados de macho a hembra para el NodeMCU.

También se adjuntó un botón al D6 del NodeMCU. Este botón se puede presionar mientras el reloj se está iniciando para enviarlo al modo de configuración (en el que se pueden modificar la configuración de wifi, el servidor NTP y las preferencias de zona horaria). En un extremo, el pulsador está conectado a D6 y también a GND a través de una resistencia de 10K Ohm y en el otro extremo está conectado a la alimentación. Cuando no se presiona el botón, D6 lee bajo; cuando se presiona, D6 lee alto.

Paso 2: software

Software
Software

El software del ESP8266 se escribió con código Arduino. Los LED se manejan mediante la biblioteca FastLED y la sincronización NTP la realiza la biblioteca NTPClient. El tiempo se sincroniza por NTP cada hora.

Al inicio de la función de configuración, el programa verifica si se presiona el botón conectado a D6. Si es así, el ESP8266 crea una red wifi (el SSID y la contraseña se pueden cambiar en el código, el SSID predeterminado es "TrueBinary" y la contraseña es "thepoweroftwo"). Conéctese a esta red desde cualquier dispositivo y navegue hasta 192.168.1.1. El ESP8266 ofrecerá una página web con formularios donde puede ingresar su SSID y contraseña wifi, servidor NTP preferido y desplazamiento de zona horaria de UTC. Después de que estos formularios se envíen al ESP8266, guardará la información en su almacenamiento EEPROM interno.

Si no se presiona el botón, el reloj se inicia normalmente, lee la configuración de EEPROM, se conecta a wifi para usar NTP y comienza a mostrar la hora.

NOTA: la función setDisplay (int index) toma el número de dígito de 0-11 donde 0 es el primer dígito (el medio día) y 11 es el último (1/4096 de un día) y enciende el LED correspondiente usando el " matriz de leds ". Esta función debe completarse de acuerdo con cómo configuró la pantalla. Mi ejemplo comentado corresponde a cómo soldé las filas en zig-zag en lugar de de un extremo a otro y me salté todos los demás LED.

Paso 3: Vivienda

Alojamiento
Alojamiento
Alojamiento
Alojamiento
Alojamiento
Alojamiento

Para albergar el reloj, utilicé un ángulo de madera pintada que tenía. En una cara exterior, perforé 12 agujeros en una cuadrícula correspondiente a las posiciones de los LED. Luego pegué los LED en el interior del ángulo pegando las caras elevadas de los palitos de helado entre las filas a la madera (como se muestra). Para difundir la luz de los LED, pegué canicas de vidrio en la parte superior de los agujeros. Lo logré sumergiendo la mitad inferior de cada canica en resina epoxi y luego colocándolas en los agujeros. El NodeMCU y el protoboard se atornillaron en la otra cara interior del ángulo. Los lados se cubrieron con pequeños triángulos de madera, pegados con pegamento para madera. Uno de los lados tiene un orificio para el puerto micro USB del NodeMCU y un corte en la esquina para el pulsador.

Paso 4: ¡Listo

¡Hecho!
¡Hecho!
¡Hecho!
¡Hecho!

¡Nuestro verdadero reloj binario está terminado! Para configurarlo, mantenga presionado el botón mientras lo conecta para ponerlo en modo de configuración y luego ingrese las credenciales de WiFi en su página web. Una vez configurado, el reloj se puede conectar en cualquier lugar y se conectará automáticamente a Internet y comenzará a mostrar la hora en binario.

Se necesita un poco de práctica para leer la hora en verdadero formato binario, pero es un ejercicio divertido y, después de un tiempo, se convierte en una forma rápida de obtener la hora con solo un vistazo.

Recomendado: