Innehållsförteckning:
Video: Äkta binär klocka med NTP -synkronisering: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:35
En sann binär klocka visar tiden på dagen som en summa av binära fraktioner av en hel dag, i motsats till en traditionell "binär klocka" som visar tiden som binärkodade decimaler som motsvarar timmar/minuter/sekunder. Traditionella "binära klockor" använder verkligen binärt-kodade-decimal-kodade-sexagesimala. Vilken röra! Sanna binära klockor förenklar saker oerhört.
I en sann binär klocka säger den första siffran att halva dagen, den andra siffran är en fjärdedag, den tredje siffran är en åttondel, etc. Den kan läsas till valfri upplösning mycket snabbt (med övning förstås). Den första siffran kodar effektivt AM kontra PM, den andra siffran kodar om det är tidigt AM/PM eller sent AM/PM, och så vidare.
Vid utformningen av min sanna binära klocka använde jag tolv siffror i upplösning, så dagen är uppdelad i 2^12 = 4096 delar (varje steg är cirka 20 sekunder). Istället för att hålla alla siffror på en rad, separerades de 12 siffrorna i 3 rader med 4 siffror. Även om de faktiska binära siffrorna är oförändrade, så kan klockan läsas som 3 binärkodade sexsiffror, den första raden visar 16: e om dagen (1,5 timmar), den andra raden visar 256: e dagen (~ 5 minuter), och den tredje raden visar 4096: e av dagen (~ 20 sekunder).
Klockan synkroniseras med NTP (Network Time Protocol) med hjälp av en ESP8266. ESP8266 är konfigurerad så att vid start genom att trycka på en knapp på klockan skickas den till inställningsläge. I inställningsläge skapar klockan ett WiFi -nätverk som serverar en webbsida som kan användas för att ange dina egna wifi -inställningar, NTP -server och tidszon. Denna information lagras i EEPROM i ESP8266 och läses när klockan startar i klockläge så att den kan ansluta till internet och hämta tiden.
Tillbehör:
- NodeMCU ESP8266
- WS2812B LED -remsa
- Tryckknapp
- 470 Ohm motstånd
- 10K Ohm motstånd
- 470 uF kondensator
- isglasspinnar
- Marmor
- Trä (eller annat materialark) för fodralet
Steg 1: Krets
För att få en bildskärm använder detta projekt en RGB -ledremsa i tre rader. Jag klippte 3 remsor med 8 lysdioder från remsan av WS2812B -lysdioder och lödde ihop dem. (De är ömtåliga och lödning av de små dynorna kan vara svårt. Jag lindade in de lödade ändarna i eltejp för att isolera dem från eventuella böjningar.) Även om jag bara behövde 4 lysdioder per rad, skar jag ut remsor med 8 så att jag kunde ha större avstånd mellan lamporna genom att bara använda varannan lysdiod. Dessa remsor sattes sedan fast på en platt bas gjord av popsicle -pinnar. Mellan varje rad ger ett dubbelt lager av popsicle -pinnar profilen så att framsidan kan fastna mot insidan av klockfodralet (se foto).
LED -remsan drivs från VU och GND för NodeMCU. VU kommer ström (nästan) direkt från USB, så den ger 5V till WS2812B -lysdioderna trots att ESP8266 fungerar med 3,3V. Jag placerade en 470 uF kondensator över strömmen för WS2812B -remsan för att skydda lysdioderna. Data för ledremsan är ansluten till D3 -stiftet på NodeMCU via motståndet 470 Ohm. Se denna instruktionsbok för mer information om hur du styr WS2812B -lysdioder med ESP8266. Kretsen löddes på proto-board med några man-till-kvinnliga rubriker för NodeMCU.
En tryckknapp var också ansluten till D6 i NodeMCU. Du kan trycka på denna knapp medan klockan startar för att skicka den till inställningsläge (där wifi -inställningar, NTP -server och tidszonsinställningar kan ändras). I ena änden är tryckknappen ansluten till D6 och även till GND via ett 10K Ohm -motstånd och i den andra änden är den ansluten till ström. När knappen inte trycks in läser D6 lågt; när den trycks läser D6 högt.
Steg 2: Programvara
Programvaran för ESP8266 skrevs med Arduino -kod. Lysdioderna hanteras med hjälp av FastLED -biblioteket och NTP -synkronisering utförs av NTPClient -biblioteket. Tiden synkroniseras med NTP varje timme.
I början av installationsfunktionen kontrollerar programmet om knappen som är ansluten till D6 trycks in. Om det är det skapar ESP8266 ett wifi -nätverk (SSID och lösenord kan ändras i koden, standard SSID är "TrueBinary" och lösenord är "thepoweroftwo"). Anslut till detta nätverk från vilken enhet som helst och navigera till 192.168.1.1. ESP8266 kommer att tillhandahålla en webbsida med formulär där du kan ange ditt wifi -SSID och lösenord, föredragen NTP -server och tidszonförskjutning från UTC. Efter att dessa formulär har skickats till ESP8266 kommer informationen att sparas i dess interna EEPROM -lagring.
Om knappen inte trycks in startar klockan normalt, läser inställningarna från EEPROM, ansluter till wifi för att använda NTP och börjar visa tiden.
OBS: funktionen setDisplay (int index) tar siffran från 0-11 där 0 är den första siffran (den halva dagen) och 11 är den sista (1/4096 av en dag) och tänder motsvarande lysdiod med " leds "array. Denna funktion måste fyllas i enligt hur du konfigurerade displayen. Mitt kommenterade exempel motsvarar hur jag lödde raderna i sicksack snarare än från ände till ände och hoppade över varannan lysdiod.
Steg 3: Bostäder
För att hysa klockan använde jag en vinkel av målat trä som jag råkade ha. På ena ytterytan borrade jag 12 hål i ett rutnät som motsvarar lysdiodernas positioner. Jag fastnade sedan lysdioderna på insidan av vinkeln genom att limma de upphöjda ytorna på popsicle sticks mellan raderna på träet (som visas). För att sprida ljuset från lysdioderna satte jag glasmarmor ovanpå hålen. Jag uppnådde detta genom att doppa nedre halvan av varje marmor i epoxiharts och sedan placera dem i hålen. NodeMCU och proto-board skruvades fast i den andra insidan av vinkeln. Sidorna täcktes med små trianglar av trä, fästa med trälim. En av sidorna har ett hål för mikro -USB -porten på NodeMCU och ett snitt i hörnet för tryckknappen.
Steg 4: Klar
Vår sanna binära klocka är klar! För att ställa in den, håll knappen intryckt medan du ansluter den för att sätta den i inställningsläge och ange sedan WiFi -uppgifterna på webbsidan. När klockan är inställd kan den anslutas var som helst och kommer automatiskt att ansluta till internet och börja visa tiden i binär.
Det tar lite övning att läsa tid i riktigt binärt format, men det är en rolig övning och efter ett tag blir det ett snabbt sätt att få tiden med bara en blick!
Rekommenderad:
Mikro binär klocka: 10 steg (med bilder)
Mikro binär klocka: Efter att tidigare ha skapat en instruerbar (binär DVM), som använder sig av det begränsade visningsområdet med binär. Det var bara ett litet steg som tidigare skapat huvudkodsmodulen för decimal till binär konvertering till att skapa en binär klocka men t
5 $ PCB -KALENDER MED BINÄR KLOCKA: 7 steg (med bilder)
5 $ PCB -KALENDER MED BINÄR KLOCKA: Hej! Jag gjorde denna PCB -kalender och binära klocka med Eagle CAD. Jag använde ATMEGA328P MCU (från Arduino) och 9x9 LED -matris. Mått för mitt bräde är 8 cm x 10 cm (3,14 tum x 3,34 tum). Det är lite för litet men först: gratisversionen av Eagle CAD tillåter 80 cm^2
Skrivbordsförstärkare med ljudvisualisering, binär klocka och FM -mottagare: 8 steg (med bilder)
Skrivbordsförstärkare med ljudvisualisering, binär klocka och FM -mottagare: Jag gillar förstärkare och idag delar jag med mig min effektförstärkare som jag gjorde nyligen. Förstärkaren jag designade har några intressanta funktioner. Den har en integrerad binär klocka och kan ge tid och datum och den kan visualisera ljud som ofta kallas ljud
Arduino binär klocka - 3D -tryckt: 5 steg (med bilder)
Arduino binärklocka - 3D -tryckt: Jag har tittat på binära klockor en tid för mitt kontorsbord, men de är ganska dyra och / eller har inte en enorm mängd funktioner. Så jag bestämde mig för att jag skulle göra en istället. En punkt att tänka på när du gör en klocka, Arduino / Atmega328
Akta dig för de hemska pumpabotarna .: 9 steg (med bilder)
Akta dig för de hemska pumpabotarna ….: Dessa robotar är alla farliga! De kom över mig med full kraft. Jag förväntade mig inte att de skulle vara så kraftfulla. Förhoppningsvis tappar de alla sin energi snart …;-)