সুচিপত্র:
- ধাপ 1: আপনার প্রয়োজনীয় জিনিসগুলি
- ধাপ 2: সংযোগ
- ধাপ 3: লাইব্রেরি ডাউনলোড করুন
- ধাপ 4: NTP কি
- ধাপ 5: কোডিং অংশ
- ধাপ 6: তারিখ এবং সময় পাওয়া
ভিডিও: ইন্টারনেট ঘড়ি: NTP প্রোটোকল সহ ESP8266 NodeMCU ব্যবহার করে একটি OLED দিয়ে তারিখ এবং সময় প্রদর্শন করুন: 6 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 07:59
হাই বন্ধুরা এই নির্দেশাবলীতে আমরা একটি ইন্টারনেট ঘড়ি তৈরি করব যা ইন্টারনেট থেকে সময় পাবে তাই এই প্রকল্পটি চালানোর জন্য আরটিসি প্রয়োজন হবে না, এটি শুধুমাত্র একটি কার্যকরী ইন্টারনেট সংযোগের প্রয়োজন হবে
এবং এই প্রকল্পের জন্য আপনার একটি 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: তারিখ এবং সময় পাওয়া
যদি আপনি সবকিছু সঠিকভাবে সংযুক্ত করেন এবং কোডটি সঠিকভাবে আপলোড করেন তবে আপনি আপনার এনটিপি ঘড়িটি ওলেড ডিসপ্লেতে চলার সময় আমার ওলেড ডিসপ্লেতে চলতে দেখতে পাবেন। আউটপুট জন্য ইমেজ পড়ুন দয়া করে।
প্রস্তাবিত:
ESP8266 OLED - ইন্টারনেট থেকে সময় এবং তারিখ পান: 8 টি ধাপ
ESP8266 OLED - ইন্টারনেট থেকে সময় এবং তারিখ পান: এই টিউটোরিয়ালে আমরা ESP8266 OLED এবং Visuino ব্যবহার করে NIST TIME সার্ভার থেকে তারিখ এবং সময় পেতে শিখব, একটি বিক্ষোভ ভিডিও দেখুন
ইন্টারনেট থেকে সময় এবং তারিখ পান - টিউটোরিয়াল: 9 টি ধাপ
ইন্টারনেট থেকে সময় এবং তারিখ পান - টিউটোরিয়াল: এই টিউটোরিয়ালে আমরা শিখব কিভাবে M5Stack StickC এবং Visuino ব্যবহার করে NIST TIME সার্ভার থেকে তারিখ এবং সময় পেতে হয়, একটি বিক্ষোভ ভিডিও দেখুন
ESP8266 ব্যবহার করে ইন্টারনেট থেকে সময় পাওয়া - ESP8266 Nodemcu সহ NTP Clock Project: 5 ধাপ
ESP8266 ব্যবহার করে ইন্টারনেট থেকে সময় পাওয়া | ESP8266 Nodemcu সহ NTP Clock Project: এই টিউটোরিয়ালে আমরা দেখব কিভাবে Arduino IDE দিয়ে ESP8266/nodemcu ব্যবহার করে সময় পেতে হয়। আপনার রিডিংয়ের টাইমস্ট্যাম্প করতে ডেটা লগিংয়ে সময় পাওয়া বিশেষভাবে দরকারী। যদি আপনার ESP8266 প্রকল্পের ইন্টারনেটে অ্যাক্সেস থাকে, তাহলে আপনি নেটওয়ার্ক টি ব্যবহার করে সময় পেতে পারেন
XinaBox ব্যবহার করে তারিখ, সময় এবং তাপমাত্রা প্রদর্শন: 8 টি ধাপ
XinaBox ব্যবহার করে তারিখ, সময় এবং তাপমাত্রা প্রদর্শন: ESP8266 ভিত্তিক Xinabox xChips ব্যবহার করে সেলসিয়াস এবং ফারেনহাইটে তারিখ, সময় এবং তাপমাত্রা দেখানো কুল OLED ডিসপ্লে
একটি সুন্দর তারিখ, সময় এবং তাপমাত্রা প্রদর্শন ইউনিট: 3 টি ধাপ
একটি সুন্দর তারিখ, সময় এবং তাপমাত্রা প্রদর্শন ইউনিট: হাই বন্ধুরা, এই নির্দেশে, আমি একটি তারিখ, সময় এবং বর্তমান তাপমাত্রা প্রদর্শন ইউনিট তৈরির পদ্ধতিটি ব্যাখ্যা করতে যাচ্ছি, আরডুইনো প্রো মিনি, একটি আরটিসি এবং আট অঙ্কের সাত সেগমেন্ট ডিসপ্লে ব্যবহার করে একটি খুব কমপ্যাক্ট ইউনিটে, যা একটি দরকারী দেবী