সুচিপত্র:

এনটিপি সিঙ্ক সহ সত্য বাইনারি ঘড়ি: 4 টি ধাপ
এনটিপি সিঙ্ক সহ সত্য বাইনারি ঘড়ি: 4 টি ধাপ

ভিডিও: এনটিপি সিঙ্ক সহ সত্য বাইনারি ঘড়ি: 4 টি ধাপ

ভিডিও: এনটিপি সিঙ্ক সহ সত্য বাইনারি ঘড়ি: 4 টি ধাপ
ভিডিও: ESP32 Tutorial 53 - Build an LCD Internet Clock | SunFounder's ESP32 IoT Learnig kit 2024, জুলাই
Anonim
এনটিপি সিঙ্ক সহ সত্য বাইনারি ঘড়ি
এনটিপি সিঙ্ক সহ সত্য বাইনারি ঘড়ি
এনটিপি সিঙ্ক সহ সত্য বাইনারি ঘড়ি
এনটিপি সিঙ্ক সহ সত্য বাইনারি ঘড়ি

একটি সত্য বাইনারি ঘড়ি দিনের সময়কে পুরো দিনের বাইনারি ভগ্নাংশের সমষ্টি হিসাবে প্রদর্শন করে, যা একটি traditionalতিহ্যগত "বাইনারি ঘড়ি" এর বিপরীতে যা ঘন্টা/মিনিট/সেকেন্ডের সাথে সম্পর্কিত বাইনারি-এনকোডেড দশমিক সংখ্যা হিসাবে সময় প্রদর্শন করে। Traতিহ্যগত "বাইনারি ঘড়ি" সত্যিই বাইনারি-এনকোডেড-দশমিক-এনকোডেড-সেক্সেজিমেল ব্যবহার করছে। কী এলোমেলো! সত্য বাইনারি ঘড়িগুলি জিনিসগুলিকে ব্যাপকভাবে সরল করে।

একটি সত্য বাইনারি ঘড়িতে, প্রথম সংখ্যাটি আপনাকে বলে অর্ধেক দিন, দ্বিতীয় সংখ্যাটি একটি চতুর্থাংশ দিন, তৃতীয় সংখ্যাটি একটি দিনের অষ্টমী ইত্যাদি। এটি খুব দ্রুত যেকোনো রেজোলিউশনে পড়তে পারে)। প্রথম অঙ্কটি কার্যকরভাবে AM বনাম PM কে এনকোড করে, দ্বিতীয় সংখ্যাটি তাড়াতাড়ি AM/PM বা দেরী AM/PM ইত্যাদি এনকোড করে, ইত্যাদি।

আমার সত্যিকারের বাইনারি ঘড়ি ডিজাইন করার সময়, আমি রেজোলিউশনের বারো সংখ্যা ব্যবহার করেছি, তাই দিনটি 2^12 = 4096 অংশে বিভক্ত (প্রতিটি বৃদ্ধি প্রায় 20 সেকেন্ড)। সমস্ত অঙ্ককে এক লাইনে রাখার পরিবর্তে, 12 টি সংখ্যাকে 4 টি সংখ্যার 3 টি সারিতে বিভক্ত করা হয়েছিল। যদিও প্রকৃত বাইনারি সংখ্যাগুলি অপরিবর্তিত, এটি ঘড়িটিকে 3 বাইনারি-এনকোডেড হেক্স ডিজিট হিসাবে পড়তে দেয়, প্রথম লাইনটি দিনের 16 তম (1.5 ঘন্টা), দ্বিতীয় লাইনটি দিনের 256 তম (~ 5 মিনিট), এবং তৃতীয় লাইনটি দিনের 4096 তম (~ 20 সেকেন্ড) দেখায়।

একটি ESP8266 ব্যবহার করে ঘড়িটি NTP (নেটওয়ার্ক টাইম প্রোটোকল) -এ সিঙ্ক করা হয়েছে। ESP8266 কনফিগার করা হয়েছে যাতে, প্রারম্ভে, ঘড়ির একটি বোতাম টিপে সেটি সেটিংস মোডে পাঠানো হবে। সেটিংস মোডে, ঘড়িটি একটি ওয়াইফাই নেটওয়ার্ক তৈরি করবে যা একটি ওয়েবপৃষ্ঠা সরবরাহ করে যা আপনার নিজের ওয়াইফাই সেটিংস, এনটিপি সার্ভার এবং টাইমজোন প্রবেশ করতে ব্যবহার করা যেতে পারে। এই তথ্যটি ESP8266 এর EEPROM- এ সংরক্ষিত থাকে এবং যখন ঘড়িটি ঘড়ির মোডে শুরু হয় তখন পড়া হয় যাতে এটি ইন্টারনেটে সংযুক্ত হতে পারে এবং সময় পুনরুদ্ধার করতে পারে।

সরবরাহ:

  • NodeMCU ESP8266
  • WS2812B LED স্ট্রিপ
  • বোতাম চাপা
  • 470 ওহম প্রতিরোধক
  • 10K ওহম প্রতিরোধক
  • 470 ইউএফ ক্যাপাসিটর
  • Popsicle লাঠি
  • মার্বেল
  • কেস জন্য কাঠ (বা উপাদান অন্যান্য শীট)

ধাপ 1: সার্কিট

সার্কিট
সার্কিট
সার্কিট
সার্কিট
সার্কিট
সার্কিট
সার্কিট
সার্কিট

একটি প্রদর্শন করার জন্য, এই প্রকল্পটি একটি RGB নেতৃত্বাধীন স্ট্রিপ ব্যবহার করে যা 3 টি সারিতে রাখা আছে। আমি WS2812B leds এর স্ট্রিপ থেকে 8 টি লেডের 3 টি স্ট্রিপ কেটেছি এবং সেগুলো একসঙ্গে বিক্রি করেছি। (এগুলি ভঙ্গুর এবং ছোট প্যাডগুলি সোল্ডার করা কঠিন হতে পারে। আমি সোল্ডার্ড প্রান্তগুলিকে বৈদ্যুতিক টেপে আবৃত করেছিলাম যাতে সেগুলি যে কোনও নমন থেকে বিরত থাকে।) যদিও আমার প্রতি সারিতে মাত্র 4 টি লেড দরকার ছিল, আমি 8 টি স্ট্রিপ কেটে দিয়েছিলাম যাতে আমি শুধুমাত্র অন্য প্রতিটি নেতৃত্ব ব্যবহার করে লাইটের মধ্যে বৃহত্তর ব্যবধান থাকতে পারে। এই স্ট্রিপগুলি তখন পপসিকল স্টিক দিয়ে তৈরি একটি সমতল বেসে আটকে ছিল। প্রতিটি সারির মাঝখানে, পপসিকল স্টিকগুলির একটি ডবল স্তর প্রোফাইল সরবরাহ করে যাতে সামনের মুখটি ঘড়ির কেসের ভিতরে আটকে যায় (ছবি দেখুন)।

নেতৃত্বাধীন স্ট্রিপটি NodeMCU এর VU এবং GND থেকে চালিত। VU হল USB থেকে সরাসরি পাওয়ার (প্রায়), তাই এটি WS2812B LEDs তে 5V প্রদান করে যদিও ESP8266 3.3V এ কাজ করে। আমি LEDs রক্ষার জন্য WS2812B স্ট্রিপের শক্তি জুড়ে একটি 470 uF ক্যাপাসিটর স্থাপন করেছি। নেতৃত্বাধীন স্ট্রিপের জন্য ডেটা 470 ওহম প্রতিরোধকের মাধ্যমে নোডএমসিইউ এর ডি 3 পিনের সাথে সংযুক্ত। ESP8266 এর সাথে WS2812B এলইডিগুলি কীভাবে নিয়ন্ত্রণ করতে হয় সে সম্পর্কে আরও তথ্যের জন্য এই নির্দেশাবলী পড়ুন। NodeMCU- এর জন্য কিছু পুরুষ-থেকে-মহিলা হেডার সহ সার্কিটটি প্রোটো-বোর্ডে বিক্রি হয়েছিল।

NodeMCU এর D6 এর সাথে একটি পুশবাটনও সংযুক্ত ছিল। এই pushbutton টিপতে পারে যখন ঘড়ি শুরু হচ্ছে সেটিংস মোডে পাঠানোর জন্য (যেখানে ওয়াইফাই সেটিংস, NTP সার্ভার এবং টাইমজোন পছন্দ পরিবর্তন করা যেতে পারে)। এক প্রান্তে পুশবটনটি D6 এর সাথে এবং 10K ওহম রোধকের মাধ্যমে GND এর সাথে সংযুক্ত এবং অন্য প্রান্তে এটি বিদ্যুতের সাথে সংযুক্ত। যখন বোতামটি চাপানো হয়, D6 কম পড়ে; যখন এটি চাপা হয়, D6 উচ্চ পড়ে।

ধাপ 2: সফটওয়্যার

সফটওয়্যার
সফটওয়্যার

ESP8266 এর জন্য সফটওয়্যারটি Arduino কোড ব্যবহার করে লেখা হয়েছিল। এলইডিগুলি FastLED লাইব্রেরি ব্যবহার করে পরিচালিত হয় এবং NTP সিঙ্কিং NTPClient লাইব্রেরি দ্বারা সম্পন্ন হয়। সময় প্রতি ঘন্টা এনটিপি দ্বারা সিঙ্ক করা হয়।

সেটআপ ফাংশনের শুরুতে, প্রোগ্রামটি D6 এর সাথে সংযুক্ত বোতামটি টিপে আছে কিনা তা পরীক্ষা করে। যদি এটি হয়, ESP8266 একটি ওয়াইফাই নেটওয়ার্ক তৈরি করে (কোডটিতে SSID এবং পাসওয়ার্ড পরিবর্তন করা যায়, ডিফল্ট SSID হল "TrueBinary" এবং পাসওয়ার্ড হল "thepoweroftwo")। যেকোনো ডিভাইস থেকে এই নেটওয়ার্কের সাথে সংযোগ করুন এবং 192.168.1.1 এ নেভিগেট করুন। ESP8266 ফর্ম সহ একটি ওয়েবপেজ সরবরাহ করবে যেখানে আপনি আপনার ওয়াইফাই SSID এবং পাসওয়ার্ড, পছন্দের NTP সার্ভার এবং UTC থেকে টাইমজোন অফসেট ইনপুট করতে পারবেন। এই ফর্মগুলি ESP8266 এ জমা দেওয়ার পরে, এটি তার অভ্যন্তরীণ EEPROM স্টোরেজে তথ্য সংরক্ষণ করবে।

যদি বোতাম টিপানো না হয়, ঘড়িটি স্বাভাবিকভাবে শুরু হয়, EEPROM থেকে সেটিংস পড়ে, NTP ব্যবহার করার জন্য ওয়াইফাই সংযোগ করে এবং সময় প্রদর্শন শুরু করে।

দ্রষ্টব্য: ফাংশন setDisplay (int index) 0-11 থেকে অঙ্ক সংখ্যা নেয় যেখানে 0 হল প্রথম সংখ্যা (অর্ধেক দিন) এবং 11 হল শেষ (দিনের 1/4096) এবং "ব্যবহার করে সংশ্লিষ্ট LED চালু করে" leds "অ্যারে। আপনি কিভাবে ডিসপ্লে কনফিগার করেছেন সে অনুযায়ী এই ফাংশনটি পূরণ করতে হবে। আমার মন্তব্য করা উদাহরণটি কীভাবে আমি সারিগুলিকে শেষ থেকে শেষের পরিবর্তে একটি জিগ-জ্যাগ ফ্যাশনে বিক্রি করেছি এবং অন্য প্রতিটি LED এড়িয়ে গেলাম তার সাথে মিলে যায়।

ধাপ 3: আবাসন

হাউজিং
হাউজিং
হাউজিং
হাউজিং
হাউজিং
হাউজিং

ঘড়িটি রাখার জন্য, আমি আঁকা কাঠের একটি কোণ ব্যবহার করেছি যা আমার কাছে ঘটেছে। একটি বাইরের মুখে, আমি LEDs এর অবস্থানের সাথে সম্পর্কিত একটি গ্রিডে 12 টি গর্ত ড্রিল করেছি। তারপরে আমি পপসিকল স্টিকগুলির উত্থাপিত মুখগুলিকে কাঠের মধ্যে সারিগুলির মধ্যে আটকে রেখে কোণের ভিতরে এলইডি আটকে দিলাম (দেখানো হয়েছে)। LEDs থেকে আলো ছড়িয়ে দিতে, আমি গর্তের উপরে কাচের মার্বেল আটকে দিলাম। আমি প্রতিটি মার্বেলের নীচের অর্ধেক ইপক্সি রজনিতে ডুবিয়ে এবং তারপর গর্তে রেখে এটি সম্পন্ন করেছি। নোড এমসিইউ এবং প্রোটো-বোর্ড কোণের অন্য ভিতরের মুখের মধ্যে স্ক্রু করা হয়েছিল। কাঠের আঠালো দিয়ে সংযুক্ত ছোট ত্রিভুজগুলি ব্যবহার করে পার্শ্বগুলি আচ্ছাদিত ছিল। NodeMCU- এর মাইক্রো ইউএসবি পোর্টের জন্য একটি পক্ষের একটি গর্ত এবং পুশবাটনের জন্য কোণে একটি কাটা আছে।

ধাপ 4: সম্পন্ন

সম্পন্ন!
সম্পন্ন!
সম্পন্ন!
সম্পন্ন!

আমাদের সত্য বাইনারি ঘড়ি শেষ! এটি সেট আপ করার জন্য, সেটিংস মোডে রাখার জন্য এটিকে প্লাগ করার সময় বোতাম টিপুন এবং তার ওয়েবপেজে ওয়াইফাই শংসাপত্রগুলি প্রবেশ করুন। একবার সেট আপ হয়ে গেলে, ঘড়িটি যেকোনো জায়গায় প্লাগ করা যাবে এবং স্বয়ংক্রিয়ভাবে ইন্টারনেটের সাথে সংযুক্ত হবে এবং বাইনারিতে সময় প্রদর্শন শুরু করবে।

সত্যিকারের বাইনারি ফর্ম্যাটে সময় পড়তে অনুশীলনের একটি জায়গা লাগে, কিন্তু এটি একটি মজার ব্যায়াম এবং কিছুক্ষণ পরে এটি কেবল এক নজরে সময় পাওয়ার দ্রুত উপায় হয়ে ওঠে!

প্রস্তাবিত: