اس ٹیوٹوریل میں ، ہم ریئل ٹائم کلاک (آر ٹی سی) اور ای ایس پی 32 اور او ایل ای ڈی ڈسپلے کے ساتھ اس کی مداخلت کے بارے میں جانیں گے ۔
ہم DS3231 RTC ماڈیول کا استعمال کریں گے تاکہ صحیح وقت پر نظر رکھیں اور اس کو ایس پی آئی OLED پر ESP32 کو بطور مائکروکانٹرولر استعمال کریں۔ ESP32 ایک مائکروقانونی سے زیادہ ہے۔ اس کے اندر وائی فائی اور بلوٹوت چپ اور 39 جی پی آئی او پن ہیں۔ یہ تمام مواصلات کے پروٹوکول کی حمایت کرتا ہے جیسے ایس پی آئی ، آئی 2 سی ، یو آر ٹی ، وغیرہ۔ اگر آپ ای ایس پی 32 میں نئے ہیں تو پہلے ای ایس پی 32 ٹیوٹوریل کے ساتھ شروع کرنا شروع کریں۔
آر ٹی سی کیا ہے؟
DS3231 ایک RTC (ریئل ٹائم گھڑی) ماڈیول ہے۔ اس کا استعمال بیشتر الیکٹرانکس منصوبوں کی تاریخ اور وقت کو برقرار رکھنے کے لئے کیا جاتا ہے۔ اس ماڈیول کی اپنی کوئین سیل بجلی کی فراہمی ہے جس کا استعمال کرتے ہوئے وہ تاریخ اور وقت کو برقرار رکھتا ہے یہاں تک کہ جب مرکزی طاقت کو ہٹا دیا جاتا ہے یا ایم سی یو کسی سخت ری سیٹ سے گزرتا ہے۔ لہذا ایک بار جب ہم اس ماڈیول میں تاریخ اور وقت طے کرتے ہیں تو وہ ہمیشہ اس کا ٹریک رکھتا ہے۔ آر ٹی سی کے کئی قسم کے آئی سی دستیاب ہیں جیسے DS1307 ، DS3231 وغیرہ۔
اس سے پہلے ہم ذیل میں پروجیکٹس میں آرڈینو کے ساتھ DS3231 RTC استعمال کر چکے ہیں۔
- آرڈینوو کا استعمال کرتے ہوئے خودکار پالتو جانوروں کا فیڈر
- اردوینو ڈیٹا لاگر
نوٹ: اس ماڈیول کو پہلی بار استعمال کرتے وقت آپ کو تاریخ اور وقت مقرر کرنا ہوگا۔ آپ آر ٹی سی آئی سی DS1307 بھی استعمال کرسکتے ہیں ، اس سے قبل ہم ارڈینو کے ساتھ DS1307 استعمال کرچکے ہیں۔
OLED ڈسپلے کے بارے میں جاننا:
او ایل ای ڈی اصطلاح کا مطلب ہے " نامیاتی لائٹ ایمیٹنگ ڈایڈڈ" اس میں وہی ٹکنالوجی استعمال کی گئی ہے جو ہمارے بیشتر ٹیلی ویژن میں استعمال ہوتی ہے لیکن ان کے مقابلے میں پکسلز کم ہیں۔ یہ ٹھنڈا لگنے والے ڈسپلے ماڈیولز حاصل کرنا واقعی خوشی کی بات ہے کیونکہ اس سے ہمارے منصوبے ٹھنڈی نظر آسکیں گے۔ ہم نے OLED ڈسپلے اور اس کی اقسام کے بارے میں ایک مکمل مضمون کا احاطہ کیا ہے۔
ہم ایک مونوکروم 7 پن SSD1306 0.96 ”OLED ڈسپلے استعمال کررہے ہیں ۔ اس ڈسپلے کو منتخب کرنے کی وجہ یہ ہے کہ یہ تین مختلف مواصلات پروٹوکولز جیسے ایس پی آئی 3 وائر موڈ ، ایس پی آئی فور وائر موڈ اور آئی سی موڈ پر کام کرسکتا ہے۔ اس ٹیوٹوریل میں اس بات کا احاطہ کیا جائے گا کہ ایس پی آئی 4 وائر موڈ میں ماڈیول کو کس طرح استعمال کیا جائے کیوں کہ یہ مواصلات کا تیز ترین موڈ اور پہلے سے طے شدہ ہے۔
پنوں اور اس کے افعال کو نیچے دیئے گئے جدول میں بیان کیا گیا ہے۔
پن نمبر |
پن کا نام |
دوسرے نام |
استعمال |
1 |
Gnd |
زمین |
ماڈیول کا گراؤنڈ پن |
2 |
وی ڈی ڈی |
وی سی سی ، 5 وی |
پاور پن (3-5V قابل برداشت) |
3 |
ایس سی کے |
ڈی0 ، ایس سی ایل ، سی ایل کے |
گھڑی کے پن کی طرح کام کرتا ہے۔ I2C اور SPI دونوں کے لئے استعمال کیا جاتا ہے |
4 |
ایس ڈی اے |
ڈی 1 ، موسی |
ماڈیول کا ڈیٹا پن۔ IIC اور SPI دونوں کے لئے استعمال کیا جاتا ہے |
5 |
RES |
آر ایس ٹی ، ریسٹ |
ماڈیول کو دوبارہ مرتب کریں (ایس پی آئی کے دوران کارآمد) |
6 |
ڈی سی |
A0 |
ڈیٹا کمانڈ پن ایس پی آئی پروٹوکول کے لئے استعمال کیا جاتا ہے |
7 |
CS |
چپ منتخب کریں |
جب ایس پی آئی پروٹوکول کے تحت ایک سے زیادہ ماڈیول استعمال کیے جائیں تو مفید ہے |
اس ٹیوٹوریل میں ہم ماڈیول کو صرف 4 وائر ایس پی آئی موڈ میں چلائیں گے ، ہم باقی کو کسی اور سبق کے لئے چھوڑ دیں گے۔
ارڈینو کمیونٹی نے پہلے ہی ہمیں بہت سی لائبریرییں دے رکھی ہیں جن کو براہ راست استعمال کرکے اسے بہت آسان بنایا جاسکتا ہے۔ میں نے کچھ لائبریریوں کو آزمایا اور پتہ چلا کہ Adaf فرو_SSD1306 لائبریری کا استعمال کرنا بہت آسان تھا اور اس میں مٹھی بھر گرافیکل آپشنز موجود تھے لہذا ہم اسے اس ٹیوٹوریل میں استعمال کریں گے۔ لیکن ، اگر آپ کے منصوبے میں میموری / رفتار کی رکاوٹ ہے تو U8g لائبریری کو استعمال کرنے کی کوشش کریں کیونکہ یہ تیز رفتار کام کرتا ہے اور پروگرام کی میموری کو کم رکھتا ہے۔
ہم نے راسبیری پائی اور آرڈینو کے ساتھ OLED بھی انٹرفیس کیا ہے۔
مطلوبہ مواد:
- ESP32
- DS3231 RTC ماڈیول
- 7 پن 128 × 64 OLED ڈسپلے ماڈیول (SSD1306)
- نر مادہ تاروں
- بریڈ بورڈ
سرکٹ ڈایاگرام:
RTC3231 کو ESP بورڈ سے جوڑنے کے لئے سرکٹ ڈایاگرام ذیل میں دیا گیا ہے:
آر ٹی سی DS3231 آئی سی مواصلت کا I2C وضع استعمال کرتا ہے ۔ اس میں ایس سی ایل ، ایس ڈی اے ، وی سی سی اور جی این ڈی پن شامل ہیں۔ ESP32 کے ساتھ RTC ماڈیول کا رابطہ ذیل میں دیا گیا ہے:
- آر ٹی سی کا ایس سی ایل -> ای ایس پی 32 کا ایس سی ایل یعنی پن D22
- آر ٹی سی کا ایس ڈی اے -> ایس پی 32 کا ایس ڈی اے یعنی پن D21
- GND آف RTC -> GND ESP32
- آر ٹی سی کا وی سی سی -> ای سی پی 32 کا وی سی سی
یہاں ، ہم اپنے 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 بورڈ مینیجر ڈراپ ڈاؤن مینو میں Ardino 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 فرو/Adafruit-GFX- لائبریری
4. آر ٹی سی لیب:
لہذا ہم نے تمام لائبریریوں کو شامل کیا ہے
# شامل کریں
پھر OLED کے تمام پنوں کی وضاحت کریں۔ آپ کو RTC ماڈیول کے لئے پنوں کی وضاحت کرنے کی ضرورت نہیں ہے کیونکہ یہ پن پہلے ہی WIRE لائبریری میں متعین ہیں۔
# تعی Oن OLED_MOSI 23 # تعیCLن OLED_CLK 18 # تعی Oن OLED_DC 4 # تعی Oن OLED_CS 5 # تعی Oن OLED_RESET 2 اڈafفruitٹ_ ایس ایس ڈی1306 ڈسپلے (OLED_MOSI، OLED_CLK، OLED_C، OLED_CT؛ OLED_CT؛
میں سیٹ اپ کی تقریب، ہم نے ایک تقریب کو فون کروں گا rtc.adjust (DATETIME (__ DATE__، __TIME__)) ہمارے پی سی کے وقت کے مطابق وقت مقرر کرے گا.
باطل سیٹ اپ () { سیریل.بیگین (9600)؛ اگر (! rtc.begin ()) ial Serial.println ("آر ٹی سی نہیں مل سکا")؛ جبکہ (1)؛ } rtc.adjust (DATETIME (__ DATE__، __TIME__))؛
اس کے بعد ہم OLED پر ظاہر کرنے کے لئے ڈسپلے فنکشنز کو کال کرتے ہیں۔
display.begin (SSD1306_SWITCHCAPVCC)؛ display.clearDisplay ()؛ ڈسپلے.سیٹ ٹیکسٹکالور (وائٹ)؛ //display.startscrolright(0x00، 0x0F)؛ // آپ oed ڈسپلے پر اپنے متن کو اسکرول کے ل this اس لائن کو غیر معمولی بنا سکتے ہیں۔ سیٹ ٹیکسٹسیز (2)؛ ڈسپلے.سیٹ کرسر (0،5)؛ display.print ("گھڑی")؛ // یہ OLED پر 3 سیکنڈ تک ڈسپلے کرے گا۔ ڈسپلے ()؛ تاخیر (3000)؛ }
پھر آخر میں لوپ فنکشن میں ، ہم اپنا وقت ڈیٹ ٹائم میں اب پہلے سے طے شدہ متغیر میں اسٹور کریں گے اور سیٹ ٹیکسٹ سیز ، سیٹ کرسر ، وغیرہ جیسے ڈسپلے افعال کا استعمال کرتے ہوئے اس وقت کو ڈسپلے کریں گے اور اپنی ضرورت کے مطابق ان کو مرتب کریں اور OLED پر ظاہر کرنے کے لئے ڈسپلے.پرنٹلن فنکشن کا استعمال کریں ۔
باطل لوپ () { ڈیٹ ٹائم اب = rtc. अब ()؛ display.clearDisplay ()؛ display.setTextSize (2)؛ ڈسپلے.سیٹ کرسر (75،0)؛ display.println (now.second ()، DEC)؛
لہذا آپ ESP32 کا استعمال کرتے ہوئے OLED پر وقت ظاہر کرسکتے ہیں اور جیسا کہ آپ جانتے ہیں کہ ESP اپنی IOT صلاحیتوں کے لئے جانا جاتا ہے ، لہذا آپ اس کو انٹرنیٹ پر وقت شائع کرنے کے لئے استعمال کرسکتے ہیں۔ اگلے مضمون میں ہم آپ کو کسی بھی RTC ماڈیول کا استعمال کیے بغیر ESP پر انٹرنیٹ ٹائم ظاہر کرنے کے لئے دکھائیں گے۔