Мазмұны:
Бейне: NTP синхрондауымен шынайы екілік сағат: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Нақты екілік сағат тәулік уақытын толық тәуліктік екілік бөлшектердің қосындысы ретінде көрсетеді, ал уақытты сағат/минут/секундқа сәйкес келетін екілік кодталған ондық сандар түрінде көрсететін дәстүрлі «екілік сағаттан» айырмашылығы. Дәстүрлі «екілік сағаттар» шын мәнінде екілік кодталған-ондық-кодталған-сексагимальды қолданады. Қандай тәртіпсіздік! Нағыз екілік сағаттар жағдайды айтарлықтай жеңілдетеді.
Шынайы екілік сағаттарда бірінші цифр сізге жарты күн, екінші цифр - ширек күн, үшінші сан - тәуліктің сегізіншісі және т.). Бірінші сан AM -ге қарсы PM -ге тиімді код береді, екінші цифр таңертеңгі/кешкі немесе кешкі/кешкі уақытты және т.б.
Менің шынайы екілік сағатты құрастыру кезінде мен рұқсаттың он екі цифрын қолдандым, сондықтан күн 2^12 = 4096 бөлікке бөлінеді (әр қадам шамамен 20 секунд). Барлық цифрларды жолда ұстаудың орнына 12 цифр 4 цифрдан тұратын 3 қатарға бөлінді. Нақты екілік цифрлар өзгеріссіз болса да, бұл сағатты 3 екілік кодталған он алтылық цифрлар ретінде оқуға мүмкіндік береді, бірінші жолда тәуліктің 16-ы (1,5 сағ), екінші жолда тәуліктің 256-шы бөлігі (~ 5 минут) және үшінші жол тәуліктің 4096 -ын көрсетеді (~ 20секунд).
Сағат ESP8266 көмегімен NTP (Network Time Protocol) синхрондалады. ESP8266 іске қосылған кезде сағат түймесін басу оны параметрлер режиміне жіберетін етіп конфигурацияланған. Параметрлер режимінде сағат Wi -Fi желісін құрады, ол сіздің жеке Wi -Fi параметрлерін, NTP серверін және уақыт белдеуін енгізуге болатын веб -бетті ұсынады. Бұл ақпарат ESP8266 EEPROM -да сақталады және ол сағат режимінде іске қосылған кезде оқылады, осылайша ол Интернетке қосылып, уақытты ала алады.
Жабдықтар:
- NodeMCU ESP8266
- WS2812B жарық диодты жолағы
- Батырмаға басу
- 470 Ом резисторы
- 10K Ом резисторы
- 470 uF конденсатор
- Көпіршікті таяқшалар
- Мраморлар
- Корпус үшін ағаш (немесе басқа материалдық парақ)
1 -қадам: Схема
Дисплей болуы үшін бұл жобада 3 қатарға салынған RGB светодиодты жолағы қолданылады. Мен WS2812B светодиодтарынан 8 светодиодтың 3 жолағын кесіп, оларды бірге дәнекерледім. (Олар нәзік және кішкене жастықшаларды дәнекерлеу қиын болуы мүмкін. Мен дәнекерленген ұштарын кез келген иілуден оқшаулау үшін электрлік таспамен орап алдым.) Маған бір қатарға 4 жарық диодты қажет болса да, мен 8 жолақтарды кесіп алдым. барлық басқа светодиодтарды қолдану арқылы шамдар арасындағы үлкен қашықтық болуы мүмкін. Содан кейін бұл белдеулер таяқшалардан жасалған тегіс негізге бекітілді. Әр қатардың арасында екі қабатты попикула таяқшалары профильді қамтамасыз етеді, осылайша алдыңғы бетін сағат корпусының ішкі жағына жабыстыруға болады (суретті қараңыз).
Жарық диодты жол NodeMCU VU мен GND арқылы жұмыс істейді. VU - бұл тікелей USB -ден келетін қуат, сондықтан ол ESP8266 3.3 В -да жұмыс жасаса да, WS2812B светодиодтарына 5В береді. Мен жарықдиодты қорғау үшін WS2812B жолағының қуаты бойынша 470 uF конденсатор қойдым. Жарық диодты жолақ үшін деректер 470 Ом резисторы арқылы NodeMCU D3 түйреуішіне қосылады. ESP8266 көмегімен WS2812B шамдарын басқару туралы қосымша ақпарат алу үшін осы нұсқаулықты қараңыз. Схема NodeMCU үшін ерлер мен әйелдердің кейбір тақырыптары бар протоколға дәнекерленген.
NodeMCU D6 -ге батырмасы да бекітілген. Бұл батырманы сағат басталған кезде оны баптау режиміне жіберу үшін басуға болады (wifi параметрлерін, NTP серверін және уақыт белдеуінің параметрлерін өзгертуге болады). Бір жағынан, түйме D6 -ге, сондай -ақ GND -ге 10К Ом резисторы арқылы қосылады, ал екінші жағында ол қуатқа қосылады. Түйме басылмаса, D6 төмен оқиды; ол басылғанда, D6 жоғары оқиды.
2 -қадам: Бағдарламалық қамтамасыз ету
ESP8266 бағдарламалық жасақтамасы Arduino кодымен жазылған. Жарық диодтары FastLED кітапханасының көмегімен өңделеді және NTP синхрондауды NTPClient кітапханасы жасайды. Уақыт NTP арқылы сағат сайын синхрондалады.
Орнату функциясы басталғанда, бағдарлама D6 -ға қосылған түйменің басылғанын тексереді. Егер солай болса, ESP8266 Wi -Fi желісін жасайды (SSID мен парольді кодта өзгертуге болады, әдепкі SSID - «TrueBinary» және құпия сөз - «thepoweroftwo»). Бұл желіге кез келген құрылғыдан қосылыңыз және 192.168.1.1 тармағына өтіңіз. ESP8266 сіздің Wi -Fi SSID мен пароліңізді, таңдаулы NTP серверін және UTC -тен уақыт белдеуін ауыстыруға болатын формалары бар веб -бетке қызмет көрсетеді. Бұл формалар ESP8266 -ға жіберілгеннен кейін, ол ақпаратты өзінің ішкі EEPROM қоймасына сақтайды.
Егер түйме басылмаса, сағат қалыпты түрде қосылады, EEPROM параметрлерін оқиды, NTP пайдалану үшін Wi -Fi желісіне қосылады және уақытты көрсете бастайды.
ЕСКЕРТПЕ: setDisplay (int индексі) функциясы 0-11 дейінгі цифрларды қабылдайды, мұнда 0-бірінші сан (жарты күн) және 11-соңғы (тәуліктің 1/4096) және сәйкес жарықдиодты «. leds »массиві. Бұл функция дисплейдің конфигурациясына сәйкес толтырылуы керек. Менің түсіндірілген мысал жолдарды біртіндеп емес, дөңгелек етіп қалай дәнекерлегеніме және басқа жарық диодты өткізіп жібергеніме сәйкес келеді.
3 -қадам: тұрғын үй
Сағатты орналастыру үшін мен өзім боялған ағаштың бұрышын қолдандым. Бір сыртқы бетінде мен светодиодтардың орналасуына сәйкес келетін торда 12 тесік бұрғыладым. Мен светодиодтарды бұрыштың ішкі жағына жапсырылған таяқшалардың көтерілген беттерін жолдар арасында ағашқа жабыстыру арқылы жапсырдым (суретте көрсетілгендей). Жарық диодтарынан жарық тарату үшін мен тесіктердің үстіне шыны мәрмәрді жапсырдым. Мен мұны әр мәрмәрдің төменгі жартысын эпоксидті шайырға батырып, содан кейін тесіктерге салу арқылы жасадым. NodeMCU мен протокол тақтасы бұрыштың басқа ішкі бетіне бекітілген. Бүйірлері ағаш желіммен бекітілген ағаштың үшбұрыштары арқылы жабылған. Бүйірлердің бірінде NodeMCU микро USB портына арналған тесік бар және батырманың бұрышында кесілген.
4 -қадам: Орындалды
Біздің шынайы екілік сағат аяқталды! Реттеу үшін оны қосқанда қосулы күйде ұстап тұрыңыз, содан кейін оны параметрлер режиміне қойыңыз, содан кейін Wi -Fi тіркелгі деректерін оның веб -бетіне енгізіңіз. Реттелгеннен кейін сағатты кез келген жерге қосуға болады және ол автоматты түрде интернетке қосылып, уақытты екілік түрде көрсете бастайды.
Уақытты шынайы екілік форматта оқу үшін біршама тәжірибе қажет, бірақ бұл қызықты жаттығу және біраз уақыттан кейін бұл уақытты тек бір көзбен қараудың жылдам әдісіне айналады!
Ұсынылған:
Микро екілік сағат: 10 қадам (суреттермен)
Micro Binary Clock: Бұрын бинарлық дисплейдің шектеулі аймағын пайдаланатын Instructable (Binary DVM) құрылды, бұл екілік сағатты құруға ондықтан екілікке түрлендірудің негізгі код модулін құрған шағын қадам болды
BigBit екілік сағат дисплейі: 9 қадам (суреттермен)
BigBit екілік сағат дисплейі: Алдыңғы нұсқаулықта (Microbit екілік сағаты) жоба портативті жұмыс үстелі құралы ретінде өте ыңғайлы болды, себебі дисплей өте кішкентай еді, сондықтан келесі нұсқа мантель немесе қабырғаға бекітілген нұсқа болуы керек сияқты, бірақ әлдеқайда үлкен
Екілік сағат V1.0: 5 қадам
Binary Clock V1.0: Барлығы екілік сағаттарды жақсы көреді, әсіресе мен сияқты пысық жасаушылар. Бұл нұсқаулықта мен сізге сөреден тыс және модульдік модульдерді қолдана отырып, екілік сағатты қалай жасауға болатынын көрсетемін
Дыбыстық визуализация, екілік сағат және FM қабылдағышы бар үстел күшейткіші: 8 қадам (суреттермен)
Дыбыстық визуализация, екілік сағат және FM қабылдағышы бар үстел күшейткіші: маған күшейткіштер ұнайды, мен бүгін жақында жасаған қуаты төмен үстел күшейткішімен бөлісемін. Мен жасаған күшейткіштің бірнеше қызықты ерекшеліктері бар. Оның қосарланған екілік сағаты бар, ол уақыт пен күнді бере алады және аудио деп аталатын дыбысты бейнелей алады
Attiny85 көмегімен қарапайым екілік сағат: 10 қадам
Attiny85 көмегімен қарапайым екілік сағат: Сәлеметсіз бе! Бұл нұсқаулықта мен минималистік және қарапайым екілік сағатты қалай жасау керектігін көрсетемін arduino uno мен attiny85. (Мен оны бірінші рет сынап көрдім