Taula de continguts:

Rellotge binari veritable amb sincronització NTP: 4 passos
Rellotge binari veritable amb sincronització NTP: 4 passos

Vídeo: Rellotge binari veritable amb sincronització NTP: 4 passos

Vídeo: Rellotge binari veritable amb sincronització NTP: 4 passos
Vídeo: Closed for 40 years ~ Abandoned Portuguese Noble Palace with all its belongings 2024, Juliol
Anonim
Rellotge binari veritable amb sincronització NTP
Rellotge binari veritable amb sincronització NTP
Rellotge binari veritable amb sincronització NTP
Rellotge binari veritable amb sincronització NTP

Un veritable rellotge binari mostra l'hora del dia com una suma de fraccions binàries d'un dia complet, en oposició a un "rellotge binari" tradicional que mostra el temps com a dígits decimals codificats en binari corresponents a les hores / minuts / segons. Els "rellotges binaris" tradicionals utilitzen realment binary-codified-decimal-coded-sexagesimal. Quin desastre! Els veritables rellotges binaris simplifiquen enormement les coses.

En un veritable rellotge binari, el primer dígit indica que és el mig dia, el segon dígit és un quart de dia, el tercer dígit és un vuitè del dia, etc. Es pot llegir a qualsevol resolució molt ràpidament (amb la pràctica, per descomptat,). El primer dígit codifica eficaçment AM versus PM, el segon dígit codifica tant si és a primera hora de la matinada o fins a la matinada de la matinada, etc.

En dissenyar el meu veritable rellotge binari, he utilitzat dotze dígits de resolució, de manera que el dia es divideix en 2 ^ 12 = 4096 parts (cada increment és d'aproximadament 20 segons). En lloc de mantenir tots els dígits en una línia, els 12 dígits es van separar en 3 files de 4 dígits. Tot i que els dígits binaris reals no canvien, això permet llegir el rellotge com a tres dígits hexadecimal codificats binàriament, la primera línia mostra els 16è d'un dia (1,5 hores), la segona línia mostra 256 parts del dia (~ 5 minuts) i la tercera línia que mostra 4096 parts del dia (~ 20 segons).

El rellotge se sincronitza amb NTP (Network Time Protocol) mitjançant un ESP8266. L'ESP8266 està configurat de manera que, en iniciar, prement un botó del rellotge, s'enviarà al mode de configuració. En mode de configuració, el rellotge crearà una xarxa WiFi que serveixi una pàgina web que es pugui utilitzar per introduir la vostra pròpia configuració de wifi, servidor NTP i zona horària. Aquesta informació s’emmagatzema a la EEPROM de l’ESP8266 i es llegeix quan el rellotge s’inicia en mode rellotge perquè es pugui connectar a Internet i recuperar l’hora.

Subministraments:

  • NodeMCU ESP8266
  • Tira LED WS2812B
  • Polsador
  • Resistència de 470 Ohm
  • Resistència de 10K Ohm
  • Condensador de 470 uF
  • Pals de paletes
  • Marbres
  • Fusta (o un altre full de material) per a la caixa

Pas 1: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Per tal de tenir una pantalla, aquest projecte utilitza una tira de led RGB distribuïda en 3 files. Vaig tallar 3 tires de 8 leds de la tira de leds WS2812B i les vaig soldar juntes. (Són fràgils i soldar els petits coixinets pot ser difícil. Vaig embolicar els extrems soldats amb cinta elèctrica per aïllar-los de qualsevol flexió.) Tot i que només necessitava 4 leds per fila, vaig tallar tires de 8 de manera que podria tenir un espaiat més gran entre els llums només utilitzant tots els altres leds. Aquestes tires es van enganxar a una base plana feta de palets de palets. Entre cada fila, una doble capa de palets de paleta proporciona el perfil perquè la cara frontal es pugui enganxar a l'interior de la caixa del rellotge (vegeu la foto).

La tira LED s’alimenta des de la VU i GND del NodeMCU. La VU prové (gairebé) directament de l’USB, de manera que proporciona 5V als LED WS2812B tot i que l’ESP8266 funciona a 3,3V. Vaig col·locar un condensador de 470 uF a través de la potència de la tira WS2812B per protegir els leds. Les dades de la tira LED es connecten al pin D3 del NodeMCU mitjançant la resistència de 470 Ohm. Consulteu aquest document per obtenir més informació sobre com controlar els leds WS2812B amb l’ESP8266. El circuit es va soldar a proto-placa amb algunes capçaleres home a dona per al NodeMCU.

També es va connectar un polsador a D6 del NodeMCU. Es pot prémer aquest botó mentre s’inicia el rellotge per enviar-lo al mode de configuració (en què es poden modificar les preferències de wifi, servidor NTP i zona horària). En un extrem, el polsador està connectat a D6 i també a GND mitjançant una resistència de 10K Ohm i, a l'altre extrem, està connectat a l'alimentació. Quan no es prem el botó, D6 es llegeix baix; quan es prem, D6 llegeix alt.

Pas 2: programari

Programari
Programari

El programari per a l’ESP8266 s’ha escrit amb codi Arduino. Els LED es manegen mitjançant la biblioteca FastLED i la biblioteca NTPClient realitza la sincronització NTP. El temps se sincronitza amb NTP cada hora.

Al començament de la funció de configuració, el programa comprova si es prem el botó connectat a D6. Si és així, l'ESP8266 crea una xarxa wifi (l'SSID i la contrasenya es poden canviar al codi, l'SSID per defecte és "TrueBinary" i la contrasenya és "thepoweroftwo"). Connecteu-vos a aquesta xarxa des de qualsevol dispositiu i aneu a 192.168.1.1. L'ESP8266 publicarà una pàgina web amb formularis on podeu introduir el vostre SSID i contrasenya wifi, el servidor NTP preferit i el desplaçament de la zona horària des de l'UTC. Després d’enviar aquests formularis a l’ESP8266, desarà la informació al seu emmagatzematge EEPROM intern.

Si no es prem el botó, el rellotge s'inicia amb normalitat, llegeix la configuració d'EEPROM, es connecta al wifi per utilitzar NTP i comença a mostrar l'hora.

NOTA: la funció setDisplay (int index) pren el número de dígits de 0-11 on 0 és el primer dígit (el mig dia) i 11 és l'últim (1/4096 d'un dia) i encén el LED corresponent mitjançant el botó matriu de leds. Aquesta funció s'ha d'emplenar segons la configuració de la pantalla. El meu exemple comentat correspon a la manera de soldar les files de forma zig-zag en lloc d’extrem a extrem i saltar-me tots els altres LED.

Pas 3: Habitatge

Habitatge
Habitatge
Habitatge
Habitatge
Habitatge
Habitatge

Per allotjar el rellotge, he utilitzat un angle de fusta pintada que casualment tenia. En una cara exterior, he perforat 12 forats en una quadrícula que corresponia a les posicions dels LED. Després vaig enganxar els LEDs a l'interior de l'angle enganxant les cares elevades dels palets de paletes entre les files a la fusta (com es mostra). Per difondre la llum dels LED, vaig enganxar marbres de vidre a sobre dels forats. Ho vaig aconseguir submergint la meitat inferior de cada marbre en resina epoxi i després col·locant-los als forats. El NodeMCU i la placa proto es van cargolar a l'altra cara interior de l'angle. Els laterals es cobrien amb petits triangles de fusta, units amb cola de fusta. Un dels laterals té un forat per al port micro USB del NodeMCU i un tall a la cantonada per al polsador.

Pas 4: Fet

Fet!
Fet!
Fet!
Fet!

El nostre veritable rellotge binari s'ha acabat. Per configurar-lo, manteniu premut el botó mentre el connecteu per posar-lo en mode de configuració i, a continuació, introduïu les credencials WiFi a la seva pàgina web. Un cop configurat, el rellotge es pot connectar a qualsevol lloc i es connectarà automàticament a Internet i començarà a mostrar l’hora en binari.

Es necessita una mica de pràctica per llegir l’hora en format binari real, però és un exercici divertit i al cap d’un temps es converteix en una manera ràpida d’aconseguir el temps amb només una ullada.

Recomanat: