Talaan ng mga Nilalaman:
Video: Tunay na Binary Clock Sa NTP Sync: 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:09
Ang isang totoong binary na orasan ay nagpapakita ng oras ng araw bilang isang kabuuan ng mga binary na praksiyon ng isang buong araw, taliwas sa isang tradisyonal na "binary clock" na nagpapakita ng oras bilang naka-encode na decimal digit na binary na naaayon sa mga oras / minuto / segundo. Ang mga tradisyunal na "binary na orasan" ay talagang gumagamit ng binary-encode-decimal-encoded-sexagesimal. Ang gulo! Ang tunay na mga binary na orasan ay pinasimple ang mga bagay.
Sa isang tunay na binary na orasan, sasabihin sa iyo ng unang digit ang kalahating araw, ang pangalawang digit ay isang isang-kapat na araw, ang pangatlong digit ay ikawalo ng isang araw, atbp. Mababasa ito sa anumang resolusyon nang napakabilis (na may kasanayan syempre). Ang unang digit ay mabisang naka-encode ng AM kumpara sa PM, ang pangalawang digit ay naka-encode kung maagang AM / PM o late AM / PM, at iba pa.
Sa pagdidisenyo ng aking totoong binary na orasan, gumamit ako ng labindalawang digit ng resolusyon, kaya't ang araw ay nahahati sa 2 ^ 12 = 4096 na mga bahagi (ang bawat pagtaas ay humigit-kumulang na 20 segundo). Sa halip na mapanatili ang lahat ng mga digit sa isang linya, ang 12 na digit ay pinaghiwalay sa 3 mga hilera ng 4 na mga digit. Bagaman ang aktwal na mga binary digit ay hindi nagbabago, pinapayagan nitong mabasa ang orasan bilang 3 naka-encode na hex digit, ang unang linya na nagpapakita ng ika-16 ng isang araw (1.5hrs), ang pangalawang linya na nagpapakita ng 256ths ng araw (~ 5 minuto), at ang pangatlong linya na nagpapakita ng 4096ths ng isang araw (~ 20seconds).
Ang orasan ay naka-sync sa NTP (Network Time Protocol) gamit ang isang ESP8266. Ang ESP8266 ay naka-configure upang, sa pagsisimula, ang pagpindot sa isang pindutan sa orasan ay ipapadala ito sa mode ng mga setting. Sa setting mode, ang orasan ay lilikha ng isang WiFi network na naghahatid ng isang webpage na maaaring magamit upang ipasok ang iyong sariling mga setting ng wifi, NTP server, at timezone. Ang impormasyong ito ay nakaimbak sa EEPROM ng ESP8266 at nababasa kapag nagsimula ang orasan sa mode na orasan upang maaari itong kumonekta sa internet at makuha ang oras.
Mga Pantustos:
- NodeMCU ESP8266
- WS2812B LED strip
- Pushbutton
- 470 Ohm risistor
- 10K Ohm risistor
- 470 uF capacitor
- popsicle sticks
- Mga marmol
- Kahoy (o iba pang sheet ng materyal) para sa kaso
Hakbang 1: Circuit
Upang magkaroon ng isang display, ang proyektong ito ay gumagamit ng isang RGB led strip na inilatag sa 3 mga hilera. Pinutol ko ang 3 piraso ng 8 leds mula sa strip ng WS2812B leds at pinagsama ang mga ito. (Marupok ang mga ito at ang paghihinang ng maliliit na pad ay maaaring maging mahirap. Binalot ko ang mga solder na dulo sa electrical tape upang ma-insulate ang mga ito mula sa anumang baluktot.) Kahit na kailangan ko lamang ng 4 na leds bawat hilera, pinutol ko ang mga piraso ng 8 upang ako ay maaaring magkaroon ng mas malaking spacing sa pagitan ng mga ilaw sa pamamagitan lamang ng paggamit ng bawat iba pang mga led. Ang mga piraso na ito ay pagkatapos ay natigil sa isang patag na base na gawa sa mga stick ng popsicle. Sa pagitan ng bawat hilera, ang isang dobleng layer ng mga stick ng popsicle ay nagbibigay ng profile upang ang harapan sa harap ay ma-stuck laban sa loob ng kaso ng orasan (tingnan ang larawan).
Ang led strip ay pinalakas mula sa VU at GND ng NodeMCU. Ang VU ay darating (halos) nang direkta mula sa USB, kaya't nagbibigay ito ng 5V sa mga WS2812B LED kahit na gumagana ang ESP8266 sa 3.3V. Naglagay ako ng 470 uF capacitor sa kabuuan ng kuryente para sa WS2812B strip upang maprotektahan ang mga leds. Ang data para sa led strip ay konektado sa D3 pin ng NodeMCU sa pamamagitan ng 470 Ohm resistor. Sumangguni sa itinuturo na ito para sa karagdagang impormasyon tungkol sa kung paano makontrol ang mga WS2812B leds gamit ang ESP8266. Ang circuit ay soldered papunta sa proto-board na may ilang mga male-to-female header para sa NodeMCU.
Ang isang pushbutton ay nakakabit din sa D6 ng NodeMCU. Maaaring pindutin ang pushbutton na ito habang nagsisimula ang orasan upang ipadala ito sa mode ng mga setting (kung saan maaaring mabago ang mga setting ng wifi, NTP server, at mga kagustuhan ng timezone). Sa isang dulo ang pushbutton ay konektado sa D6 at din sa GND sa pamamagitan ng isang resistor na 10K Ohm at sa kabilang dulo ay konektado ito sa kuryente. Kapag ang pindutan ay hindi naka-compress, mababa ang D6; kapag pinindot ito, mataas ang mabasa ng D6.
Hakbang 2: Software
Ang software para sa ESP8266 ay isinulat gamit ang Arduino code. Ang mga LED ay hinahawakan gamit ang FastLED library at ang pag-sync ng NTP ay ginagawa ng NTPClient library. Ang oras ay nai-sync ng NTP bawat oras.
Sa pagsisimula ng pag-andar ng pag-setup, susuriin ng programa upang makita kung ang pindutang nakakonekta sa D6 ay pinindot. Kung ito ay, lumilikha ang ESP8266 ng isang wifi network (ang SSID at password ay maaaring mabago sa code, ang default na SSID ay "TrueBinary" at ang password ay "thepoweroftwo"). Kumonekta sa network na ito mula sa anumang aparato at mag-navigate sa 192.168.1.1. Maghahatid ang ESP8266 ng isang webpage na may mga form kung saan maaari mong mai-input ang iyong wifi SSID at password, ginustong NTP server, at offset ng timezone mula sa UTC. Matapos isumite ang mga form na ito sa ESP8266, mai-save nito ang impormasyon sa panloob na imbakan ng EEPROM.
Kung ang pindutan ay hindi pinindot, ang orasan ay normal na nagsisimulang, binabasa ang mga setting mula sa EEPROM, kumokonekta sa wifi upang magamit ang NTP, at nagsisimulang ipakita ang oras.
TANDAAN: ang function setDisplay (int index) ay kukuha ng numero ng digit mula 0-11 kung saan 0 ang unang digit (ang kalahating araw) at 11 ang huling (1/4096 ng isang araw) at binubuksan ang kaukulang LED gamit ang " leds "array. Ang function na ito ay dapat mapunan ayon sa kung paano mo na-configure ang display. Ang halimbawa ng aking komento ay tumutugma sa kung paano ko na-solder ang mga hilera sa isang zig-zag na mode kaysa sa end-to-end at nilaktawan ang bawat iba pang LED.
Hakbang 3: Pabahay
Upang maitabi ang orasan, gumamit ako ng isang anggulo ng pininturang kahoy na nagkataong mayroon ako. Sa isang panlabas na mukha, nag-drill ako ng 12 butas sa isang grid na naaayon sa mga posisyon ng mga LED. Pagkatapos ay naidikit ko ang mga LED sa loob ng anggulo sa pamamagitan ng pagdikit ng mga nakataas na mukha ng mga stick ng popsicle sa pagitan ng mga hilera sa kahoy (tulad ng ipinakita). Upang maikalat ang ilaw mula sa mga LED, natigil ko ang mga marmol na salamin sa tuktok ng mga butas. Natapos ko ito sa pamamagitan ng paglubog ng ilalim ng kalahati ng bawat marmol sa epoxy dagta at pagkatapos ay ilagay ang mga ito sa mga butas. Ang NodeMCU at proto-board ay na-tornilyo sa kabilang mukha ng anggulo. Ang mga gilid ay natatakpan gamit ang maliliit na mga triangles ng kahoy, na nakakabit sa kahoy na pandikit. Ang isa sa mga gilid ay may butas para sa micro USB port ng NodeMCU at isang hiwa sa sulok para sa pushbutton.
Hakbang 4: Tapos Na
Tapos na ang aming totoong binary na orasan! Upang i-set up ito, panatilihing napindot ang pindutan habang isaksak ito upang ilagay ito sa setting mode at pagkatapos ay ipasok ang mga kredensyal ng WiFi sa webpage nito. Kapag na-set up, ang orasan ay maaaring mai-plug in kahit saan at awtomatikong kumonekta sa internet at magsisimulang ipakita ang oras sa binary.
Kinakailangan ang isang lugar ng pagsasanay upang mabasa ang oras sa tunay na binary format, ngunit ito ay isang nakakatuwang ehersisyo at pagkaraan ng ilang sandali ay naging isang mabilis na paraan upang makakuha ng oras sa isang sulyap lamang!
Inirerekumendang:
Micro Binary Clock: 10 Hakbang (na may Mga Larawan)
Micro Binary Clock: Ang pagkakaroon dati ng isang Instructable (Binary DVM), na gumagamit ng limitadong lugar ng pagpapakita gamit ang binary. Ito ay isang maliit na hakbang lamang na dati nang nilikha ang pangunahing module module para sa Decimal to Binary conversion sa paglikha ng isang Binary Clock ngunit t
BigBit Binary Clock Display: 9 Mga Hakbang (na may Mga Larawan)
BigBit Binary Clock Display: Sa isang nakaraang Instructable (Microbit Binary Clock), ang proyekto ay perpekto bilang isang portable desktop appliance dahil ang display ay maliit. Samakatuwid tila naaangkop na ang susunod na bersyon ay dapat isang mantel o naka-mount na bersyon ngunit mas malaki
DIY Arduino Binary Alarm Clock: 14 Hakbang (na may Mga Larawan)
DIY Arduino Binary Alarm Clock: Ang klasikong binary na orasan muli! Ngunit sa oras na ito na may higit pang karagdagang pag-andar! Sa itinuturo na ito, ipapakita ko sa iyo kung paano bumuo ng isang binary alarm clock kasama ang Arduino na maaaring ipakita sa iyo hindi lamang oras, ngunit petsa, buwan, kahit na may kasiyahan sa timer at alarma
ESP8266 Network Clock Nang Walang Anumang RTC - Nodemcu NTP Clock Walang RTC - PROYEKTO SA INTERNET CLOCK: 4 na Hakbang
ESP8266 Network Clock Nang Walang Anumang RTC | Nodemcu NTP Clock Walang RTC | INTERNET CLOCK PROJECT: Sa proyekto ay gagawa ng isang proyekto sa orasan nang walang RTC, magtatagal ito mula sa internet gamit ang wifi at ipapakita ito sa display na st7735
Bumuo ng isang Tunay na Bell-striking Clock para sa Iyong PC at isang Fire Extinguisher-Striking Clock .: 3 Mga Hakbang (na may Mga Larawan)
Bumuo ng isang Real Bell-striking Clock para sa Iyong PC at isang Fire Extinguisher-Striking Clock .: Isang tanso na kampanilya, isang maliit na relay ng maraming mga bagay at isang tunay na kampana ay maaaring hampasin ang oras sa iyong desktop. Kahit na ang proyektong ito ay tumatakbo sa Windows at Mac Ang OS X din, nag-idecide ako upang mai-install ang Ubuntu Linux sa isang PC na nakita ko sa basurahan at ginagawa iyon: Hindi ko kailanman