Cuprins:

Ceas binar adevărat cu sincronizare NTP: 4 pași
Ceas binar adevărat cu sincronizare NTP: 4 pași

Video: Ceas binar adevărat cu sincronizare NTP: 4 pași

Video: Ceas binar adevărat cu sincronizare NTP: 4 pași
Video: Waterproof Binary Silicone Band Metal LED Watch 2024, Iulie
Anonim
Ceas binar adevărat cu sincronizare NTP
Ceas binar adevărat cu sincronizare NTP
Ceas binar adevărat cu sincronizare NTP
Ceas binar adevărat cu sincronizare NTP

Un adevărat ceas binar afișează ora din zi ca o sumă a fracțiilor binare ale unei zile întregi, spre deosebire de un „ceas binar” tradițional care afișează ora ca cifre zecimale codate binar corespunzătoare orelor / minutelor / secundelor. „Ceasurile binare” tradiționale folosesc într-adevăr binar-codificat-zecimal-codificat-sexagesimal. Ce mizerie! Ceasurile binare adevărate simplifică imens lucrurile.

Într-un ceas binar adevărat, prima cifră îți spune că este jumătatea zilei, a doua cifră este un sfert de zi, a treia cifră este o optime dintr-o zi etc. Poate fi citită la orice rezoluție foarte repede (cu practică desigur). Prima cifră codifică efectiv AM versus PM, a doua cifră codifică indiferent dacă este vorba de AM / PM devreme sau AM târziu / PM și așa mai departe.

În proiectarea adevăratului meu ceas binar, am folosit douăsprezece cifre de rezoluție, astfel încât ziua este împărțită în 2 ^ 12 = 4096 părți (fiecare increment este de aproximativ 20 de secunde). În loc să păstreze toate cifrele într-o linie, cele 12 cifre au fost separate în 3 rânduri de 4 cifre. Deși cifrele binare reale sunt neschimbate, acest lucru permite ceasului să fie citit ca 3 cifre hexagonale codificate binar, prima linie afișând numărul 16 al zilei (1,5 ore), a doua linie afișând 256 din ziua (~ 5 minute) și a treia linie afișează 4096 de zile (~ 20 de secunde).

Ceasul este sincronizat cu NTP (Network Time Protocol) folosind un ESP8266. ESP8266 este configurat astfel încât, la pornire, apăsarea unui buton de pe ceas îl va trimite în modul setări. În modul setări, ceasul va crea o rețea WiFi care servește o pagină web care poate fi utilizată pentru a introduce propriile setări wifi, serverul NTP și fusul orar. Aceste informații sunt stocate în EEPROM-ul ESP8266 și sunt citite când ceasul pornește în modul ceas, astfel încât să se poată conecta la internet și să recupereze ora.

Provizii:

  • NodeMCU ESP8266
  • Benzi LED WS2812B
  • Apasa butonul
  • Rezistor de 470 Ohm
  • Rezistor de 10K Ohm
  • 470 uF condensator
  • Bastoane de gheață
  • Marmură
  • Lemn (sau altă foaie de material) pentru carcasă

Pasul 1: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Pentru a avea un afișaj, acest proiect folosește o bandă LED RGB așezată pe 3 rânduri. Am tăiat 3 benzi de 8 leduri de pe banda de leduri WS2812B și le-am lipit împreună. (Sunt fragile și lipirea tampoanelor mici poate fi dificilă. Am înfășurat capetele lipite în bandă electrică, astfel încât să le izolez de orice îndoire.) Chiar dacă aveam nevoie doar de 4 leduri pe rând, am decupat benzi de 8, astfel încât să ar putea avea o distanță mai mare între lumini folosind doar fiecare celălalt led. Aceste benzi au fost apoi lipite de o bază plană făcută din bețe de gheață. Între fiecare rând, un strat dublu de bețe de gheață oferă profilul, astfel încât fața frontală să poată fi lipită de interiorul carcasei ceasului (vezi foto).

Banda LED este alimentată de la VU și GND ale NodeMCU. VU este alimentat (aproape) direct de pe USB, deci oferă 5V la LED-urile WS2812B, chiar dacă ESP8266 funcționează la 3,3V. Am plasat un condensator 470 uF peste putere pentru banda WS2812B pentru a proteja ledurile. Datele pentru banda LED sunt conectate la pinul D3 al NodeMCU prin intermediul rezistorului de 470 Ohm. Consultați acest instructable pentru mai multe informații despre cum să controlați ledurile WS2812B cu ESP8266. Circuitul a fost lipit pe proto-placă cu niște anteturi de la bărbat la femeie pentru NodeMCU.

De asemenea, un buton a fost atașat la D6 al NodeMCU. Acest buton poate fi apăsat în timp ce ceasul pornește pentru al trimite în modul setări (în care pot fi modificate setările wifi, serverul NTP și preferințele pentru fusul orar). La un capăt, butonul este conectat la D6 și, de asemenea, la GND printr-un rezistor de 10K Ohm, iar la celălalt capăt este conectat la alimentare. Când butonul este apăsat, D6 citește jos; când este apăsat, D6 citește mare.

Pasul 2: Software

Software
Software

Software-ul pentru ESP8266 a fost scris folosind codul Arduino. LED-urile sunt manipulate folosind biblioteca FastLED, iar sincronizarea NTP se face de către biblioteca NTPClient. Timpul este sincronizat de NTP la fiecare oră.

La începutul funcției de configurare, programul verifică dacă butonul conectat la D6 este apăsat. Dacă este, ESP8266 creează o rețea wifi (SSID și parola pot fi schimbate în cod, SSID implicit este „TrueBinary” și parola este „thepoweroftwo”). Conectați-vă la această rețea de pe orice dispozitiv și navigați la 192.168.1.1. ESP8266 va furniza o pagină web cu formulare în care puteți introduce SSID-ul și parola wifi, serverul NTP preferat și decalajul fusului orar de la UTC. După ce aceste formulare sunt trimise către ESP8266, acesta va salva informațiile în memoria internă EEPROM.

Dacă butonul nu este apăsat, ceasul pornește normal, citește setările din EEPROM, se conectează la wifi pentru a utiliza NTP și începe să afișeze ora.

NOTĂ: funcția setDisplay (int index) ia numărul cifrei de la 0-11 unde 0 este prima cifră (jumătatea zilei) și 11 este ultima (1/4096 dintr-o zi) și aprinde LED-ul corespunzător folosind „ led-uri matrice. Această funcție trebuie completată în funcție de modul în care ați configurat afișajul. Exemplul meu comentat corespunde modului în care am lipit rândurile într-un mod în zig-zag, mai degrabă decât de la un capăt la altul și am sărit toate celelalte LED-uri.

Pasul 3: Locuințe

Locuințe
Locuințe
Locuințe
Locuințe
Locuințe
Locuințe

Pentru a adăposti ceasul, am folosit un unghi de lemn vopsit pe care l-am avut întâmplător. Pe o față exterioară, am forat 12 găuri într-o grilă corespunzătoare pozițiilor LED-urilor. Am lipit apoi LED-urile în interiorul unghiului prin lipirea fețelor ridicate ale bastoanelor de gheață între rânduri de lemn (așa cum se arată). Pentru a difuza lumina de la LED-uri, am lipit bile de sticlă deasupra găurilor. Am realizat acest lucru scufundând jumătatea inferioară a fiecărei marmuri în rășină epoxidică și apoi plasându-le în găuri. NodeMCU și placa de protecție au fost înșurubate pe cealaltă față interioară a unghiului. Părțile laterale au fost acoperite folosind mici triunghiuri de lemn, atașate cu lipici pentru lemn. Una dintre părți are o gaură pentru portul micro USB al NodeMCU și o tăietură în colț pentru buton.

Pasul 4: Gata

Terminat!
Terminat!
Terminat!
Terminat!

Adevăratul nostru ceas binar este terminat! Pentru a-l configura, țineți apăsat butonul în timp ce îl conectați pentru a-l pune în modul de setări și apoi introduceți acreditările WiFi pe pagina sa web. Odată configurat, ceasul poate fi conectat oriunde și se va conecta automat la internet și va începe să afișeze ora în binar.

Este nevoie de un loc de practică pentru a citi timpul în format binar adevărat, dar este un exercițiu distractiv și, după un timp, devine o modalitate rapidă de a obține timpul doar cu o privire!

Recomandat: