সুচিপত্র:

ইন্টারনেট ঘড়ি: NTP প্রোটোকল সহ ESP8266 NodeMCU ব্যবহার করে একটি OLED দিয়ে তারিখ এবং সময় প্রদর্শন করুন: 6 টি ধাপ
ইন্টারনেট ঘড়ি: NTP প্রোটোকল সহ ESP8266 NodeMCU ব্যবহার করে একটি OLED দিয়ে তারিখ এবং সময় প্রদর্শন করুন: 6 টি ধাপ

ভিডিও: ইন্টারনেট ঘড়ি: NTP প্রোটোকল সহ ESP8266 NodeMCU ব্যবহার করে একটি OLED দিয়ে তারিখ এবং সময় প্রদর্শন করুন: 6 টি ধাপ

ভিডিও: ইন্টারনেট ঘড়ি: NTP প্রোটোকল সহ ESP8266 NodeMCU ব্যবহার করে একটি OLED দিয়ে তারিখ এবং সময় প্রদর্শন করুন: 6 টি ধাপ
ভিডিও: ESP32 Tutorial 53 - Build an LCD Internet Clock | SunFounder's ESP32 IoT Learnig kit 2024, নভেম্বর
Anonim
ইন্টারনেট ঘড়ি: NTP প্রোটোকল সহ ESP8266 NodeMCU ব্যবহার করে OLED দিয়ে তারিখ এবং সময় প্রদর্শন করুন
ইন্টারনেট ঘড়ি: NTP প্রোটোকল সহ ESP8266 NodeMCU ব্যবহার করে OLED দিয়ে তারিখ এবং সময় প্রদর্শন করুন

হাই বন্ধুরা এই নির্দেশাবলীতে আমরা একটি ইন্টারনেট ঘড়ি তৈরি করব যা ইন্টারনেট থেকে সময় পাবে তাই এই প্রকল্পটি চালানোর জন্য আরটিসি প্রয়োজন হবে না, এটি শুধুমাত্র একটি কার্যকরী ইন্টারনেট সংযোগের প্রয়োজন হবে

এবং এই প্রকল্পের জন্য আপনার একটি esp8266 প্রয়োজন যা ইন্টারনেট ব্যবহারের জন্য একটি ওয়াইফাই এবং এতে সময় প্রদর্শনের জন্য একটি ডিসপ্লে থাকবে এবং esp8266 NTP প্রোটোকল ব্যবহার করে ইন্টারনেট থেকে সময় আনবে, এনটিপি মানে নেটওয়ার্ক টাইম প্রোটোকল, তাই মূলত এনটিপি সার্ভার আছে ওয়েবে যা কম্পিউটার ঘড়ি সিঙ্ক্রোনাইজ করতে ব্যবহৃত হয় এবং আমরা আমাদের প্রকল্পে সময় পেতে bthose সার্ভার ব্যবহার করব।

ধাপ 1: আপনার প্রয়োজনীয় জিনিসগুলি

জিনিস আপনার প্রয়োজন
জিনিস আপনার প্রয়োজন
জিনিস আপনার প্রয়োজন
জিনিস আপনার প্রয়োজন
জিনিস আপনার প্রয়োজন
জিনিস আপনার প্রয়োজন

এই প্রকল্পের জন্য আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:

Esp8266/nodemcu

ওলেড এসএসডি 1306 0.96"

জাম্পার তার

ব্রেডবোর্ড

USB তারের

ধাপ 2: সংযোগ

সংযোগ
সংযোগ

এই 4-পিন OLED ডিসপ্লেটি I2C প্রোটোকল ব্যবহার করে ESP8266 মডিউলের সাথে যোগাযোগ করে, নীচের সার্কিট ডায়াগ্রাম এবং OLED I2C পিনগুলিকে NodeMCU- এর সাথে ইন্টারনেটের সময় দেখানোর জন্য সংযুক্ত করার টেবিল।

ধাপ 3: লাইব্রেরি ডাউনলোড করুন

লাইব্রেরি ডাউনলোড করুন
লাইব্রেরি ডাউনলোড করুন
লাইব্রেরি ডাউনলোড করুন
লাইব্রেরি ডাউনলোড করুন

নিশ্চিত করুন যে আপনি আপনার Arduino আইডি -তে SD1306 লাইব্রেরিগুলি ডাউনলোড করেছেন এবং নিশ্চিত করুন যে আপনি Adafruit GFX লাইব্রেরিও ভাল, যদি না হয় তবে এই দুটি লাইব্রেরি ইনস্টল করুন।

আপনার Arduino IDE তে লাইব্রেরি ম্যানেজারে যান এবং NTP অনুসন্ধান করুন এবং NTP ক্লায়েন্ট লাইব্রেরি ডাউনলোড করুন যেমন আমি ডাউনলোড করেছি, আরও সাহায্যের জন্য ছবি দেখুন।

ধাপ 4: NTP কি

এনটিপি কি
এনটিপি কি

কম্পিউটার নেটওয়ার্কের মধ্যে ঘড়ি সিঙ্ক্রোনাইজ করার জন্য NTP হল প্রাচীনতম নেটওয়ার্কিং ইন্টারনেট প্রটোকল (IP)। এটি 1981 সালে ডেলাওয়্যার বিশ্ববিদ্যালয়ের ডেভিড এল। ইউটিসি হল প্রাথমিক সময়ের মান যার দ্বারা বিশ্ব ঘড়ি এবং সময় নিয়ন্ত্রণ করে। ইউটিসি পরিবর্তন হয় না এবং বিভিন্ন ভৌগলিক অবস্থানের জন্য পরিবর্তিত হয়। NTP সময় রেফারেন্স হিসাবে UTC ব্যবহার করে এবং ইন্টারনেট জুড়ে সঠিক এবং সিঙ্ক্রোনাইজড সময় প্রদান করে।

এনটিপি একটি শ্রেণিবদ্ধ ক্লায়েন্ট-সার্ভার মডেলে কাজ করে। শীর্ষ মডেলের রেফারেন্স ঘড়িগুলি "স্ট্র্যাটম 0" নামে পরিচিত যা পারমাণবিক ঘড়ি, রেডিও তরঙ্গ, জিপিএস, জিএসএম যা স্যাটেলাইট থেকে সময় নেয়। যে সার্ভারগুলি স্ট্র্যাটাম 0 থেকে সময় গ্রহণ করে তাদের "স্ট্র্যাটাম 1" বলা হয় এবং স্ট্র্যাটাম 1 থেকে সময় গ্রহণকারী সার্ভারগুলিকে "স্ট্র্যাটাম 2" বলা হয়। এটি চলতে থাকে এবং প্রতিটি স্তরের পরে সময়ের নির্ভুলতা হ্রাস পেতে থাকে। এনটিপি স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ করার জন্য বেশ কয়েকটি উপলভ্য সময়ের উত্সের মধ্যে সেরা নির্বাচন করে যা এটি দোষ-সহনশীল সক্ষম প্রোটোকল তৈরি করে। সুতরাং এখানে এই প্রকল্পে, আমরা ESP8266 NodeMCU ব্যবহার করে NTP সার্ভার থেকে সময় পাচ্ছি এবং এটি OLED ডিসপ্লেতে দেখাব। একই ধরনের ইন্টারনেট ঘড়ি পূর্ববর্তী টিউটোরিয়ালে ESP32 ব্যবহার করে নির্মিত হয়েছে।

ধাপ 5: কোডিং অংশ

কোডিং অংশ
কোডিং অংশ

তারিখ এবং সময় অনুরোধ করার জন্য, NTP সার্ভারের ঠিকানা দিয়ে সময় ক্লায়েন্টকে আরম্ভ করুন। ভাল নির্ভুলতার জন্য NTP সার্ভারের ঠিকানা নির্বাচন করুন যা আপনার ভৌগোলিক এলাকার কাছাকাছি। এখানে আমরা "pool.ntp.org" ব্যবহার করি যা বিশ্বব্যাপী সার্ভার দেয়। আপনি যদি এশিয়া থেকে সার্ভার নির্বাচন করতে চান তাহলে আপনি "asia.pool.ntp.org" ব্যবহার করতে পারেন। timeClient আপনার টাইমজোনের মিলিসেকেন্ডে UTC টাইম অফসেটও নেয়। উদাহরণস্বরূপ, ভারতের জন্য UTC অফসেট হল +5: 30 তাই আমরা এই অফসেটকে মিলিসেকেন্ডে রূপান্তর করি যা 5*60*60 +30*60 = 19800 এর সমান।

এলাকা। ইউটিসি টাইম অফসেট (ঘন্টা এবং মিনিট)। UTC টাইম অফসেট (সেকেন্ড)

ভারত +5: 30 19800

লন্ডন 0:00। 0

নিউ ইয়র্ক -5: 00 -18000

অনুগ্রহ করে নিম্নলিখিত কোডটি অনুলিপি করুন এবং কোডটিতে আপনার ওয়াইফাই এবং পাসওয়ার্ড লিখুন এবং কোডে অফসেট টাইম লিখুন তারপর আপনার esp8266 বোর্ডে আপলোড করুন।:

#অন্তর্ভুক্ত "NTPClient.h" #অন্তর্ভুক্ত "ESP8266WiFi.h" // ESP8266 নির্দিষ্ট ওয়াই-ফাই রুটিন প্রদান করে যা আমরা নেটওয়ার্কের সাথে সংযোগ করার জন্য কল করছি

NodeMCu- এর সাথে OLED ইন্টারফেস করার জন্য "SPI.h" // SPI অন্তর্ভুক্ত করুন

#অন্তর্ভুক্ত "Adafruit_GFX.h"

#অন্তর্ভুক্ত "Adafruit_SSD1306.h"

#ডিফাইন SCREEN_WIDTH 128 // OLED ডিসপ্লে প্রস্থ, পিক্সেলে

#ডিফাইন SCREEN_HEIGHT 64 // OLED ডিসপ্লে হাইট, পিক্সেলে

#OLED_RESET -1 নির্ধারণ করুন

Adafruit_SSD1306 ডিসপ্লে (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, OLED_RESET);

constchar *ssid = "yourwifissid";

const char *password = "yourwifipass";

WiFiUDP ntpUDP;

NTPClient timeClient (ntpUDP, "pool.ntp.org", 19800, 60000);

স্ট্রিং arr_days = {"রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার", "বৃহস্পতিবার", "শুক্রবার", "শনিবার"};

স্ট্রিং তারিখ_ সময়; // আপনি টাইম সার্ভার পুল এবং অফসেট নির্দিষ্ট করতে পারেন (সেকেন্ডে, // সেট টাইমঅফসেট () দিয়ে পরে পরিবর্তন করা যেতে পারে)। অতিরিক্তভাবে আপনি // আপডেট ব্যবধান নির্দিষ্ট করতে পারেন (মিলিসেকেন্ডে, setUpdateInterval () ব্যবহার করে পরিবর্তন করা যেতে পারে)।

অকার্যকর সেটআপ()

{

Serial.begin (115200);

WiFi.begin (ssid, password);

যখন (WiFi.status ()! = WL_CONNECTED)

{

বিলম্ব (500);

সিরিয়াল.প্রিন্ট ("।");

}

if (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C))

{

Serial.println (F ("SSD1306 বরাদ্দ ব্যর্থ"));

জন্য (;;); // এগিয়ে যাবেন না, চিরতরে লুপ করুন

}

display.clearDisplay ();

display.setTextSize (2); // 2X- স্কেল লেখা আঁকুন

display.setTextColor (সাদা);

display.setCursor (5, 2);

display.println ("স্বাগতম");

display.println ("instructables");

display.println ("প্রকল্প");

display.display ();

বিলম্ব (3000);

timeClient.begin ();

}

অকার্যকর লুপ ()

{

timeClient.update ();

display.clearDisplay ();

Serial.println (timeClient.getFormattedTime ());

display.setTextSize (2); // 2X- স্কেল লেখা আঁকুন

display.setTextColor (নীল);

display.setCursor (0, 2);

int hh = timeClient.getHours ();

int mm = timeClient.getMinutes ();

int ss = timeClient.getSeconds ();

যদি (hh> 12)

{

hh = hh-12;

display.print (hh);

display.print (":");

display.print (mm);

display.print (":");

display.print (ss);

display.println ("PM");

}

অন্য

{

display.print (hh);

display.print (":");

display.print (mm);

display.print (":");

display.print (ss);

display.println ("AM");

}

int দিন = timeClient.getDay ();

display.println ("'"+arr_days [দিন]+"'");

date_time = timeClient.getFormattedDate ();

int index_date = date_time.indexOf ("T");

স্ট্রিং তারিখ = date_time.substring (0, index_date);

Serial.println (তারিখ);

display.println (তারিখ);

display.display ();

// প্রাথমিক লেখা দেখান}

ধাপ 6: তারিখ এবং সময় পাওয়া

তারিখ ও সময় পাওয়া
তারিখ ও সময় পাওয়া

যদি আপনি সবকিছু সঠিকভাবে সংযুক্ত করেন এবং কোডটি সঠিকভাবে আপলোড করেন তবে আপনি আপনার এনটিপি ঘড়িটি ওলেড ডিসপ্লেতে চলার সময় আমার ওলেড ডিসপ্লেতে চলতে দেখতে পাবেন। আউটপুট জন্য ইমেজ পড়ুন দয়া করে।

প্রস্তাবিত: