विषयसूची:
- चरण 1: चीजें जो आपको चाहिए
- चरण 2: कनेक्शन
- चरण 3: पुस्तकालय डाउनलोड करें
- चरण 4: एनटीपी क्या है
- चरण 5: कोडिंग भाग
- चरण 6: दिनांक और समय प्राप्त करना
वीडियो: इंटरनेट क्लॉक: एनटीपी प्रोटोकॉल के साथ ESP8266 NodeMCU का उपयोग करके OLED के साथ दिनांक और समय प्रदर्शित करें: 6 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:20
हाय दोस्तों इस निर्देश में हम एक इंटरनेट घड़ी का निर्माण करेंगे, जिसे इंटरनेट से समय मिलेगा, इसलिए इस परियोजना को चलाने के लिए किसी RTC की आवश्यकता नहीं होगी, इसके लिए केवल एक कार्यशील इंटरनेट कनेक्शन की आवश्यकता होगी
और इस परियोजना के लिए आपको एक esp8266 की आवश्यकता है जिसमें इंटरनेट एक्सेस प्राप्त करने के लिए एक वाईफाई होगा और उस पर समय प्रदर्शित करने के लिए एक डिस्प्ले होगा और esp8266 एनटीपी प्रोटोकॉल का उपयोग करके इंटरनेट से समय प्राप्त करेगा, एनटीपी नेटवर्क टाइम प्रोटोकॉल के लिए खड़ा है, इसलिए मूल रूप से एनटीपी सर्वर हैं वेब पर जो कंप्यूटर घड़ियों को सिंक्रनाइज़ करने के लिए उपयोग किया जाता है और हम अपने प्रोजेक्ट में समय प्राप्त करने के लिए उन सर्वरों का उपयोग करेंगे।
चरण 1: चीजें जो आपको चाहिए
इस परियोजना के लिए आपको निम्नलिखित चीजों की आवश्यकता होगी:
Esp8266/नोडेमकु
ओलेड ssd1306 0.96"
जम्पर तार
ब्रेड बोर्ड
यूएसबी केबल
चरण 2: कनेक्शन
यह 4-पिन OLED डिस्प्ले I2C प्रोटोकॉल का उपयोग करके ESP8266 मॉड्यूल के साथ संचार करता है, इंटरनेट समय प्रदर्शित करने के लिए OLED I2C पिन को NodeMCU से जोड़ने के लिए सर्किट आरेख और कनेक्शन तालिका नीचे दी गई है।
चरण 3: पुस्तकालय डाउनलोड करें
सुनिश्चित करें कि आपने अपने Arduino ide में SD1306 पुस्तकालयों को डाउनलोड किया है जैसा कि छवि में दिखाया गया है और सुनिश्चित करें कि आप Adafruit GFX लाइब्रेरी भी हैं, यदि नहीं तो इन दो पुस्तकालयों को स्थापित करें।
अपने Arduino IDE में लाइब्रेरी मैनेजर में जाएं और NTP खोजें और जैसे ही मैंने डाउनलोड किया, NTP क्लाइंट लाइब्रेरी डाउनलोड करें, आगे की मदद के लिए इमेज देखें।
चरण 4: एनटीपी क्या है
कंप्यूटर नेटवर्क के बीच घड़ियों को सिंक्रनाइज़ करने के लिए एनटीपी सबसे पुराने नेटवर्किंग इंटरनेट प्रोटोकॉल (आईपी) में से एक है। इसे 1981 में डेलावेयर विश्वविद्यालय के डेविड एल मिल्स द्वारा डिजाइन किया गया था। इस प्रोटोकॉल का उपयोग कुछ मिलीसेकंड के भीतर कई नेटवर्क को कोऑर्डिनेटेड यूनिवर्सल टाइम (यूटीसी) में सिंक्रनाइज़ करने के लिए किया जा सकता है। यूटीसी प्राथमिक समय मानक है जिसके द्वारा दुनिया घड़ी और समय को नियंत्रित करती है। विभिन्न भौगोलिक स्थानों के लिए यूटीसी बदलता नहीं है और बदलता नहीं है। एनटीपी समय संदर्भ के रूप में यूटीसी का उपयोग करता है और पूरे इंटरनेट पर सटीक और समकालिक समय प्रदान करता है।
एनटीपी एक पदानुक्रमित क्लाइंट-सर्वर मॉडल पर काम करता है। शीर्ष मॉडल में संदर्भ घड़ियाँ होती हैं जिन्हें "स्ट्रैटम0" के रूप में जाना जाता है जैसे परमाणु घड़ियाँ, रेडियो तरंगें, जीपीएस, जीएसएम जो उपग्रह से समय प्राप्त करती हैं। जो सर्वर स्ट्रैटम 0 से समय प्राप्त करते हैं उन्हें "स्ट्रैटम 1" कहा जाता है और जो सर्वर स्ट्रैटम 1 से समय प्राप्त करते हैं उन्हें "स्ट्रैटम 2" कहा जाता है और इसी तरह। यह सिलसिला चलता रहता है और प्रत्येक चरण के बाद समय की सटीकता कम होती जाती है। एनटीपी स्वचालित रूप से सिंक्रनाइज़ करने के लिए कई उपलब्ध समय स्रोतों में से सर्वश्रेष्ठ का चयन करता है जो इसे दोष-सहिष्णु सक्षम प्रोटोकॉल बनाता है। तो यहाँ इस परियोजना में, हम ESP8266 NodeMCU का उपयोग करके NTP सर्वर से समय प्राप्त कर रहे हैं और इसे OLED डिस्प्ले पर दिखा रहे हैं। इसी तरह की इंटरनेट घड़ी पिछले ट्यूटोरियल में ESP32 का उपयोग करके बनाई गई है।
चरण 5: कोडिंग भाग
दिनांक और समय का अनुरोध करने के लिए, एनटीपी सर्वर के पते के साथ टाइम क्लाइंट को इनिशियलाइज़ करें। बेहतर सटीकता के लिए एनटीपी सर्वरों का पता चुनें जो आपके भौगोलिक क्षेत्र के करीब हों। यहां हम “pool.ntp.org” का उपयोग करते हैं जो दुनिया भर से सर्वर देता है। यदि आप एशिया से सर्वर चुनना चाहते हैं तो आप "asia.pool.ntp.org" का उपयोग कर सकते हैं। टाइम क्लाइंट आपके टाइमज़ोन के मिलीसेकंड में यूटीसी टाइम ऑफ़सेट भी लेता है। उदाहरण के लिए, भारत के लिए UTC ऑफ़सेट +5:30 है, इसलिए हम इस ऑफ़सेट को मिलीसेकंड में बदल देते हैं जो कि 5*60*60+30*60 = 19800 के बराबर है।
क्षेत्र। UTC समय ऑफ़सेट (घंटे और मिनट)। UTC समय ऑफ़सेट (सेकंड)
भारत +5:30 19800
लंदन 0:00। 0
न्यू यॉर्क -5:00 -18000
कृपया निम्नलिखित कोड को कॉपी करें और कोड में अपना वाईफाई और पासवर्ड दर्ज करें और कोड में समय ऑफसेट दर्ज करें और फिर इसे अपने esp8266 बोर्डों पर अपलोड करें।:
#include "NTPClient.h"#include "ESP8266WiFi.h" // ESP8266 विशिष्ट वाई-फाई रूटीन प्रदान करता है जिसे हम नेटवर्क से कनेक्ट करने के लिए कॉल कर रहे हैं #include "WiFiUdp.h" // UDP पैकेज भेजना और प्राप्त करना संभालता है
#include "SPI.h" // OLED को NodeMCu के साथ जोड़ने के लिए SPI
#शामिल "Adafruit_GFX.h"
#शामिल "Adafruit_SSD1306.h"
#define SCREEN_WIDTH 128 // OLED डिस्प्ले की चौड़ाई, पिक्सल में
#define SCREEN_HEIGHT 64 // OLED डिस्प्ले की ऊंचाई, पिक्सल में
#परिभाषित OLED_RESET -1
Adafruit_SSD1306 डिस्प्ले (SCREEN_WIDTH, SCREEN_HEIGHT, &वायर, OLED_RESET);
कॉन्सचर * ssid = "yourwifissid";
const char *password = "yourwifipass";
वाईफाईयूडीपी एनटीपीयूडीपी;
NTPClient टाइमक्लाइंट (ntpUDP, "pool.ntp.org", १९८००, ६००००);
स्ट्रिंग arr_days={"रविवार", "सोमवार", "मंगलवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"};
स्ट्रिंग दिनांक_समय; // आप समय सर्वर पूल और ऑफ़सेट निर्दिष्ट कर सकते हैं (सेकंड में, // बाद में सेटटाइमऑफ़सेट () के साथ बदला जा सकता है)। अतिरिक्त आप // अपडेट अंतराल निर्दिष्ट कर सकते हैं (मिलीसेकंड में, setUpdateInterval() का उपयोग करके बदला जा सकता है)।
व्यर्थ व्यवस्था()
{
सीरियल.बेगिन (115200);
वाईफाई.बेगिन (एसएसआईडी, पासवर्ड);
जबकि (WiFi.status() != WL_CONNECTED)
{
देरी (500);
सीरियल.प्रिंट ("।");
}
अगर(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println(F("SSD1306 आवंटन विफल रहा"));
के लिये(;;); // आगे न बढ़ें, हमेशा के लिए लूप करें
}
डिस्प्ले.क्लियरडिस्प्ले ();
display.setTextSize(2); // 2X-स्केल टेक्स्ट बनाएं
display.setTextColor (सफेद);
डिस्प्ले.सेट कर्सर (5, 2);
display.println ("आपका स्वागत है");
display.println ("निर्देश");
display.println ("प्रोजेक्ट");
डिस्प्ले.डिस्प्ले ();
देरी (3000);
टाइम क्लाइंट। शुरू ();
}
शून्य लूप ()
{
टाइम क्लाइंट.अपडेट ();
डिस्प्ले.क्लियरडिस्प्ले ();
Serial.println (timeClient.getFormattedTime ());
display.setTextSize(2); // 2X-स्केल टेक्स्ट बनाएं
display.setTextColor (नीला);
डिस्प्ले.सेट कर्सर (0, 2);
int hh = timeClient.getHours ();
int मिमी = timeClient.getMinutes ();
int ss = timeClient.getSeconds ();
अगर (एचएच>12)
{
एचएच = एचएच -12;
डिस्प्ले.प्रिंट (एचएच);
डिस्प्ले.प्रिंट (":");
डिस्प्ले।प्रिंट (मिमी);
डिस्प्ले.प्रिंट (":");
डिस्प्ले।प्रिंट (एसएस);
डिस्प्ले.प्रिंट्लन ("पीएम");
}
अन्यथा
{
डिस्प्ले.प्रिंट (एचएच);
डिस्प्ले.प्रिंट (":");
डिस्प्ले।प्रिंट (मिमी);
डिस्प्ले.प्रिंट (":");
डिस्प्ले।प्रिंट (एसएस);
डिस्प्ले.प्रिंट्लन ("एएम");
}
int दिन = timeClient.getDay ();
display.println("'"+arr_days[day]+"'");
date_time = timeClient.getFormattedDate ();
int index_date = date_time.indexOf ("टी");
स्ट्रिंग दिनांक = date_time.substring(0, index_date);
सीरियल.प्रिंट्लन (तारीख);
डिस्प्ले.प्रिंट्लन (तारीख);
डिस्प्ले.डिस्प्ले ();
// प्रारंभिक पाठ दिखाएं}
चरण 6: दिनांक और समय प्राप्त करना
यदि आपने सब कुछ ठीक से कनेक्ट किया है और कोड को ठीक से अपलोड किया है तो आप अपनी ntp घड़ी को पुराने डिस्प्ले पर चलने में देख पाएंगे जैसे कि पुराने डिस्प्ले में चल रही है। कृपया आउटपुट के लिए छवि देखें।
सिफारिश की:
DIY Visuino का उपयोग करके M5StickC ESP32 पर समय कैसे प्रदर्शित करें - करने में आसान: 9 कदम
DIY Visuino का उपयोग करके M5StickC ESP32 पर समय कैसे प्रदर्शित करें - करने में आसान: इस ट्यूटोरियल में हम सीखेंगे कि एलसीडी पर समय प्रदर्शित करने के लिए Arduino IDE और Visuino के साथ ESP32 M5Stack StickC कैसे प्रोग्राम करें
ESP8266 का उपयोग करके इंटरनेट से समय निकालना - ESP8266 Nodemcu के साथ NTP क्लॉक प्रोजेक्ट: 5 कदम
ESP8266 का उपयोग करके इंटरनेट से समय निकालना | ESP8266 Nodemcu के साथ NTP क्लॉक प्रोजेक्ट: इस ट्यूटोरियल में हम देखेंगे कि Arduino IDE के साथ ESP8266/nodemcu का उपयोग करके समय कैसे निकाला जाए। अपने रीडिंग को टाइमस्टैम्प करने के लिए डेटा लॉगिंग में समय प्राप्त करना विशेष रूप से उपयोगी है। यदि आपके ESP8266 प्रोजेक्ट की इंटरनेट तक पहुँच है, तो आप नेटवर्क T… का उपयोग करके समय प्राप्त कर सकते हैं।
Visuino - NodeMCU का उपयोग करके इंटरनेट NIST सर्वर से सटीक समय प्राप्त करें: 8 चरण
Visuino - NodeMCU का उपयोग करके इंटरनेट NIST सर्वर से सटीक समय प्राप्त करें: इस ट्यूटोरियल में हम Lcd पर NIST सर्वर से लाइव इंटरनेट समय प्रदर्शित करने के लिए NodeMCU Mini, OLED Lcd और Visuino का उपयोग करेंगे। एक प्रदर्शन वीडियो देखें। प्रेरणा का श्रेय youtube उपयोगकर्ता "Ciprian Balalau" को जाता है
ESP8266 नेटवर्क क्लॉक बिना किसी RTC के - Nodemcu एनटीपी क्लॉक नंबर आरटीसी - इंटरनेट घड़ी परियोजना: 4 कदम
ESP8266 नेटवर्क क्लॉक बिना किसी RTC के | Nodemcu एनटीपी क्लॉक नंबर आरटीसी | इंटरनेट घड़ी परियोजना: परियोजना में आरटीसी के बिना एक घड़ी परियोजना बना रही होगी, इसमें वाईफाई का उपयोग करके इंटरनेट से समय लगेगा और यह इसे st7735 डिस्प्ले पर प्रदर्शित करेगा
Arduino दिनांक/समय प्लॉटिंग/मिलिस () और PfodApp का उपयोग करके लॉगिंग: 11 चरण
Arduino दिनांक/समय प्लॉटिंग/मिलिस () और PfodApp का उपयोग करके लॉगिंग: कोई Arduino या Android प्रोग्रामिंग की आवश्यकता नहीं है। RTC और GPS मॉड्यूल भी समर्थित हैं। टाइमज़ोन, RTC बहाव और GPS लापता लीप सेकंड के लिए स्वचालित सुधार ) डेटा एजी प्लॉट करने के लिए टाइमस्टैम्प