LED ম্যাট্রিক্সে ESP32 স্ক্রোলিং ওয়ার্ডক্লক: 5 টি ধাপ (ছবি সহ)
LED ম্যাট্রিক্সে ESP32 স্ক্রোলিং ওয়ার্ডক্লক: 5 টি ধাপ (ছবি সহ)
Anonim
Image
Image

এই প্রকল্পে আমি একটি ESP32, LED ম্যাট্রিক্স এবং একটি সিগার বক্স সহ একটি স্ক্রোলিং ওয়ার্ডক্লক তৈরি করি।

একটি ওয়ার্ডক্লক এমন একটি ঘড়ি যা সময়কে স্ক্রিনে মুদ্রণ করার পরিবর্তে বা আপনি যে হাতে পড়তে পারেন তার পরিবর্তে সময় বানান করে। এই ঘড়িটি আপনাকে বলবে এটি বিকেল 3 টা বা দুপুর 10 টা 10 মিনিট। এমনকি আমি বিকেল থেকে সন্ধ্যার মধ্যে অস্পষ্ট সময়ের জন্য প্রিভেনিং (বিগ ব্যাং থিওরি থেকে) নামটি ব্যবহার করার জন্য প্রোগ্রাম করেছি। বিকাল:00::00০ শুরু।

ESP32 অসাধারণ, এগুলি এত মজাদার এবং এত সস্তা, যদি আপনি Arduino এর প্রোগ্রামিং পছন্দ করেন তবে আপনি ESP32 $ 10 এর নিচে কী করতে পারেন তা দেখে সত্যিই অবাক হবেন। তারা Arduino IDE ব্যবহার করে এবং প্রোগ্রাম করা সহজ। আমি কিভাবে এই নির্দেশনাতে এটি প্রদর্শন করব।

সরবরাহ

  • ESP32 - অ্যামাজনে প্রায় 10 ডলার
  • LED ম্যাট্রিক্স (max7219) (এবং তারের) - $ 9 আমাজন
  • সিগারেট এর বাক্স
  • ইউএসবি পাওয়ার ক্যাবল
  • Esp32 স্ট্যান্ডের জন্য 3চ্ছিক 3 ডি প্রিন্টার

ধাপ 1: ESP32 সমর্থন করার জন্য আপনার Arduino IDE সেটআপ করুন

Arduino IDE পান:

  • একটি ব্রাউজারে যান
  • ARDUINO 1.8.12 পেতে সফটওয়্যার তারপর ডাউনলোড এ ক্লিক করুন
ছবি
ছবি

আপনার Arduino IDE এ ESP32 সমর্থন যোগ করুন:

  • Arduino IDE শুরু করুন
  • ফাইল মেনুতে ক্লিক করুন তারপর পছন্দ করুন।

একবার "পছন্দ" -এ "অতিরিক্ত বোর্ড ম্যানেজার" -এ নিম্নলিখিত লাইন যোগ করে প্রস্তুতকারকের সহায়তা যোগ করুন

ছবি
ছবি

dl.espressif.com/dl/package_esp32_index.js

এটি আমাদের IDE তে বোর্ড যুক্ত করার সুযোগ দেবে

টুলস মেনু এবং তারপর বোর্ডে যান এবং বোর্ড ম্যানেজারের কাছে যান

ছবি
ছবি

"ESP" এর জন্য পরবর্তী অনুসন্ধান করুন এবং Expressif দ্বারা প্যাকেজ যোগ করুন।

ছবি
ছবি

পরিশেষে আমরা "টুলস" মেনুতে ফিরে যেতে চাই, তারপর আবার "বোর্ড" এবং আপনার ESP32 ডিভাইস খুঁজে পেতে নিচে স্ক্রোল করতে চাই।

আমার একটি "ESP32 Wrover মডিউল"

ছবি
ছবি

ধাপ 2: LED ম্যাট্রিক্সকে ESP32 এর সাথে সংযুক্ত করুন

ছবি
ছবি

এলইডি ম্যাট্রিক্স এলইডি -র চারটি 8x8 ব্লকের সমন্বয়ে গঠিত এবং একটি MAX7219 চিপ ব্যবহার করে। এটি আমাদের ম্যাট্রিক্সে 8x32 LEDs বা 256 LEDs দেয় !!!

Esp32 টিঙ্কারক্যাডে আমার তৈরি একটি হোল্ডে বসে আছে। আমার ধারক পিনগুলি মুখোমুখি রাখে যাতে আপনি তারগুলি সংযুক্ত করতে পারেন।

LED ম্যাট্রিক্স SPI (সিরিয়াল পেরিফেরাল ইন্টারফেস) ব্যবহার করে ESP32 এর সাথে সংযোগ স্থাপন করে।

নিম্নরূপ মহিলা/মহিলা তার এবং সংযোগ পিন ব্যবহার করুন:

  • ESP32 - 5v থেকে VCC ম্যাট্রিক্সে
  • ESP32 - GND থেকে GND ম্যাট্রিক্সে
  • ESP32 - PIN5 (G5) থেকে ম্যাট্রিক্সে CS
  • ESP32 - PIN23 (G23) থেকে ম্যাট্রিক্সে দিন
  • ESP32 - পিন 18 (G18) থেকে ম্যাট্রিক্সে CLK

অন্যান্য পিন ব্যবহার করা সম্ভব অথবা যদি আপনার ESP32 এর আলাদা পিনআউট থাকে।

ধাপ 3: এটি একত্রিত করা

একসাথে রেখে
একসাথে রেখে

এরপর আমি সিগারের বাক্সটি কেটে দিলাম যাতে আমাকে এলইডি ডিসপ্লে লাগানোর জায়গা দেওয়া যায়। বাক্সটি নরম এবং আমি একটি রেজার ছুরি ব্যবহার করতে সক্ষম হয়েছি। তারপর আমি এটা মসৃণ করার জন্য sanded।

আমি পাওয়ার কর্ডের জন্য পিছনে একটি সম্পূর্ণ কাটা। আমি শুধু ইউএসবি পাওয়ার ব্যবহার করেছি। আমি এমনকি সিগার বক্সের ভিতরে একটি ইউএসবি ফোন চার্জার ব্যাটারি যোগ করতে পারতাম যদি আমি চাই যে এটি ওয়্যারলেস হতে পারে।

ধাপ 4: Arduino IDE এবং INO ফাইল।

Arduino IDE এবং INO ফাইল।
Arduino IDE এবং INO ফাইল।

সেরা অংশ হল কোড। কিন্তু প্রথমে আমাদের একটি লাইব্রেরি যুক্ত করতে হবে যাতে প্রোগ্রামটিকে আরও সহজ উপায়ে ডিসপ্লে ব্যবহার করতে দেওয়া যায়। আমি MD_MAX72xx লাইব্রেরি যোগ করেছি।

লাইব্রেরি যোগ করতে "স্কেচ" মেনুতে ক্লিক করুন, তারপরে "লাইব্রেরি অন্তর্ভুক্ত করুন" এবং "লাইব্রেরি পরিচালনা করুন" এটি লোড হবে এবং আপনাকে MD_MAX72xx লাইব্রেরি অনুসন্ধান করার অনুমতি দেবে। শুধু ইন্সটল এ ক্লিক করুন এবং আপনার কাছে আছে।

পরবর্তী আমার Arduino INO ফাইল পান:

github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino

আপনার Arduino IDE তে ino ফাইলটি লোড করুন, আপনার কম্পিউটারে ESP32 থেকে USB সংযোগ করুন।

"স্কেচ" এ ক্লিক করুন তারপর আপলোড করুন

এই সময়ে ঘড়ি কাজ করবে না, ESP32 কিছু প্রদর্শন করবে না। কেন? আমাদের কোডে আপনার ওয়াইফাই যুক্ত করতে হবে কারণ ওয়ার্ডক্লক সময় পেতে ইন্টারনেটের সাথে সংযোগ স্থাপন করে। এটা ঠিক… পরবর্তী ধাপ ->।

ধাপ 5: কোড

আমরা অবশেষে এটি আমার প্রিয় অংশে তৈরি করেছি। কার্যক্রম. যদি আপনি আগ্রহী হন তবে আমি এটিকে উপরে থেকে নীচে কভার করব, প্রোগ্রামটি আপনার হোম ইন্টারনেটের সাথে কাজ করার জন্য আপনাকে কেবল এই লাইনগুলি পরিবর্তন করতে হবে।

// আপনার নেটওয়ার্ক তথ্য যোগ করুন

const char *ssid = "xxxxxx";

const char *password = "xxxxxx";

প্রোগ্রামটি কিছুটা জটিল, তবে খুব মজাদার।

"প্রতিরোধ" নিষ্ক্রিয় করতে কেবল মানটি মিথ্যাতে পরিবর্তন করুন:

const বুলিয়ান প্রতিরোধ = সত্য; // বিগ ব্যাং তত্ত্ব।

স্ক্রল করার পরে ডিজিটাল সময় প্রদর্শন নিষ্ক্রিয় করতে এটিকে মিথ্যাতে পরিবর্তন করুন।

const বুলিয়ান DISPLAY_DIGITAL = সত্য; // স্ক্রল করার পরে ডিজিটাল সময় প্রদর্শন চালু করুন।

সময় স্ক্রোল করা:

আমি NTP (নেটওয়ার্ক টাইম প্রোটোকল) ব্যবহার করে ইন্টারনেটে টাইম সার্ভার থেকে সময় পাই। সময়টি টাইমইনফো নামে একটি ভেরিয়েবলে রাখা হয় এবং আমরা এটি থেকে ঘন্টা এবং মিনিট পাই।

int hour = timeinfo.tm_hour; /// 0-23

int মিনিট = timeinfo.tm_min; // 0-59

পরবর্তী AM বা PM পরীক্ষা করুন

এটি AM যদি ঘন্টা <12 হয়

আমি "দ্য টাইম" নামে একটি স্ট্রিং তৈরি করি এবং এটি দিয়ে শুরু করি:

সময় = "এটা";

সংখ্যাটি শব্দ হিসাবে পেতে, আমি 30 পর্যন্ত সংখ্যার জন্য শব্দের একটি অ্যারে তৈরি করেছি।

const char *numbers = {

"0", "এক", "দুই", "তিন", "চার", "পাঁচ", "ছয়", "সাত", "আট", "নয়", "দশ", "এগারো", "বারো "," তেরো "," চৌদ্দ "," চতুর্থাংশ "," ষোল "," সতেরো "," আঠারো "," উনিশ "," বিশ "," একুশ "," বাইশ "," তেইশ " "," চব্বিশ "," পঁচিশ "," ছাব্বিশ "," সাতাশ "," টুয়েন্টি এইট "," টুয়েন্টি নাইন "," হাফ পাস্ট "};

সুতরাং যখন তার 12:05 বা পাঁচ মিনিট বারোটা হয়ে যায় তখন এটি সত্যিই আরডুইনোতে

সংখ্যা [5] মিনিট অতীত [12]

এটির "মিনিট অতীত" বা "মিনিট টু" নির্ধারণ করতে আমরা কেবল মিনিটগুলি দেখি। যদি মিনিট <31 হয় তবে এটি "মিনিট অতীত" যদি মিনিট 31 এর বেশি হয় তবে আমরা "মিনিট টু" ব্যবহার করি কিন্তু সংখ্যা [60-মিনিট] ব্যবহার করি তাই 12:50 60-50 মিনিট বা সংখ্যা [10] হবে যা আমাদের 10 মিনিট থেকে 12 0 ঘন্টা দিন।

অবশ্যই অন্যান্য নিয়ম আছে যেমন 15, 30, 45 এ আমরা মিনিট ব্যবহার করি না তার মাত্র দেড়টা বা চতুর্থাংশ, এবং যদি মিনিট 0 হয় তবে সময়টি কেবল "দশটা বাজে" বা দুপুর।

সুতরাং এটি একসাথে রাখার জন্য, আমি স্ট্রিং দ্য টাইমে সমস্ত আইটেম যুক্ত করি তারপর এটি LED ম্যাট্রিক্সে প্রদর্শন করি। আমি যদি বিবৃতি একটি গুচ্ছ ব্যবহার। আমি সম্ভবত কেস ব্যবহার করা উচিত ছিল কিন্তু তাদের যোগ করা সহজ ছিল।

আমাদের উদাহরণ 12:05 এর জন্য

সময় = "এটা"

যদি মিনিট <31 ব্যবহার হয় "মিনিট অতীত" অন্যথায় এটি "মিনিট টু"

সময় + = সংখ্যা [5] + "মিনিট অতীত" + সংখ্যা [12] + "ও'ক্লক" // দ্রষ্টব্য: স্বরলিপি + = সংযোজিত।

পরবর্তীতে আমরা সকাল, বিকেল বা সন্ধ্যা কিনা তা নির্ধারণ করতে ঘন্টাটি দেখি।

সময়+= "সন্ধ্যায়"

ম্যাট্রিক্সে যাওয়া চূড়ান্ত স্ট্রিং হল:

"এটা পাঁচ মিনিট অতীত বারো''ক্লক সন্ধ্যায়"

এই প্রকল্পটি লিখতে খুব মজা ছিল। যদি আপনি এটি পছন্দ করেন দয়া করে হৃদয় এবং আমার জন্য ভোট দয়া করে ক্লিক করুন।

প্রস্তাবিত: