Mundarija:

NTP sinxronlash bilan haqiqiy ikkilik soat: 4 qadam
NTP sinxronlash bilan haqiqiy ikkilik soat: 4 qadam

Video: NTP sinxronlash bilan haqiqiy ikkilik soat: 4 qadam

Video: NTP sinxronlash bilan haqiqiy ikkilik soat: 4 qadam
Video: HAMMA BU FUNKSIYANI O'CHIRIB QO'YISHI KERAK! 2024, Iyul
Anonim
NTP sinxronlash bilan haqiqiy ikkilik soat
NTP sinxronlash bilan haqiqiy ikkilik soat
NTP sinxronlash bilan haqiqiy ikkilik soat
NTP sinxronlash bilan haqiqiy ikkilik soat

Haqiqiy ikkilik soat, vaqtni soat/daqiqa/sekundga mos keladigan ikkilik kodli o'nli raqamlar sifatida ko'rsatadigan an'anaviy "ikkilik soat" dan farqli o'laroq, kunning vaqtini to'liq kunning ikkilik kasrlari yig'indisi sifatida ko'rsatadi. An'anaviy "ikkilik soatlar" haqiqatan ham ikkilik-kodli-o'nli-kodli-sexagesimaldan foydalanadi. Qanday tartibsizlik! Haqiqiy ikkilik soatlar ishlarni juda soddalashtiradi.

Haqiqiy ikkilik soatlarda birinchi raqam sizga yarim kun, ikkinchi raqam chorak kun, uchinchi raqam kunning sakkizinchi qismi va hokazolarni bildiradi, uni har qanday aniqlikda o'qish mumkin (albatta amaliyot bilan).). Birinchi raqam AMga nisbatan PM ni samarali kodlaydi, ikkinchi raqam erta yoki kechmi yoki kechki paytni va boshqalarni kodlaydi.

Haqiqiy ikkilik soatni loyihalashda men o'n ikkita raqamli aniqlikdan foydalanardim, shuning uchun kun 2^12 = 4096 qismga bo'linadi (har bir o'sish taxminan 20 soniya). Barcha raqamlarni satrda ushlab turish o'rniga, 12 ta raqam 4 ta raqamli 3 qatorga bo'lingan. Haqiqiy ikkilik raqamlar o'zgarmagan bo'lsa-da, bu soatni uchta ikkilik kodli oltitali raqam sifatida o'qishga imkon beradi, birinchi satrda kunning 16-si (1,5 soat), ikkinchi satrda 256-chi (~ 5 daqiqa) va uchinchi satrda kunning 4096 -chi qismi (~ 20 sekund) ko'rsatilgan.

Soat ESP8266 yordamida NTP (Tarmoq vaqti protokoli) bilan sinxronlashtiriladi. ESP8266 shunday sozlanganki, ishga tushganda soat tugmachasini bosish uni sozlash rejimiga o'tkazadi. Sozlamalar rejimida soat Wi -Fi tarmog'ini yaratadi, u veb -sahifani o'z Wi -Fi sozlamalarini, NTP -serverini va vaqt mintaqasini kiritish uchun ishlatadi. Bu ma'lumotlar ESP8266 EEPROM -da saqlanadi va soat soat rejimida ishga tushganda o'qiladi, shunda u Internetga ulanadi va vaqtni oladi.

Ta'minot:

  • NodeMCU ESP8266
  • WS2812B LED tasmasi
  • Tugma
  • 470 Ohm qarshilik
  • 10K Ohm qarshilik
  • 470 uF kondansatör
  • Popsicle tayoqchalari
  • Marmar toshlar
  • Koson uchun yog'och (yoki boshqa varaq)

1 -qadam: O'chirish

O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish

Displeyga ega bo'lish uchun ushbu loyihada 3 qatorga qo'yilgan RGB LED tasmasi ishlatiladi. Men WS2812B lampalar tasmasidan 8 ta svetodiodli 3 ta chiziqni kesib, ularni lehimlab qo'ydim. (Ular mo'rt va mayda yostiqchalarni lehimlash qiyin bo'lishi mumkin. Men lehimlangan uchlarini har qanday burilishdan izolyatsiya qilish uchun elektr lentaga o'rab qo'yganman.) Har bir satrga atigi 4 ta LED kerak bo'lsa ham, men 8 ta chiziqni kesib tashladim. Chiroqlar orasidagi masofa faqat har bir boshqa chiroq yordamida bo'lishi mumkin. Keyin bu chiziqlar popsicle tayoqlaridan yasalgan tekis taglikka yopishtirilgan. Har bir qator oralig'ida ikki qavatli tayoqchali profil profilni ta'minlaydi, shunda old yuz soat korpusining ichki qismiga yopishib qoladi (rasmga qarang).

LED chizig'i NodeMCU VU va GND dan quvvatlanadi. VU - bu to'g'ridan -to'g'ri USB -dan keladigan quvvat, shuning uchun u ESP8266 3.3V da ishlasa ham, WS2812B LED -lariga 5V beradi. Men LEDlarni himoya qilish uchun WS2812B tasmasi uchun 470 uF kondansatör joylashtirdim. Led tasmasi uchun ma'lumotlar NodeMCU D3 piniga 470 Ohmli rezistor orqali ulanadi. WS2812B lampalarini ESP8266 bilan qanday boshqarish haqida ko'proq ma'lumot olish uchun ushbu ko'rsatmaga qarang. Devor NodeMCU uchun bir nechta erkak-ayol sarlavhalari bilan proto-taxtaga lehimlangan.

NodeMCU D6 -ga ham tugma biriktirilgan. Bu tugmachani soat boshlanganda uni sozlash rejimiga yuborish uchun bosish mumkin (bunda Wi -Fi sozlamalari, NTP -server va vaqt zonasi sozlamalarini o'zgartirish mumkin). Bir tomondan, tugma D6 ga, shuningdek GND ga 10K Ohmli rezistor orqali ulanadi, ikkinchi tomondan u quvvatga ulanadi. Tugma bosilmaganda, D6 past o'qiydi; bosilganda, D6 baland o'qiydi.

2 -qadam: dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot

ESP8266 uchun dasturiy ta'minot Arduino kodi yordamida yozilgan. LEDlar FastLED kutubxonasi yordamida boshqariladi va NTP sinxronizatsiyasi NTPClient kutubxonasi tomonidan amalga oshiriladi. Vaqt har soatda NTP bilan sinxronlashtiriladi.

O'rnatish funktsiyasi boshlanganda, dastur D6 ga ulangan tugma bosilganligini tekshiradi. Agar shunday bo'lsa, ESP8266 Wi -Fi tarmog'ini yaratadi (SSID va parolni kodda o'zgartirish mumkin, standart SSID "TrueBinary" va parol "thepoweroftwo"). Bu tarmoqqa istalgan qurilmadan ulaning va 192.168.1.1 ga o'ting. ESP8266 sizning Wi -Fi SSID va parolingizni, afzal ko'rilgan NTP -serveringizni va UTC -dan vaqt zonasi ofsetini kiritishingiz mumkin bo'lgan shakllarga ega veb -sahifaga xizmat qiladi. Ushbu shakllar ESP8266 ga yuborilgandan so'ng, u ma'lumotlarni ichki EEPROM xotirasida saqlaydi.

Agar tugma bosilmasa, soat odatdagidek ishga tushadi, EEPROM sozlamalarini o'qiydi, NTPdan foydalanish uchun wifi -ga ulanadi va vaqtni ko'rsatishni boshlaydi.

ESLATMA: setDisplay (int indeksi) funktsiyasi 0-11 gacha bo'lgan raqamni oladi, bu erda 0 birinchi raqam (yarim kun) va 11 oxirgi (kunning 1/4096) raqamidir va "" yordamida mos keladigan LEDni yoqadi. leds "qatori. Bu funksiya displeyni qanday sozlaganingizga qarab to'ldirilishi kerak. Mening sharhlangan misolim, men qatorlarni oxirigacha emas, balki zig-zag uslubida lehimlaganimga va boshqa har bir LEDni o'tkazib yuborganimga to'g'ri keladi.

3 -qadam: uy -joy

Uy -joy
Uy -joy
Uy -joy
Uy -joy
Uy -joy
Uy -joy

Soatni joylashtirish uchun men tasodifan bo'yalgan yog'ochdan foydalanardim. Bir tashqi yuzada men LEDlarning pozitsiyalariga mos keladigan panjara ichida 12 teshik ochdim. Keyin men LEDlarni burchakning ichki qismiga yopishtirdim, popsicle tayoqlarining ko'tarilgan yuzlarini qatorlar orasiga yog'ochga yopishtirdim (ko'rsatilganidek). Yorug'likni LEDlardan tarqatish uchun men teshiklarning ustiga shisha marmarlarni yopishtirdim. Men buni har bir marmarning pastki yarmini epoksi qatroniga botirib, keyin teshiklarga joylashtirish orqali qildim. NodeMCU va proto-taxta burchakning boshqa ichki yuzasiga vidalanadi. Yonlari yog'och yopishtiruvchi bilan biriktirilgan kichik yog'och uchburchaklar yordamida qoplangan. Yonlardan birida NodeMCU mikro USB porti uchun teshik va tugmachaning burchagi kesilgan.

4 -qadam: Bajarildi

Bajarildi!
Bajarildi!
Bajarildi!
Bajarildi!

Bizning haqiqiy ikkilik soatimiz tugadi! Uni sozlash uchun tugmani bosib turing, uni sozlash rejimiga o'tkazing va Wi -Fi hisob ma'lumotlarini o'z veb -sahifasiga kiriting. O'rnatilgandan so'ng, soatni istalgan joyga ulash mumkin va u avtomatik ravishda Internetga ulanadi va vaqtni ikkilik rejimda ko'rsatishni boshlaydi.

Vaqtni haqiqiy ikkilik formatda o'qish uchun juda ko'p tajriba kerak, lekin bu qiziqarli mashg'ulot va bir muncha vaqt o'tgach, vaqtni bir qarashda olishning tezkor usuliga aylanadi!

Tavsiya: