پچھلے سبق میں ، ہم نے DS3231 اور ESP32 کا استعمال کرتے ہوئے آر ٹی سی گھڑی بنائی ہے۔ ہارڈ ویئر کی ضروریات کو کم سے کم کرنے کے ل we ہم آر ٹی سی ماڈیول کا استعمال کیے بغیر انٹرنیٹ گھڑی بنائیں گے ۔ RTC گھڑی کے مقابلے میں یہ زیادہ درست ہے۔ ای ایس پی 32 ایک وائی فائی ماڈیول ہے اور اسے آسانی سے انٹرنیٹ سے منسلک کیا جاسکتا ہے لہذا ہم وائی فائی کا استعمال کرتے ہوئے انٹرنیٹ سے وقت نکالنے کے لئے این ٹی پی (نیٹ ورک ٹائم پروٹوکول) اور یو ڈی پی (صارف ڈیٹاگرام پروٹوکول) کا استعمال کریں گے۔ آئی او ٹی پروجیکٹس کی تعمیر کے دوران یہ انٹرنیٹ گھڑی بہت کارآمد ثابت ہوسکتی ہے۔
این ٹی پی کیا ہے؟
نیٹ ورک ٹائم پروٹوکول (این ٹی پی) ایک نیٹ ورکنگ پروٹوکول ہے جو نظام a0nd ڈیٹا نیٹ ورکس کے مابین وقت کی ہم آہنگی کے لئے استعمال ہوتا ہے۔ این ٹی پی فریم ورک کا انحصار انٹرنیٹ ٹائم سرورز پر ہے۔ دن کے وقت کو صحیح طور پر ایڈجسٹ کرنے کے لئے این ٹی پی کے الگورتھم ہیں۔ این ٹی پی سرورز کے پاس سافٹ ویئر موجود ہے جو یو ڈی پی پورٹ 123 کا استعمال کرتے ہوئے کلائنٹ کمپیوٹرز کو دن کے وقت کا وقت بھیجتا ہے۔ لہذا یہاں اس پروجیکٹ میں ، ہم NSP سرور سے ESP32 کا استعمال کرتے ہوئے اسے OLED ڈسپلے پر دکھا رہے ہیں۔
مطلوبہ مواد:
- ESP32
- 128 * 64 OLED ڈسپلے
- بریڈ بورڈ
- نر مادہ تاروں
سرکٹ ڈایاگرام:
یہاں ، ہم اپنے 128 × 64 OLED ڈسپلے ماڈیول (SSD1306) کو ESP32 سے مربوط کرنے کے لئے SPI وضع استعمال کر رہے ہیں ۔ تو ، یہ 7 پنوں کا استعمال کرے گا۔ ESP32 کے ساتھ رابطے بطور دیئے گئے ہیں:
- سی ایس (چپ منتخب کریں) ELE32 -> ESP32 کا پن D5 کا پن
- OLED کا ڈی سی پن -> ESP32 کا PIN D4
- RES پن OLED -> ESP32 کا پن D2
- OLED کا ایس ڈی اے پن -> پن D23 یعنی ESP32 کا MOSI
- OLED -> PIN D18 یعنی ESP32 کا SCK پن کا SCK پن
- OLED -> ESP32 کا Vcc کا Vdd
- GND OLED -> GND ESP32
آپ کو اپنے ESP32 کے لئے بورڈ فائلوں کی ضرورت ہے۔ چیک ان بورڈ منیجر ESP32 دیو کٹ کے ل A آرڈوینو IDE کا ڈراپ ڈاؤن مینو۔ اگر ایسا نہیں ہے تو نیچے دیئے گئے لنک میں دیئے گئے مراحل کی پیروی کریں:
circuitdigest.com/microcontroller-projects/getting-started-with-esp32-with-arduino-ide
آپ اس پروجیکٹ کے لئے ESP12 بھی استعمال کرسکتے ہیں ، ESP12 استعمال کرنے کے لئے یہاں سیکھیں۔
ہم اپنے پروگرام کو لکھنے کے لئے ارڈینو آئ ڈی ای کا استعمال کریں گے جیسا کہ مذکورہ مضمون میں بیان کیا گیا ہے۔
کوڈ کی وضاحت:
ESP32 انٹرنیٹ کلاک کے لئے مکمل کوڈ مضمون کے آخر میں دیا گیا ہے۔ یہاں ہم کوڈ کے کچھ اہم حص.وں کی وضاحت کر رہے ہیں۔
ہمیں اپنے کوڈ میں استعمال کرنے کے لئے متعدد لائبریریوں کی ضرورت ہے جن کو نیچے دیئے گئے لنکس سے ڈاؤن لوڈ کیا جاسکتا ہے۔
1. ایڈافٹ_ایس ایس ڈی1306: https://github.com/adaf فرو/Adaf پھٹ_ ایس ایس ڈی1306
2. ایس پی آئی:
3. اڈاف فروٹ_ جی ایف ایکس: https://github.com/adaf فرو/Adaf پھٹ- جی ایف ایکس- لائبریری
4. این ٹی پی کلیینٹ:
5.WiFiUdp:
لہذا ہم نے تمام لائبریریوں اور وائی فائی کا نام اور پاس ورڈ داخل کرنے کے لئے متغیر متغیر کو شامل کیا ہے۔
# شامل کریں
یہاں NTPClient.h لائبریری کو ٹائم سرور سے مربوط کرنے کے لئے استعمال کیا جاتا ہے۔ NTP سرور سے وقت لگتا ہے اور اسے مطابقت پذیر بنائے رکھنا۔ اور Hhre WiFiUdp.h لائبریری UDP پیغامات بھیجنے اور وصول کرنے کے لئے استعمال کی جاتی ہے۔ یو ڈی پی ایک پروٹوکول ہے جو ہمارے سسٹم سے این ٹی پی سرور کو مختصر پیغامات بھیجتا اور وصول کرتا ہے۔
لہذا انٹرنیٹ سے وقت حاصل کرنے کے ل we ، ہمیں این ٹی پی کے لئے اپنے پروگرام میں تین متغیرات کی وضاحت کرنی ہوگی۔
NTP_OFFSET جو آپ کے ملک کا ٹائم زون ہے یعنی ہندوستان کے لئے یہ +5: 30 گھنٹے ہے۔ تو یہ سیکنڈ میں 19800 کی بات ہے۔
NTP_INTERVAL جو وقت کی وقفہ ہے جس کو NTP کے ذریعہ وقت کو اپ ڈیٹ کرنے میں لیا گیا ہے۔ یہ 60-64 سیکنڈ ہے۔
NTP_ADDRESS آپ کے ملک کا NTP سرور ہے۔ ہندوستان کے ل you آپ " in.pool.ntp.org "استعمال کرسکتے ہیں۔
# ڈیفائن NTP_OFFSET 19800 // سیکنڈ میں # NTPTPTERVAL 60 * 1000 کی وضاحت // ملی سیکنڈ میں # NTP_ADDRESS کی وضاحت کریں "1.asia.pool.ntp.org" WiFiUDP ntpUDP؛ NTPClient ٹائم کلینٹ (ntpUDP، NTP_ADDRESS، NTP_OFFSET، NTP_INTERVAL)؛
میں سیٹ اپ فنکشن، وائی فائی ترتیبات initialise انٹرنیٹ کے ساتھ رابطہ قائم کرنے کے لئے.
باطل سیٹ اپ () { display.begin ()؛ سیریل.بیگین (9600)؛ سیریل.پرنٹلن ()؛ سیریل.پرنٹلن ()؛ سیریل ڈاٹ پرنٹ ("مربوط ہو رہا ہے")؛ سیریل.پرنٹلن (ایس ایس ڈی)؛ WiFi.begin (ssid، پاس ورڈ)؛ جبکہ (WiFi.status ()! = WL_CONNECTED) { تاخیر (500)؛ سیریل.پرنٹ (".")؛ } Serial.println ("")؛ سیریل.پرنٹلن ("وائی فائی منسلک۔")؛ سیریل.پرنٹلن ("آئی پی ایڈریس:")؛ سیریل.پرنٹ لِن (وائی فائی ۔لوکلپ ())؛ timeClient.begin ()؛
پھر OLED پر وقت ظاہر کرنے کے لئے ڈسپلے افعال کا آغاز کریں۔
display.begin (SSD1306_SWITCHCAPVCC)؛
لوپ فنکشن میں ، ہم نے ٹائم کلائنٹ ڈاٹ اپڈیٹ () کا استعمال کیا ہے ، یہ فنکشن این ٹی پی سے اسٹرنگ کی صورت میں اپ ڈیٹ ٹائم لیتا ہے اور اسے فارمیٹ ٹائم متغیر میں اسٹور کرتا ہے۔ پھر اس کو OLED پر ڈسپلے.پرنٹ لین () فنکشن کا استعمال کرکے ڈسپلے کریں ۔
باطل لوپ () { timeClient.update ()؛ سٹرنگ فارمیٹڈ ٹائم = ٹائم کلائنٹ۔ گیٹ فارمیٹڈ ٹائم ()؛ display.clearDisplay ()؛ display.setTextSize (2)؛ // ان پیرامیٹرز کو اپنی ضرورت کے مطابق مقرر کریں.. ڈسپلے.سیٹ کرسر (0 ، 0)؛ display.println (فارمیٹ ٹائم)؛
مکمل پروگرام ذیل میں دیا گیا ہے۔ اب آخر میں ایردوینو IDE کے ساتھ ESP32 پروگرام کریں اور آپ کی انٹرنیٹ گھڑی وقت ظاہر کرنے کے لئے تیار ہے۔