INHOUDSOPGAWE:

Ware binêre klok met NTP -sinchronisasie: 4 stappe
Ware binêre klok met NTP -sinchronisasie: 4 stappe

Video: Ware binêre klok met NTP -sinchronisasie: 4 stappe

Video: Ware binêre klok met NTP -sinchronisasie: 4 stappe
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Julie
Anonim
Ware binêre klok met NTP -sinkronisering
Ware binêre klok met NTP -sinkronisering
Ware binêre klok met NTP -sinkronisering
Ware binêre klok met NTP -sinkronisering

'N Ware binêre horlosie vertoon die tyd van die dag as 'n som van binêre breuke van 'n volle dag, in teenstelling met 'n tradisionele' binêre klok 'wat die tyd as binêre gekodeerde desimale syfers toon wat ooreenstem met die ure/minute/sekondes. Tradisionele "binêre horlosies" gebruik regtig binêre-gekodeerde-desimale-gekodeerde-seksagesimale. Wat 'n gemors! Ware binêre horlosies vereenvoudig dinge geweldig.

In 'n ware binêre horlosie vertel die eerste syfer dat die halwe dag die tweede syfer 'n kwartdag is, die derde syfer 'n agtste dag, ens.). Die eerste syfer kodeer AM effektief teenoor PM, die tweede syfer kodeer of dit vroeg AM/PM of laat AM/PM is, ensovoorts.

By die ontwerp van my ware binêre klok het ek twaalf syfers van resolusie gebruik, sodat die dag in 2^12 = 4096 dele verdeel is (elke toename is ongeveer 20 sekondes). In plaas daarvan om al die syfers in 'n lyn te hou, is die 12 syfers in 3 rye van 4 syfers geskei. Alhoewel die werklike binêre syfers onveranderd is, kan die horlosie gelees word as 3 binêre gekodeerde heksyfers, die eerste reël wat 16de van 'n dag (1,5 uur), die tweede reël 256ste van die dag (~ 5 minute), en die derde reël wat 4096ste van 'n dag (~ 20 sekondes) toon.

Die klok word gesinkroniseer met NTP (Network Time Protocol) met behulp van 'n ESP8266. Die ESP8266 is so gekonfigureer dat dit tydens die opstart deur op 'n knoppie op die klok te druk dit in die instellingsmodus stuur. In die instellingsmodus sal die klok 'n WiFi -netwerk skep wat 'n webbladsy bedien wat gebruik kan word om u eie wifi -instellings, NTP -bediener en tydsone in te voer. Hierdie inligting word in die EEPROM van die ESP8266 gestoor en word gelees wanneer die horlosie in die klokmodus begin, sodat dit met die internet kan skakel en die tyd kan ophaal.

Benodighede:

  • NodeMCU ESP8266
  • WS2812B LED strook
  • Druk knoppie
  • 470 Ohm weerstand
  • 10K Ohm weerstand
  • 470 uF kapasitor
  • Popsicle stokke
  • Marmer
  • Hout (of ander vel materiaal) vir die omhulsel

Stap 1: Kringloop

Kring
Kring
Kring
Kring
Kring
Kring
Kring
Kring

Om 'n vertoning te hê, gebruik hierdie projek 'n RGB -geleide strook wat in 3 rye gelê is. Ek het 3 stroke van 8 LED's van die strook WS2812B LED's gesny en dit aanmekaar gesoldeer. (Hulle is broos en dit kan moeilik wees om die klein blokkies te soldeer. Ek het die gesoldeerde ente in 'n elektriese band toegedraai om dit teen enige buiging te isoleer.) Alhoewel ek net 4 leds per ry nodig gehad het, het ek repe van 8 gesny sodat ek Dit kan 'n groter afstand tussen die ligte hê deur slegs elke ander led te gebruik. Hierdie stroke is dan vasgemaak aan 'n plat basis van popsicle sticks. Tussen elke ry bied 'n dubbele laag popsicle sticks die profiel sodat die voorkant teen die binnekant van die horlosie vasgemaak kan word (sien foto).

Die LED -strook word aangedryf deur die VU en GND van die NodeMCU. VU kom (byna) direk van die USB af, so dit verskaf 5V aan die WS2812B LED's, al werk die ESP8266 teen 3.3V. Ek het 'n 470 uF -kondensator oor die krag geplaas vir die WS2812B -strook om die leds te beskerm. Data vir die led -strook word via die 470 Ohm -weerstand aan die D3 -pen van die NodeMCU gekoppel. Raadpleeg hierdie instruksies vir meer inligting oor die bestuur van WS2812B -leds met die ESP8266. Die kring is op 'n voorbord gesoldeer met 'n paar man-tot-vrou-koppe vir die NodeMCU.

'N Drukknoppie is ook aan D6 van die NodeMCU geheg. Hierdie drukknop kan ingedruk word terwyl die klok begin om dit in die instellingsmodus te stuur (waarin wifi -instellings, NTP -bediener en tydsone -voorkeure verander kan word). Aan die een kant is die drukknop verbind met D6 en ook met GND via 'n 10K Ohm -weerstand en aan die ander kant is dit aan die krag gekoppel. As die knoppie nie ingedruk word nie, lees D6 laag; as dit ingedruk word, lees D6 hoog.

Stap 2: sagteware

Sagteware
Sagteware

Die sagteware vir die ESP8266 is geskryf met behulp van Arduino -kode. Die LED's word hanteer met behulp van die FastLED -biblioteek en NTP -sinchronisasie word deur die NTPClient -biblioteek gedoen. Tyd word elke uur met NTP gesinkroniseer.

Aan die begin van die opstelfunksie, kyk die program of die knoppie wat met D6 verbind is, ingedruk word. As dit die geval is, skep die ESP8266 'n wifi -netwerk (die SSID en wagwoord kan in die kode verander word, die standaard SSID is "TrueBinary" en die wagwoord is "thepoweroftwo"). Koppel aan hierdie netwerk vanaf enige toestel en navigeer na 192.168.1.1. Die ESP8266 bied 'n webblad met vorms aan waar u u wifi -SSID en wagwoord, die gewenste NTP -bediener en tydsone -verrekening vanaf UTC kan invoer. Nadat hierdie vorms by die ESP8266 ingedien is, stoor dit die inligting in die interne EEPROM -berging.

As die knoppie nie ingedruk word nie, begin die horlosie normaalweg, lees die instellings van EEPROM, maak verbinding met wifi om NTP te gebruik en begin die tyd wys.

OPMERKING: die funksie setDisplay (int indeks) neem die syfergetal van 0-11 waar 0 die eerste syfer (die halwe dag) is en 11 die laaste (1/4096 van 'n dag) en skakel die ooreenstemmende LED aan met behulp van die " leds "skikking. Hierdie funksie moet ingevul word volgens die manier waarop u die skerm opgestel het. My voorbeeld van kommentaar kom ooreen met hoe ek die rye op 'n zig-zag manier gesoldeer het, eerder as van einde tot einde, en elke ander LED oorgeslaan het.

Stap 3: Behuising

Behuising
Behuising
Behuising
Behuising
Behuising
Behuising

Om die horlosie te huisves, het ek 'n hoek van geverfde hout gebruik wat ek toevallig gehad het. Op een buitekant het ek 12 gate geboor in 'n rooster wat ooreenstem met die posisies van die LED's. Ek plak dan die LED's aan die binnekant van die hoek vas deur die verhoogde vlakke van die popsicle-stokke tussen die rye aan die hout vas te plak (soos getoon). Om die lig van die LED's te versprei, het ek glasmarmors bo -op die gate vasgemaak. Ek het dit bereik deur die onderste helfte van elke marmer in epoxyhars te doop en dit dan in die gate te plaas. Die NodeMCU en die proto-bord is in die ander binnekant van die hoek vasgeskroef. Die sye is bedek met klein driehoeke van hout, vasgemaak met houtlym. Een van die kante het 'n gat vir die mikro -USB -poort van die NodeMCU en 'n snit in die hoek vir die drukknop.

Stap 4: Klaar

Klaar!
Klaar!
Klaar!
Klaar!

Ons ware binêre klok is klaar! Om dit op te stel, hou die knoppie ingedruk terwyl u dit aansluit om dit in die instellingsmodus te plaas en voer dan die WiFi -geloofsbriewe op die webblad in. Sodra dit ingestel is, kan die klok oral ingeprop word en sal outomaties met die internet verbind word en die tyd in binêre begin wys.

Dit verg 'n bietjie oefening om tyd in ware binêre formaat te lees, maar dit is 'n prettige oefening en dit word na 'n rukkie 'n vinnige manier om die tyd met net 'n blik te kry!

Aanbeveel: