DS1307 اور OLED ڈسپلے کا استعمال کرتے ہوئے ESP32 ریئل ٹائم کلاک (RTC)

Ds1307 Awr Oled Spl Ka Ast Mal Krt Wy Esp32 Ryyl Aym Klak Rtc



ESP32 بلٹ ان RTC ماڈیول کے ساتھ آتا ہے، لیکن یہ صرف اس وقت کام کرتا ہے جب طاقت ہو۔ اگر بجلی ختم ہو جائے تو گھڑی دوبارہ ترتیب دی جائے گی اور صحیح وقت رکھنے کے قابل نہیں رہے گی۔ لہذا اگر آپ وقت پر نظر رکھنا چاہتے ہیں یا کسی بھی وقت پر مبنی ڈیوائس کو کنٹرول کرنا چاہتے ہیں، تو DS1307 RTC سینسر کو آزمائیں۔ تاہم، ہو سکتا ہے کہ آپ بیک اپ بیٹری کو اپنے ESP32 بورڈ کے ساتھ جوڑنے کے بارے میں سوچ رہے ہوں، لیکن اگر آپ کے پاس بجلی کی کمی ہے تو ایسا کرنے کے لیے یہ بہترین صورت نہیں ہے۔ بہترین متبادل DS1307 سینسر استعمال کرنا ہے، کیونکہ یہ ایک بلٹ ان بیٹری کے ساتھ آتی ہے جو کم از کم ایک سال تک چل سکتی ہے۔

چیزوں کو واضح کرنے کے لیے، ESP32 کی اندرونی ریئل ٹائم کلاک (RTC) وقت کا ٹریک رکھ سکتی ہے یہاں تک کہ جب مین پروسیسر بند ہو یا گہری نیند میں ہو۔ آپ زیادہ طاقت استعمال کیے بغیر یا مین پروسیسر کو متاثر کیے بغیر وقت کا ٹریک رکھنے کے لیے ESP32 RTC استعمال کر سکتے ہیں۔ لیکن اسے چلانے کے لیے ابھی بھی طاقت کی ضرورت ہوتی ہے، اتنی زیادہ نہیں لیکن اندرونی RTC کو چلانے کے لیے کم از کم طاقت کی ضرورت ہوتی ہے۔

تو اس کے ساتھ، ہمارے پاس صرف بیرونی RTC ماڈیول استعمال کرنے کا حل بچا ہے۔ آئیے DS1307 RTC ماڈیول کے ساتھ ESP32 بورڈ کو انٹرفیس کرنے کے اقدامات کو چیک کریں۔







مشمولات:

1. RTC DS1307 ماڈیول کیا ہے؟

DS1307 ایک کم طاقت والا آلہ ہے جو وقت اور تاریخ کو درست طریقے سے ٹریک کر سکتا ہے۔ یہ بائنری کوڈڈ ڈیسیمل (BCD) فارمیٹ استعمال کرتا ہے۔ یہ آپ کو تفصیلی فارمیٹ میں وقت بتا سکتا ہے جیسے سیکنڈ، منٹ، اور یہاں تک کہ گھنٹے اور دن۔ آپ تاریخ کو مکمل فارمیٹ میں بھی پرنٹ کرسکتے ہیں جیسے مہینہ اور سال۔ اسے یہ بھی معلوم ہوتا ہے کہ یہ 2100 تک کب لیپ کا سال ہے۔ DS1307 کے ساتھ بات چیت کرنے کے لیے، آپ I2C پروٹوکول استعمال کر سکتے ہیں۔





DS1307 میں ایک بلٹ ان بیٹری ہے جو اسے تقریباً ایک سال تک بغیر کسی بیرونی 5V سورس کے پاور دے سکتی ہے۔ اس بیٹری بیک اپ کا استعمال کرتے ہوئے، یہ مین پاور آف ہونے پر بھی وقت کو برقرار رکھ سکتا ہے۔ اس میں کچھ ڈیٹا ذخیرہ کرنے کے لیے SRAM کے 56 بائٹس بھی ہیں۔ DS1307 ایک آسان ڈیوائس ہے جس میں Arduino یا ESP32 بورڈ کے ساتھ مل کر کئی ایپلی کیشنز ہوتے ہیں۔ مثال کے طور پر، یہ ڈیٹا ڈیٹا لاگنگ، الارم سسٹم، یا صنعتی کنٹرول میں مددگار ثابت ہو سکتا ہے۔ اگر آپ کو قابل اعتماد ٹائم کیپنگ کی ضرورت ہے تو، DS1307 ایک بہترین آپشن ہے۔





RTC DS1307 ماڈیول کی تفصیلات

RTC DS1307 ماڈیول RTC IC، ایک EEPROM، ایک کرسٹل آسیلیٹر، اور بیک اپ کے لیے بیٹری ہولڈر پر مشتمل ہے۔



ذیل میں ان حصوں کی تفصیلات ہیں:

DS1307 RTC IC : DS1307 RTC IC ایک 8 پن چپ ہے جو I2C پروٹوکول کا استعمال کرتے ہوئے وقت اور تاریخ کو ٹریک کرتی ہے۔ یہ بہت کم طاقت استعمال کرتا ہے، 500nA سے کم۔ یہ وقت کو سیکنڈوں، منٹوں اور گھنٹوں میں اور تاریخ کو دنوں، مہینوں اور سالوں میں ظاہر کر سکتا ہے۔ یہ 24 گھنٹے اور 12 گھنٹے کے فارمیٹس کے درمیان بھی سوئچ کر سکتا ہے۔

24C32 EEPROM IC : 24C32 EEPROM IC Atmel کی ایک 32 بائٹ چپ ہے جو سیٹنگز، وقت اور تاریخ کو اسٹور کرتی ہے۔ یہ I2C پروٹوکول بھی استعمال کرتا ہے۔

32.768kHz کرسٹل : 32.768kHz کرسٹل آسکیلیٹر DS1307 RTC IC کے لیے گھڑی کی فریکوئنسی فراہم کرتا ہے۔

بیٹری ہولڈر : بیٹری ہولڈر کے پاس CR2032 بیٹری ہے۔ یہ ایک 3V لتیم کوائن سیل ہے۔ یہ DS1307 RTC IC کو مسلسل طاقت فراہم کرتا ہے۔

DS18B20 سینسر کی فراہمی : DS18B20 سینسر کی فراہمی آپ کو DS18B20 درجہ حرارت سینسر کو ٹانکا لگانے اور استعمال کرنے کی اجازت دیتی ہے۔ یہ پہلے سے سولڈر نہیں ہے۔ آپ تھرو ہول پیکج کو سولڈر کر سکتے ہیں اور ماڈیول کے DS پن سے درجہ حرارت حاصل کر سکتے ہیں۔

نیچے دی گئی فہرست DS1307 RTC سینسر کی کچھ فوری وضاحتیں دیتی ہے۔

  • آپریٹنگ وولٹیج: 4.5–5.5 V، عام طور پر 5 V
  • موجودہ کھپت : 1.5 ایم اے سے کم
  • درستگی : 0–40 °C، کرسٹل پر منحصر ہے۔
  • بیٹری : CR2032 (3 V coin)
  • یاداشت : 56 بائٹس غیر متزلزل RAM
  • انٹرفیس : دو تار (I2C) سیریل انٹرفیس
  • آؤٹ پٹ : 1 ہرٹج آؤٹ پٹ پن
  • قابل پروگرام مربع لہر آؤٹ پٹ : بیٹری بیک اپ موڈ میں 500 nA سے کم استعمال کرتا ہے۔
  • پاور فیل کا پتہ لگانا : خودکار پاور فیل کا پتہ لگانے اور سوئچ سرکٹری
  • پاور سینس سرکٹ : یہ بجلی کی کمی پر بیک اپ سپلائی کے لیے آٹو سوئچ کر سکتا ہے۔
  • لیپ سال کا معاوضہ : سال 2100 تک درست

RTC DS1307 ماڈیول پن آؤٹ

ماڈیول میں مختلف فنکشنز کے ساتھ کئی پن ہیں۔

  • وی سی سی وہ پن ہے جسے ماڈیول کو طاقت دینے کے لیے 3.3V اور 5.5V کے درمیان DC وولٹیج کی ضرورت ہوتی ہے۔
  • جی این ڈی کم وولٹیج یا گراؤنڈ کے لیے پن ہے۔
  • ایس ڈی اے اور ایس سی ایل وہ پن ہیں جو I2C بس کے ذریعے ڈیٹا اور گھڑی کے سگنلز کو پہنچاتے ہیں۔
  • ڈی ایس وہ پن ہے جو DS1307 سینسر سے درجہ حرارت کی پیمائش کرتا ہے اگر آپ کے پاس RTC ماڈیول ہے۔
  • SQ وہ پن ہے جو 1 Hz، 4 kHz، 8 kHz، یا 32 kHz کی فریکوئنسی کے ساتھ مربع لہر سگنل پیدا کرتا ہے، اس بات پر منحصر ہے کہ آپ اسے کیسے پروگرام کرتے ہیں۔
  • ایک وہ پن ہے جو مین پاور آف ہونے پر وقت کو درست رکھنے کے لیے 3V بیٹری استعمال کرتا ہے۔

2. RTC DS1307 اور OLED ڈسپلے کو ESP32 کے ساتھ کیسے انٹرفیس کریں۔

ESP32 کو DS1307 اور OLED ڈسپلے کے ساتھ انٹرفیس کرنے کے لیے، آپ ESP32 بورڈ کے بلٹ ان I2C پن استعمال کر سکتے ہیں۔ DS1307 اور OLED ڈسپلے دونوں I2C پر مبنی ڈیوائسز ہیں۔ پھر I2C بس پر I2C ماسٹر غلام پروٹوکول کا استعمال کرتے ہوئے بات چیت کر سکتے ہیں۔

اس سے پہلے کہ ہم DS1307 اور OLED ڈسپلے کے ساتھ ESP32 کے انٹرفیسنگ کی طرف بڑھیں، پہلے آپ کو کچھ مطلوبہ لائبریریاں انسٹال کرنی ہوں گی۔

مطلوبہ لائبریریوں کو انسٹال کرنا

آپ کو دو لائبریریوں کی ضرورت ہوگی، ایک RTC ماڈیول کے لیے اور ایک OLED ڈسپلے کے لیے۔ RTC ماڈیول کے ساتھ OLED کا استعمال کرتے ہوئے، آپ حیرت انگیز اور انٹرایکٹو گھڑی کے مناظر بنا سکتے ہیں۔ اگر آپ کے پاس اسکرین پر وقت ظاہر کرنے کا کوئی منصوبہ نہیں ہے، تو آپ اس لائبریری کی تنصیب کو چھوڑ سکتے ہیں۔

درج ذیل دو لائبریریاں ہیں جن کی آپ کو ضرورت ہو گی۔

  • RTClib (بذریعہ Adafruit) ایک Arduino IDE لائبریری ہے جو RTC سے وقت طے کرنے اور حاصل کرنے کے لیے ہے۔ یہ تاریخوں، اوقات اور دورانیے میں ہیرا پھیری کے لیے کلاسز بھی فراہم کرتا ہے۔ اس لائبریری کا استعمال کرتے ہوئے، آپ ریئل ٹائم کلاک (RTC) ماڈیولز، جیسے DS1307 اور DS3231 کو انٹرفیس اور پروگرام کر سکتے ہیں۔
  • ایس SD1306 (بذریعہ Adafruit) Arduino کے لیے ایک لائبریری ہے، جس کا استعمال کرتے ہوئے آپ OLED ڈسپلے کو Arduino یا کسی دوسرے مائکرو کنٹرولر بورڈ کے ساتھ انٹرفیس اور پروگرام کر سکتے ہیں۔

Arduino IDE میں ان دونوں لائبریریوں کو ڈاؤن لوڈ اور انسٹال کرنے کے لیے، پہلے کھولیں۔ لائبریری مینیجر RTClib لائبریری تلاش کریں، اور کلک کریں۔ انسٹال کریں۔ :

آپ کو صرف لائبریری یا اس کے انحصار کو انسٹال کرنے کا اختیار ملے گا۔ پر کلک کریں۔ تمام انسٹال کریں۔ لائبریری کو مکمل طور پر انسٹال کرنے کے لیے بٹن۔ اس طرح آپ کو کوئی غلطی نہیں ملے گی اگر آپ کوڈ میں ترمیم کریں جو اس لائبریری کے انحصار پر منحصر ہے۔

اسی طرح SSD1306 لائبریری تلاش کریں۔ یہ لائبریری OLED ڈسپلے کے لیے درکار ہے۔ کلک کریں۔ انسٹال کریں۔ آگے بڑھنے کے لئے.

اس بار بھی آپ کو وہی تصدیقی پیغام ملے گا۔ پر کلک کریں تمام انسٹال کریں۔ اختیار

اب OLED اور DS1307 کے لیے دونوں لائبریریاں انسٹال اور استعمال کے لیے تیار ہیں۔ لیکن اس سے پہلے، پہلے، OLED ڈسپلے کے لیے I2C ایڈریس معلوم کریں۔

3. OLED ڈسپلے کا I2C پتہ تلاش کرنا

I2C ایڈریس I2C بس میں ہر ڈیوائس کے لیے ایک منفرد شناخت کنندہ ہے۔ یہ ماسٹر ڈیوائس کو اس کے ایڈریس پر ڈیٹا بھیج کر ایک مخصوص غلام ڈیوائس کے ساتھ بات چیت کرنے کی اجازت دیتا ہے۔ I2C ایڈریس کا مقصد ایک ہی بس میں متعدد آلات کے درمیان تنازعات اور الجھنوں سے بچنا ہے۔

I2C ڈیوائس کا پتہ حاصل کرنے کے لیے، آپ استعمال کر سکتے ہیں a سادہ خاکہ جو بس کو اسکین کرتا ہے اور پتے پرنٹ کرتا ہے۔ ان آلات کا جو اسے ملتا ہے۔ متبادل طور پر، آپ ڈیوائس کی ڈیفالٹ یا قابل ترتیب ایڈریس دیکھنے کے لیے اس کی ڈیٹا شیٹ کو چیک کر سکتے ہیں۔

یہاں ہمارے معاملے میں I2C سکینر کوڈ چلانے کے بعد OLED اسکرین کا درج ذیل I2C پتہ Arduino IDE ٹرمینل پر ظاہر ہوتا ہے۔

زیادہ تر وقت، اس بات کا زیادہ امکان ہوتا ہے کہ آپ کو بھی وہی ملے گا۔ 0x3C آپ کی OLED اسکرین کا پتہ۔

4. OLED اور RTC DS1307 ماڈیول کو ESP32 کے ساتھ انٹرفیس کرنا

1. DS1307 ماڈیول اور دونوں کے SDA اور SCL پنوں کو جوڑیں۔ I2C پنوں پر OLED ڈسپلے ESP32 کا۔ عام طور پر، یہ GPIO 21 اور GPIO 22 ہیں۔ ، لیکن اگر ضرورت ہو تو آپ کوڈ میں کوئی اور پن بھی تفویض کر سکتے ہیں۔

2. DS1307 کے VCC اور GND اور OLED ڈسپلے کو ESP32 کے 3.3V اور GND پنوں سے جوڑیں۔

3. ریئل ٹائم کلاک کے لیے بیک اپ پاور فراہم کرنے کے لیے DS1307 ماڈیول میں CR2032 کوائن سیل بیٹری داخل کریں۔

4. اس ٹیوٹوریل سے مثالی کوڈ اپنے ESP32 بورڈ پر اپ لوڈ کریں۔ کسٹم آؤٹ پٹ کے لیے کوڈ میں ترمیم کریں۔

اپ لوڈ کرنے کے بعد، ایک گھڑی مقررہ وقت سے شروع ہوگی اور OLED اسکرین پر وقت دکھائے گی۔

5. سرکٹ ڈایاگرام

DS1307 کے ساتھ ESP32 کا سرکٹ ڈایاگرام آسان ہے، جس میں صرف چار تاروں کو جوڑنے کی ضرورت ہے۔ آپ OLED اور DS1307 دونوں سینسر کے I2C تاروں SDA اور SCL کو چھوٹا کر سکتے ہیں۔ اسی طرح، ان دونوں سینسر کو پاور اپ کرنے کے لیے، ESP32 بورڈ کے 3V3 اور GND پن کو استعمال کیا جا سکتا ہے۔ اگر ضرورت ہو تو آپ علیحدہ ذریعہ سے بھی پاور کر سکتے ہیں۔

نوٹ : RTC DS1307 کو ESP32 کے 3.3V پن سے پاور کرنا محفوظ ہے اگر ESP32 کی موجودہ حد سے تجاوز نہ کیا جائے۔ لیکن اگر آپ محفوظ سائٹ پر رہنا چاہتے ہیں تو آپ یا تو RTC ماڈیول کے لیے الگ پاور سورس استعمال کر سکتے ہیں یا کم طاقت والے DS3231 سینسر کو آزما سکتے ہیں جس کی آپریٹنگ رینج 3.3 سے 5.5 VDC کے درمیان ہے۔

نیچے دی گئی تصویر ESP32 کے RTC DS1307 سینسر کے ساتھ کنکشن کو واضح کرتی ہے۔

اسی طرح، اگر آپ وقت کو ظاہر کرنے کے لیے OLED اسکرین کو جوڑنا چاہتے ہیں، تو آپ وہی I2C پن اور ESP32 بورڈ کے پاور پن استعمال کر سکتے ہیں۔

6. کوڈ

نیچے دیئے گئے کوڈ کا استعمال کرتے ہوئے، ہم RTC پر موجودہ تاریخ اور وقت مقرر کریں گے۔ وقت مقرر کرنے کے بعد، کوڈ Arduino IDE ٹرمینل پر وقت دکھائے گا۔ کوڈ اپ لوڈ کرنے سے پہلے، آپ کو اسے اپنی موجودہ تاریخ اور وقت کے ساتھ اپ ڈیٹ کرنا ہوگا۔

# 'RTClib.h' شامل کریں
RTC_DS1307 DS1307_RTC;
چار ہفتہ_دن [ 7 ] [ 12 ] = { 'اتوار' ، 'پیر' ، 'منگل' ، 'بدھ' ، 'جمعرات' ، 'جمعہ' ، 'ہفتہ' } ;
باطل سیٹ اپ ( ) {
سیریل شروع کریں۔ ( 115200 ) ;
#ifndef ESP8266
جبکہ ( ! سیریل ) ;
#ختم کرو اگر
اگر ( ! DS1307_RTC.begin ( ) ) {
Serial.println ( 'آر ٹی سی نہیں مل سکا' ) ;
جبکہ ( 1 ) ;
}
DS1307_RTC.adjust ( تاریخ وقت ( ایف ( __DATE__ ) ، ایف ( __TIME__ ) ) ) ;
}
باطل لوپ ( ) {
اب تاریخ کا وقت = DS1307_RTC.now ( ) ;
سیریل۔ پرنٹ ( اب سال ( ) ، DEC ) ;
سیریل۔ پرنٹ ( '/' ) ;
سیریل۔ پرنٹ ( اب مہینہ ( ) ، DEC ) ;
سیریل۔ پرنٹ ( '/' ) ;
سیریل۔ پرنٹ ( اب دن ( ) ، DEC ) ;
سیریل۔ پرنٹ ( '(' ) ;
سیریل۔ پرنٹ ( ہفتہ_دن [ now.dayOfTheweek ( ) ] ) ;
سیریل۔ پرنٹ ( ')' ) ;
سیریل۔ پرنٹ ( now.hour ( ) ، DEC ) ;
سیریل۔ پرنٹ ( ':' ) ;
سیریل۔ پرنٹ ( اب منٹ ( ) ، DEC ) ;
سیریل۔ پرنٹ ( ':' ) ;
سیریل۔ پرنٹ ( now.second ( ) ، DEC ) ;
Serial.println ( ) ;
تاخیر ( 1000 ) ;
}

یہ کوڈ استعمال کرتا ہے۔ RTClib لائبریری DS1307 ریئل ٹائم کلاک ماڈیول کے ساتھ انٹرفیس کرنے کے لیے جو تاریخ اور وقت کو ٹریک کرتا ہے۔

دی سیٹ اپ فنکشن بوڈ ریٹ کو شروع کرنے کے ساتھ شروع ہوا۔ اس کے بعد، اس سیکشن کے اندر، ہم نے کمپیوٹر کی تاریخ اور وقت کو DS1307 سینسر کے ساتھ مطابقت پذیر کرنے کے فنکشن کی وضاحت کی۔ یہ کوڈ کی تالیف کا وقت RTC سینسر پر اپ لوڈ کر دے گا۔

آپ استعمال کر سکتے ہیں۔ لوپ RTC سے تاریخ اور وقت حاصل کرنے کا فنکشن۔ پھر، آپ اسے سیریل مانیٹر پر اس طرح ڈسپلے کر سکتے ہیں: سال/مہینہ/دن (ہفتے کا دن) گھنٹہ: منٹ: سیکنڈ۔ ہر لوپ کے بعد ایک سیکنڈ کی تاخیر شامل کرنا یاد رکھیں، تاکہ کوڈ زیادہ تیزی سے نہ چلے۔

OLED ڈسپلے پر موجودہ وقت دکھائیں۔

OLED اسکرین پر ایک ہی وقت ظاہر کرنے کے لیے، ہمیں OLED اسکرین کے لیے ایک اضافی کوڈ کا حصہ شامل کرنا ہوگا۔ بس دیئے گئے کوڈ کو اپ لوڈ کریں۔ یہ کوڈ آپ کی OLED اسکرین پر موجودہ وقت دکھائے گا۔

یاد رکھیں، یہاں ہم 0.96 انچ 128×64 I2C SSD OLED ڈسپلے ماڈیول استعمال کرتے ہیں۔ اگر آپ کوئی دوسرا سائز استعمال کر رہے ہیں تو اس کے مطابق کوڈ میں ترمیم کریں۔ اس کے علاوہ، I2C ایڈریس چیک کریں اور دیے گئے کوڈ میں اس میں ترمیم کریں۔ ہمارے معاملے میں، ہمارے پاس OLED اسکرین کے لیے I2C ایڈریس 0x3C ہے۔

#include
#include
#include
# 'RTClib.h' شامل کریں
# SCREEN_WIDTH 128 کی وضاحت کریں۔
SCREEN_HEIGHT 64 کی وضاحت کریں۔

Adafruit_SSD1306 ڈسپلے ( SCREEN_WIDTH، SCREEN_HEIGHT، اور تار، - 1 ) ;
RTC_DS1307 RTC؛
چار دن [ 7 ] [ 12 ] = { 'اتوار' ، 'پیر' ، 'منگل' ، 'بدھ' ، 'جمعرات' ، 'جمعہ' ، 'ہفتہ' } ;
باطل سیٹ اپ ( ) {
سیریل شروع کریں۔ ( 115200 ) ;
اگر ( ! RTC.begin ( ) ) {
Serial.println ( 'آر ٹی سی نہیں مل سکا' ) ;
جبکہ ( 1 ) ;
}
RTC.adjust ( تاریخ وقت ( ایف ( __DATE__ ) ، ایف ( __TIME__ ) ) ) ;
اگر ( ! display.begin ( SSD1306_SWITCHCAPVCC, 0x3C ) ) {
Serial.println ( ایف ( 'SSD1306 مختص ناکام ہو گیا' ) ) ;
کے لیے ( ;; ) ;
}
تاخیر ( 1000 ) ;
display.clearDisplay ( ) ;
display.setTextSize ( 2 ) ;
display.setTextColor ( سفید ) ;
display.setCursor ( 30 ، بیس ) ;
display.println ( 'لینکس' ) ;
ڈسپلے۔ ڈسپلے ( ) ;
تاخیر ( 3000 ) ;
display.clearDisplay ( ) ;
}
باطل لوپ ( ) {
DateTime now = RTC.now ( ) ;
display.clearDisplay ( ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 ، 0 ) ;
ڈسپلے۔ پرنٹ ( اب دن ( ) ) ;
ڈسپلے۔ پرنٹ ( '/' ) ;
ڈسپلے۔ پرنٹ ( اب مہینہ ( ) ) ;
ڈسپلے۔ پرنٹ ( '/' ) ;
ڈسپلے۔ پرنٹ ( اب سال ( ) ) ;
display.println ( دن [ now.dayOfTheweek ( ) ] ) ;
display.println ( '' ) ;
display.setCursor ( 0 ، 40 ) ;
اگر ( now.hour ( ) < 10 )
ڈسپلے۔ پرنٹ ( '0' ) ;
ڈسپلے۔ پرنٹ ( now.hour ( ) ) ;
ڈسپلے۔ پرنٹ ( ':' ) ;
اگر ( اب منٹ ( ) < 10 )
ڈسپلے۔ پرنٹ ( '0' ) ;
ڈسپلے۔ پرنٹ ( اب منٹ ( ) ) ;
ڈسپلے۔ پرنٹ ( ':' ) ;
اگر ( now.second ( ) < 10 )
ڈسپلے۔ پرنٹ ( '0' ) ;
display.println ( now.second ( ) ) ;
ڈسپلے۔ ڈسپلے ( ) ;
}

کوڈ ان لائبریریوں کے ساتھ شروع ہوا جو ہم نے RTC اور ڈسپلے کے لیے انسٹال کی ہیں۔ اس کے بعد، یہ اسکرین کا سائز اور ڈسپلے ایڈریس کی وضاحت کرتا ہے۔ یہ ہفتے کے دن کے ناموں کے ساتھ صف کو شروع کرتا ہے۔

دی سیٹ اپ حصہ سیریل مواصلات سے شروع ہوتا ہے۔ یہ چیک کرتا ہے کہ آیا RTC اور ڈسپلے کام کر رہے ہیں یا نہیں۔ اس کے بعد، ہم نے ایک سٹرنگ ٹیکسٹ 'Linuxhint' کی وضاحت کی ہے جو 3 سیکنڈ تک ظاہر ہوگی۔ یہ صرف ایک افتتاحی یا ابتدائی پیغام ہے، آپ اس پیغام کو اپنی مرضی کے مطابق متن کے ساتھ بھی تبدیل کر سکتے ہیں۔

دی لوپ فنکشن کو DS1307 ماڈیول کی تاریخ اور وقت ملتا ہے۔ اس کے بعد، یہ ڈسپلے کو صاف کرتا ہے اور تاریخ اور وقت کو فارمیٹ شدہ طریقے سے پرنٹ کرتا ہے۔ کوڈ گھنٹوں، منٹوں اور سیکنڈز میں پہلے زیرو کا اضافہ بھی کرتا ہے، اگر ان کی قدریں 10 سے چھوٹی ہوں۔

7. ہارڈ ویئر

کوڈ کو ESP32 بورڈ پر اپ لوڈ کرنے کے بعد، آپ کو OLED اسکرین پر درج ذیل آؤٹ پٹ نظر آئے گا۔ ہارڈ ویئر کے لیے، ہم نے OLED اسکرین اور ایک I2C RTC DS1307 ماڈیول استعمال کیا ہے۔ 30 پنوں والا ESP32 بورڈ استعمال کیا جاتا ہے۔ آپ کسی دوسرے ESP32 بورڈ کے ساتھ بھی تجربہ کر سکتے ہیں، لیکن I2C پنوں کو درست طریقے سے جوڑنے کو یقینی بنائیں۔

نتیجہ

RTC DS1307 میں بیٹری بیک اپ سپورٹ کے ساتھ 56 بائٹ SRAM ہے۔ یہ ایک 8 پن ڈیوائس ہے جو I2C کمیونیکیشن پروٹوکول کا استعمال کرتی ہے۔ DS1307 RTC ماڈیول کو ESP32 کے ساتھ انٹرفیس کرنے کے لیے، آپ ESP32 بورڈ کے I2C پن (GPIO 22 (SCL) اور GPIO 21 (SDA)) استعمال کر سکتے ہیں۔ آپ وقت کو Arduino IDE کنسول پر پرنٹ کر سکتے ہیں یا وقت کو ظاہر کرنے کے لیے OLED یا I2C LCD جیسی کوئی بھی سکرین استعمال کر سکتے ہیں۔ DS1307 RTC ماڈیول مختلف ایپلی کیشنز میں وقت اور تاریخ کو ٹریک کرنے کے لیے ایک مفید آلہ ہے۔ کچھ اہم ایپلی کیشنز میں ڈیٹا لاگرز، ڈیجیٹل گھڑیاں، اور سمارٹ واچز شامل ہیں۔