विषयसूची:

एनटीपी सिंक के साथ ट्रू बाइनरी क्लॉक: 4 कदम
एनटीपी सिंक के साथ ट्रू बाइनरी क्लॉक: 4 कदम

वीडियो: एनटीपी सिंक के साथ ट्रू बाइनरी क्लॉक: 4 कदम

वीडियो: एनटीपी सिंक के साथ ट्रू बाइनरी क्लॉक: 4 कदम
वीडियो: New Years Countdown with True and the Rainbow Kingdom 2024, जुलाई
Anonim
एनटीपी सिंक के साथ ट्रू बाइनरी क्लॉक
एनटीपी सिंक के साथ ट्रू बाइनरी क्लॉक
एनटीपी सिंक के साथ ट्रू बाइनरी क्लॉक
एनटीपी सिंक के साथ ट्रू बाइनरी क्लॉक

एक सच्ची बाइनरी घड़ी दिन के समय को पूरे दिन के बाइनरी अंशों के योग के रूप में प्रदर्शित करती है, पारंपरिक "बाइनरी घड़ी" के विपरीत जो समय को घंटे/मिनट/सेकंड के अनुरूप बाइनरी-एन्कोडेड दशमलव अंकों के रूप में प्रदर्शित करती है। पारंपरिक "बाइनरी क्लॉक" वास्तव में बाइनरी-एन्कोडेड-दशमलव-एन्कोडेड-सेक्सजेसिमल का उपयोग कर रहे हैं। क्या झंझट है! सच्ची बाइनरी घड़ियाँ चीजों को बेहद सरल बनाती हैं।

एक वास्तविक बाइनरी घड़ी में, पहला अंक आपको बताता है कि आधा दिन है, दूसरा अंक एक चौथाई दिन है, तीसरा अंक एक दिन का आठवां है, आदि। इसे किसी भी संकल्प को बहुत जल्दी पढ़ा जा सकता है (पाठ्यक्रम के अभ्यास के साथ)) पहला अंक एएम बनाम पीएम को प्रभावी ढंग से एन्कोड करता है, दूसरा अंक एन्कोड करता है कि यह शुरुआती एएम/पीएम या देर से एएम/पीएम है, और इसी तरह।

अपनी वास्तविक बाइनरी घड़ी को डिजाइन करने में, मैंने संकल्प के बारह अंकों का उपयोग किया, इसलिए दिन को 2^12=4096 भागों में विभाजित किया गया है (प्रत्येक वेतन वृद्धि लगभग 20 सेकंड है)। सभी अंकों को एक पंक्ति में रखने के बजाय, 12 अंकों को 4 अंकों की 3 पंक्तियों में विभाजित किया गया था। हालांकि वास्तविक बाइनरी अंक अपरिवर्तित हैं, यह घड़ी को 3 बाइनरी-एन्कोडेड हेक्स अंकों के रूप में पढ़ने की अनुमति देता है, पहली पंक्ति एक दिन के 16 वें (1.5 घंटे) दिखाती है, दूसरी पंक्ति 256 वें दिन (~ 5 मिनट) दिखाती है, और तीसरी पंक्ति एक दिन का ४०९६वां (~२०सेकंड) दिखा रही है।

घड़ी को ESP8266 का उपयोग करके NTP (नेटवर्क टाइम प्रोटोकॉल) के साथ समन्वयित किया जाता है। ESP8266 को कॉन्फ़िगर किया गया है, ताकि स्टार्टअप पर, घड़ी पर एक बटन दबाने से यह सेटिंग मोड में आ जाए। सेटिंग मोड में, घड़ी एक वाईफाई नेटवर्क बनाएगी जो एक वेबपेज परोसता है जिसका उपयोग आपकी खुद की वाईफाई सेटिंग्स, एनटीपी सर्वर और टाइमज़ोन में प्रवेश करने के लिए किया जा सकता है। यह जानकारी ESP8266 के EEPROM में संग्रहीत होती है और इसे तब पढ़ा जाता है जब घड़ी घड़ी मोड में शुरू होती है ताकि यह इंटरनेट से जुड़ सके और समय को पुनः प्राप्त कर सके।

आपूर्ति:

  • NodeMCU ESP8266
  • WS2812B एलईडी पट्टी
  • दबाने वाला बटन
  • 470 ओम रोकनेवाला
  • 10K ओम रोकनेवाला
  • 470 यूएफ संधारित्र
  • आइसक्रीम पर लकड़ी का खोंचा
  • पत्थर
  • मामले के लिए लकड़ी (या सामग्री की अन्य शीट)

चरण 1: सर्किट

सर्किट
सर्किट
सर्किट
सर्किट
सर्किट
सर्किट
सर्किट
सर्किट

प्रदर्शन के लिए, यह परियोजना 3 पंक्तियों में रखी गई RGB एलईडी पट्टी का उपयोग करती है। मैंने WS2812B एलईडी की पट्टी से 8 एलईडी की 3 स्ट्रिप्स काट दीं और उन्हें एक साथ मिला दिया। (वे नाजुक होते हैं और छोटे पैड को टांका लगाना मुश्किल हो सकता है। मैंने टांका लगाने वाले सिरों को बिजली के टेप में लपेट दिया ताकि उन्हें किसी भी झुकने से बचाया जा सके।) भले ही मुझे प्रति पंक्ति केवल 4 एलईडी की आवश्यकता हो, मैंने 8 की स्ट्रिप्स काट दीं ताकि मैं केवल हर दूसरे एलईडी का उपयोग करके रोशनी के बीच अधिक अंतर हो सकता है। फिर इन पट्टियों को पॉप्सिकल स्टिक से बने एक सपाट आधार पर चिपका दिया गया। प्रत्येक पंक्ति के बीच, पॉप्सिकल स्टिक्स की एक डबल परत प्रोफ़ाइल प्रदान करती है ताकि सामने का चेहरा घड़ी के केस के अंदर से चिपका हो (फोटो देखें)।

एलईडी पट्टी NodeMCU के VU और GND से संचालित होती है। VU सीधे USB से आने वाली (लगभग) शक्ति है, इसलिए यह WS2812B LED को 5V प्रदान करता है, भले ही ESP8266 3.3V पर काम करता हो। मैंने एलईडी की सुरक्षा के लिए WS2812B स्ट्रिप के लिए पूरे पावर में 470 uF कैपेसिटर लगाया। एलईडी पट्टी के लिए डेटा 470 ओम रोकनेवाला के माध्यम से NodeMCU के D3 पिन से जुड़ा है। ESP8266 के साथ WS2812B एलईडी को कैसे नियंत्रित किया जाए, इस बारे में अधिक जानकारी के लिए इस निर्देश को देखें। सर्किट को NodeMCU के लिए कुछ पुरुष-से-महिला हेडर के साथ प्रोटो-बोर्ड पर मिलाया गया था।

NodeMCU के D6 से एक पुशबटन भी जुड़ा हुआ था। यह पुशबटन तब दबाया जा सकता है जब घड़ी इसे सेटिंग मोड में भेजने के लिए शुरू हो रही है (जिसमें वाईफाई सेटिंग्स, एनटीपी सर्वर और टाइमज़ोन वरीयताओं को संशोधित किया जा सकता है)। एक छोर पर पुशबटन को D6 से और GND से 10K ओम रेसिस्टर के माध्यम से जोड़ा जाता है और दूसरे छोर पर यह पावर से जुड़ा होता है। जब बटन दबाया जाता है, तो D6 कम पढ़ता है; जब इसे दबाया जाता है, तो D6 उच्च पढ़ता है।

चरण 2: सॉफ्टवेयर

सॉफ्टवेयर
सॉफ्टवेयर

ESP8266 के लिए सॉफ्टवेयर Arduino कोड का उपयोग करके लिखा गया था। LED को FastLED लाइब्रेरी का उपयोग करके नियंत्रित किया जाता है और NTP सिंकिंग NTPClient लाइब्रेरी द्वारा किया जाता है। समय हर घंटे एनटीपी द्वारा सिंक किया जाता है।

सेटअप फ़ंक्शन की शुरुआत में, प्रोग्राम यह देखने के लिए जांचता है कि क्या D6 से जुड़ा बटन दबाया गया है। यदि ऐसा है, तो ESP8266 एक वाईफाई नेटवर्क बनाता है (SSID और पासवर्ड को कोड में बदला जा सकता है, डिफ़ॉल्ट SSID "TrueBinary" है और पासवर्ड "the poweroftwo" है)। किसी भी डिवाइस से इस नेटवर्क से कनेक्ट करें और 192.168.1.1 पर नेविगेट करें। ESP8266 फॉर्म के साथ एक वेबपेज की सेवा करेगा जहां आप अपने वाईफाई एसएसआईडी और पासवर्ड, पसंदीदा एनटीपी सर्वर और यूटीसी से टाइमज़ोन ऑफसेट इनपुट कर सकते हैं। इन प्रपत्रों को ESP8266 में जमा करने के बाद, यह जानकारी को इसके आंतरिक EEPROM संग्रहण में सहेज लेगा।

यदि बटन नहीं दबाया जाता है, तो घड़ी सामान्य रूप से शुरू होती है, EEPROM से सेटिंग्स को पढ़ती है, NTP का उपयोग करने के लिए वाईफाई से जुड़ती है, और समय प्रदर्शित करना शुरू करती है।

नोट: फ़ंक्शन सेटडिस्प्ले (इंट इंडेक्स) 0-11 से अंक संख्या लेता है जहां 0 पहला अंक (आधा दिन) है और 11 अंतिम (दिन का 1/4096) है और संबंधित एलईडी का उपयोग करके चालू करता है " एलईडी" सरणी। आपने डिस्प्ले को कैसे कॉन्फ़िगर किया है, इसके अनुसार इस फ़ंक्शन को भरना होगा। मेरा कमेंट आउट उदाहरण इस बात से मेल खाता है कि कैसे मैंने एंड-टू-एंड के बजाय ज़िग-ज़ैग फैशन में पंक्तियों को मिलाया और हर दूसरे एलईडी को छोड़ दिया।

चरण 3: आवास

आवास
आवास
आवास
आवास
आवास
आवास

घड़ी को रखने के लिए, मैंने चित्रित लकड़ी के एक कोण का उपयोग किया जो मेरे पास हुआ था। एक बाहरी चेहरे पर, मैंने एल ई डी की स्थिति के अनुरूप ग्रिड में 12 छेद ड्रिल किए। मैंने तब लकड़ी के बीच में (जैसा कि दिखाया गया है) पंक्तियों के बीच पॉप्सिकल स्टिक के उभरे हुए चेहरों को चमकाकर एल ई डी को कोण के अंदर से चिपका दिया। एल ई डी से प्रकाश को फैलाने के लिए, मैंने छेदों के ऊपर कांच के पत्थर चिपका दिए। मैंने प्रत्येक संगमरमर के निचले आधे हिस्से को एपॉक्सी राल में डुबो कर और फिर उन्हें छिद्रों में रखकर इसे पूरा किया। NodeMCU और प्रोटो-बोर्ड को कोण के अंदर के दूसरे हिस्से में खराब कर दिया गया था। लकड़ी के गोंद से जुड़े लकड़ी के छोटे त्रिकोणों का उपयोग करके पक्षों को कवर किया गया था। पक्षों में से एक में NodeMCU के माइक्रो USB पोर्ट के लिए एक छेद है और पुशबटन के लिए कोने में एक कट है।

चरण 4: हो गया

किया हुआ!
किया हुआ!
किया हुआ!
किया हुआ!

हमारी असली बाइनरी घड़ी समाप्त हो गई है! इसे सेट करने के लिए, सेटिंग मोड में डालने के लिए इसे प्लग इन करते समय बटन को दबाए रखें और फिर इसके वेबपेज पर वाईफाई क्रेडेंशियल दर्ज करें। एक बार सेट हो जाने पर, घड़ी को कहीं भी प्लग किया जा सकता है और स्वचालित रूप से इंटरनेट से कनेक्ट हो जाएगा और बाइनरी में समय प्रदर्शित करना शुरू कर देगा।

वास्तविक बाइनरी प्रारूप में समय पढ़ने के लिए अभ्यास का एक स्थान लेता है, लेकिन यह एक मजेदार अभ्यास है और थोड़ी देर बाद यह केवल एक नज़र के साथ समय निकालने का एक त्वरित तरीका बन जाता है!

सिफारिश की: