Мазмуну:
Video: Чыныгы экилик саат NTP шайкештештирүү менен: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Чыныгы бинардык саат күндүн убакытын толук күндүн бинардык бөлүктөрүнүн жыйындысы катары көрсөтөт, ал эми саатка/мүнөткө/секундга туура келген бинардык коддолгон ондук сандар катары көрсөтүүчү салттуу "бинардык сааттан" айырмаланып. Салттуу "бинардык сааттар" чынында экилик-коддолгон-ондуктуу-коддуу-сексисаналдыкты колдонуп жатышат. Кандай башаламандык! Чыныгы бинардык сааттар нерселерди абдан жөнөкөйлөтөт.
Чыныгы бинардык саатта, биринчи цифра сизге жарым күн, экинчи цифра - чейрек күн, үчүнчү цифра - күндүн сегизинчиси ж.). Биринчи сан эффективдүү түрдө AMге каршы PMге код коет, экинчи цифр эртең мененки AM/PM же кеч 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 тармагын түзөт, ал веб -баракчаны тейлейт, ал сиздин жеке wifi жөндөөлөрүңүздү, NTP серверин жана убакыт алкагын киргизүүгө колдонулат. Бул маалымат ESP8266 EEPROMдо сакталат жана саат интернет режимине туташып, убакытты алуу үчүн саат режиминде баштаганда окулат.
Берилиштер:
- NodeMCU ESP8266
- WS2812B LED тасмасы
- Pushbutton
- 470 Ом каршылыгы
- 10K Ohm каршылыгы
- 470 uF конденсатор
- Попсикула таяктары
- Мрамор
- Иш үчүн жыгач (же башка материалдык барак)
1 -кадам: Circuit
Дисплейге ээ болуу үчүн, бул проект 3 катар коюлган RGB LED тилкесин колдонот. Мен WS2812B леддеринин тилкесинен 8 леддин 3 тилкесин кесип, аларды чогуу коштум. (Алар морт жана кичинекей блокнотторду ширетүү кыйын болушу мүмкүн. Мен ширетилген учтарын электр лентага ороп, аларды ийилүүдөн коргойм.) Мага ар бир катарга 4 лед керек болсо да, мен 8 тилкени кесип алдым. башка леддерди колдонуу менен чырактардын ортосунда көбүрөөк аралык болушу мүмкүн. Бул тилкелер попсикул таякчаларынан жасалган жалпак базага жабыштырылган. Ар бир катардын ортосунда, попсикула таякчаларынын эки катмары профилди камсыз кылат, ошондуктан алдыңкы бет саатынын корпусунун ичине жабышып калат (сүрөттү караңыз).
Жетектелген тилке NodeMCUнун VU жана GNDден иштейт. VU - бул (дээрлик) түздөн -түз USBден келген энергия, ошондуктан ESP8266 3.3Vде иштесе да, WS2812B светодиоддоруна 5В камсыз кылат. Мен леддерди коргоо үчүн WS2812B тилкесине 470 uF конденсаторун койдум. Жетектелген тилке үчүн маалыматтар NodeMCU D3 пинине 470 Ом резистору аркылуу туташкан. WS2812B лампаларын ESP8266 менен кантип көзөмөлдөө керектиги жөнүндө көбүрөөк маалымат алуу үчүн бул көрсөтмөгө кайрылыңыз. Схема NodeMCU үчүн кээ бир эркек-аял башчылары менен прото тактасына ширетилген.
NodeMCU D6га баскыч басылган. Бул баскычты саат башталып жатканда, аны жөндөө режимине жөнөтүү үчүн басып коюуга болот (анда wifi орнотуулары, NTP сервери жана убакыт алкагынын каалоолору өзгөртүлүшү мүмкүн). Бир четинде баскыч D6га, ошондой эле GNDге 10К Ом резистору аркылуу туташат, экинчи жагынан электрге туташат. Кнопка басылбаса, D6 төмөн окуйт; басылганда, D6 бийик окуйт.
2 -кадам: Программалык камсыздоо
ESP8266 үчүн программа Arduino коду менен жазылган. Жарык диоддор FastLED китепканасынын жардамы менен иштетилет жана NTP синхрондоштуруу NTPClient китепканасы тарабынан жүргүзүлөт. Убакыт NTP менен саат сайын шайкештирилет.
Орнотуу функциясы башталганда, программа D6га туташкан баскычтын басылганын текшерет. Эгер ошондой болсо, ESP8266 wifi тармагын түзөт (SSID менен сырсөздү коддо өзгөртүүгө болот, демейки SSID "TrueBinary" жана сырсөз "thepoweroftwo"). Бул тармакка каалаган түзмөктөн туташып, 192.168.1.1 өтүңүз. ESP8266 Wifi SSID жана сырсөзүңүздү, артыкчылыктуу NTP серверин жана UTCтен убакыт алкагын жылдыра турган формалары бар веб -баракчаны тейлейт. Бул формалар ESP8266га тапшырылгандан кийин, маалыматты ички EEPROM сактагычына сактайт.
Эгерде баскыч басылбаса, саат кадимкидей башталат, EEPROMдан орнотууларды окуйт, NTP колдонуу үчүн wifiга туташат жана убакытты көрсөтө баштайт.
ЭСКЕРТҮҮ: setDisplay (int индекси) функциясы 0-11 сандарынын санын алат, мында 0-биринчи цифра (жарым күн) жана 11-акыркы (күндүн 1/4096) жана тиешелүү LEDди ". leds "массиви. Бул функция дисплейди кантип конфигурациялаганыңызга жараша толтурулушу керек. Менин комментарий берген мисалым, мен катарларды учу-кыйырына чейин эмес, zig-zag стилинде кантип ширеткениме жана башка LEDлерди өткөрүп жибергениме дал келет.
3 -кадам: Турак жай
Саатты жайгаштыруу үчүн, мен боёлгон жыгачтын бурчун колдондум. Бир сырткы бетимде, светодиоддордун позициясына туура келген тордо 12 тешик бургуладым. Мен диоддорду бурчтун ичине жабыштырып, катарлардын ортосундагы popsicle таякчаларынын көтөрүлгөн жүздөрүн жыгачка жабыштырдым (көрсөтүлгөндөй). Светодиоддордон жарыкты таркатуу үчүн тешиктердин үстүнө айнек мраморлорду чаптадым. Мен муну ар бир мрамордун түбүнүн жарымын эпоксидик чайырга малып, анан тешиктерге салуу менен ишке ашырдым. NodeMCU жана прото тактасы бурчтун башка ички бетине сайылган. Капталдары жыгач желим менен бекитилген кичинекей үч бурчтуктар менен жабылган. Капталдарынын биринде NodeMCUнун микро USB порту үчүн тешик жана баскычтын бурчунда кесүү бар.
4 -кадам: Бүттү
Биздин чыныгы бинардык саат бүттү! Аны орнотуу үчүн, туташтырып жатканда баскычты басып туруңуз, аны жөндөөлөр режимине коюп, андан кийин веб -баракчасына WiFi грамоталарын киргизиңиз. Орнотулгандан кийин, саат каалаган жерге туташтырылышы мүмкүн жана автоматтык түрдө интернетке туташып, убакытты бинардык түрдө көрсөтө баштайт.
Убакытты чыныгы бинардык форматта окуу үчүн бир аз практика керек, бирок бул кызыктуу көнүгүү жана бир аздан кийин убакытты бир гана көз караш менен алуунун тез жолу болуп калат!
Сунушталууда:
BigBit экилик саат дисплейи: 9 кадам (сүрөттөр менен)
BigBit Binary Clock Display: Мурунку Instructable (Microbit Binary Clock) долбоору дисплей абдан кичинекей болгондуктан портативдүү рабочий шайман катары идеалдуу болчу, андыктан кийинки версия мантел же дубалга орнотулган версия болушу керек, бирок алда канча чоңураак
Аудио визуалдаштыруу, экилик саат жана FM кабыл алгыч менен иштөө столунун күчөткүчү: 8 кадам (сүрөттөр менен)
Үстөл күчөткүчү Аудио визуалдаштыруу, бинардык саат жана FM кабыл алгыч: Мен күчөткүчтөрдү жакшы көрөм жана бүгүн мен аз кубаттуу стол күчөткүчүм менен бөлүшөм. Мен иштеп чыккан күчөткүч кызыктуу өзгөчөлүктөргө ээ. Ал бирдиктүү бинардык саатка ээ жана убакытты жана датаны бере алат жана аудио деп аталган аудиону элестете алат
Attiny85ти колдонуу менен жөнөкөй экилик саат: 10 кадам
Attiny85 менен жөнөкөй экилик саат: Саламатсыздарбы! (Мен муну биринчи жолу сынап көрдүм
Санарип жана экилик саат 8 сандан турган X 7 сегменттеги LED дисплей: 4 кадам (сүрөттөр менен)
Санарип жана экилик саат 8 цифралуу X 7 сегментте LED дисплейи: Бул менин санарип & 8 -разряддуу х 7 сегменттеги LED дисплейди колдонуп бинардык саат. Мен кадимки түзмөктөргө, өзгөчө сааттарга жаңы мүмкүнчүлүктөрдү бергим келет жана бул учурда бинардык саат үчүн 7 сегменттүү дисплейди колдонуу салттуу эмес жана ал
LED экилик саат: 6 кадам (сүрөттөр менен)
LED экилик сааты: Бул менин PIC негизделген LED экилик саатымдын экинчи версиясы. Оригиналдуу версия мен аракет кылган биринчи PIC долбоору болчу, ал убакытты сактоо үчүн да, дисплей матрицасын башкаруу үчүн да PIC16F84A колдонгон, тилекке каршы, ал жетиштүү убакытты сактаган жок