ٹائمر مائیکرو پائتھون کا استعمال کرتے ہوئے گہری نیند سے ESP32 کو جگائیں۔

Aymr Mayykrw Payt Wn Ka Ast Mal Krt Wy G Ry Nynd S Esp32 Kw Jgayy



ESP32 ایک مائکروکنٹرولر پر مبنی IoT پلیٹ فارم ہے۔ مائیکرو کنٹرولر بورڈ کے ساتھ کام کرتے وقت بجلی کی کھپت اہم خدشات میں سے ایک ہے۔ جب تک ہم DC سپلائی کے ساتھ ESP32 کو پاور کر رہے ہیں ہمیں بجلی کی کھپت کی زیادہ پرواہ نہیں ہے لیکن طویل مدت کے لیے بیٹری بیک اپ پروجیکٹس کے ساتھ ہمیں مجموعی طاقت کو بہتر بنانے کی ضرورت ہے۔

یہاں ہم اس بات پر بحث کریں گے کہ ہم بجلی بچانے کے لیے ESP32 کو ڈیپ سلیپ موڈ میں کیسے سیٹ کر سکتے ہیں۔ اس سے پہلے کہ ہم ٹائمر کا استعمال کرتے ہوئے ESP32 کو گہری نیند سے جگانے کا طریقہ سیکھیں، آئیے گہری نیند کے تصور کو سمجھیں:

ESP32 میں گہری نیند کیا ہے؟

ESP32 اپنے مربوط وائی فائی اور بلوٹوتھ ماڈیول کی وجہ سے طاقت سے محروم ڈیوائس ہو سکتا ہے۔ ESP32 عام طور پر ڈرا کرتا ہے۔ 75mA برائے نام آپریشنز کے لیے جب تک یہ جا سکتا ہے۔ 240mA وائی ​​فائی پر ڈیٹا منتقل کرتے وقت۔ تاہم، ہم گہری نیند کے موڈ کو فعال کر کے اسے بہتر بنا سکتے ہیں۔









گہری نیند کے موڈ میں، ESP32 ڈیجیٹل پیری فیرلز، غیر استعمال شدہ RAM اور CPUs کو آف کر دیا جاتا ہے۔ حصوں کی صرف مندرجہ ذیل فہرست آپریشنل رہتی ہے:



  • آر ٹی سی کنٹرولر
  • ULP کاپروسیسر
  • RTC تیز اور سست میموری
  • آر ٹی سی پیری فیرلز





جب گہری نیند کا موڈ فعال ہوتا ہے، تو مرکزی CPU بند ہو جاتا ہے۔ تاہم، ULP (UltraLowPower) کاپروسیسر اب بھی سینسر سے ڈیٹا پڑھ سکتا ہے اور جب بھی ضرورت ہو CPU کو جگا سکتا ہے۔

ESP32 کی یہ ایپلی کیشن کارآمد ہے جہاں ہم کسی مخصوص وقت پر آؤٹ پٹ پیدا کرنا چاہتے ہیں یا جب کوئی بیرونی رکاوٹ یا واقعہ ہوتا ہے۔ اس سے ESP32 پاور کی بچت ہوتی ہے کیونکہ اس کا CPU باقی وقت تک بند رہتا ہے اور صرف اس وقت آن ہوتا ہے جب اسے کال کیا جاتا ہے۔



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

ایک بار گہری نیند کے موڈ کو دوبارہ ترتیب دینے یا ہٹانے کے بعد ESP32 چپ شروع سے ہی پروگرام کا نفاذ شروع کر دیتی ہے۔

گہری نیند سے ہم مختلف طریقوں سے ESP32 کو جگا سکتے ہیں۔

ESP32 میں جاگنے کے ذرائع

ESP32 کو گہری نیند سے جگانے کے لیے متعدد ذرائع دستیاب ہیں:

  • ٹائمر
  • ٹچ پن
  • بیرونی ویک اپ ext0
  • بیرونی ویک اپ ext1

اس گائیڈ میں ہم احاطہ کریں گے۔ ٹائمر اٹھو ESP32 کا ذریعہ۔

ESP32 کو گہری نیند سے جگانے کے لیے ٹائمر کا استعمال کیسے کریں۔

ESP32 ایک RTC کنٹرولر کے ساتھ آتا ہے جس میں ایک بلٹ ان ٹائمر ماڈیول ہوتا ہے جو ESP32 کو پہلے سے طے شدہ وقت کے بعد جگا سکتا ہے۔ اس خصوصیت میں وسیع ایپلی کیشنز ہیں جہاں ہمیں وقت کی مہر لگانے کی ضرورت ہے یا زیادہ سے زیادہ بجلی کی کھپت کو برقرار رکھتے ہوئے مخصوص اوقات میں ہدایات پر عمل کرنے کی ضرورت ہے۔

ESP32 کو مائیکرو پائتھون کوڈ کا استعمال کرتے ہوئے گہری نیند کے موڈ میں ڈالنے کے لیے گہری نیند() سے فنکشن مشین ماڈیول استعمال کیا جائے گا. MicroPython میں گہری نیند کے فنکشن کا نحو درج ذیل ہے:

آلہ. گہری نیند ( sleep_time_ms )

یہ فنکشن لیتا ہے۔ 1 دلیل جو پہلے سے طے شدہ وقت ہے۔ ملی سیکنڈ .

جاگنے کے لیے ESP32 ٹائمر کے استعمال کو سمجھنے کے لیے ہم ایک مثال لیں گے کہ ہر مقررہ وقت گزرنے کے بعد LED جھپکتی ہے اور کام مکمل ہونے کے بعد واپس سو جاتی ہے۔

مثال کا کوڈ

کوئی بھی MicroPython ایڈیٹر کھولیں اور نیچے دیا گیا کوڈ ESP32 بورڈ میں اپ لوڈ کریں۔ یہاں ہم مائیکرو پائتھون کے خاکے اپ لوڈ کرنے کے لیے Thonny IDE استعمال کریں گے۔

# کوڈ ماخذ Linuxhint.com

سے آلہ درآمد گہری نیند

سے آلہ درآمد پن

سے وقت درآمد سونا

ایل. ای. ڈی = پن ( 4 , پن۔ باہر ) LED آؤٹ پٹ کے لیے #PIN 4 کی وضاحت کی گئی ہے۔

ایل. ای. ڈی. قدر ( 1 ) # 1 سیکنڈ کے لیے LED آن کریں۔

سونا ( 1 )

ایل. ای. ڈی. قدر ( 0 ) # 1 سیکنڈ کے لیے ایل ای ڈی کو آف کریں۔

سونا ( 1 )

پرنٹ کریں ( 'اب سونے جا رہا ہوں' )

گہری نیند ( 5000 ) #5 سیکنڈ کے لیے سوئے۔

کوڈ ضروری لائبریریوں کو درآمد کرکے شروع کیا گیا جیسے کہ ہم نے گہری نیند کی لائبریری کو درآمد کیا۔

اس کے بعد ESP32 پن 4 کے لیے ایک نیا آبجیکٹ بنایا گیا ہے۔ یہ پن ہر بار ESP32 کے اٹھنے پر آؤٹ پٹ دکھائے گا۔

ایل. ای. ڈی = پن ( 4 , پن۔ باہر )

ذیل میں دی گئی کمانڈز 1 سیکنڈ کی تاخیر سے ایل ای ڈی کو جھپکیں گی۔

ایل. ای. ڈی. قدر ( 1 )

سونا ( 1 )

ایل. ای. ڈی. قدر ( 0 )

سونا ( 1 )

یہاں مظاہرے کے مقاصد کے لیے، ہم ایل ای ڈی کو جھپکتے ہیں۔ تاہم، کسی دوسرے آلے کو بھی کنٹرول کیا جا سکتا ہے۔

سونے سے پہلے ہم نے ایک پیغام پرنٹ کیا کہ ESP32 سلیپ موڈ میں جا رہا ہے۔

پرنٹ کریں ( 'اب سونے جا رہا ہوں' )

نوٹ: ESP32 کے سلیپ موڈ میں جانے سے پہلے ہم یہاں 5 یا اس سے زیادہ سیکنڈ کی تاخیر بھی شامل کر سکتے ہیں۔ یہ ہماری مدد کرتا ہے جب ایک پروجیکٹ بناتا ہے اور ایک نیا اسکرپٹ لکھتا ہے۔ نیا کوڈ اپ لوڈ کرتے وقت بورڈ کا بیدار ہونا چاہیے نہ کہ سلیپ موڈ میں۔ اگر ہم تاخیر کو شامل نہیں کرتے ہیں، تو ہمارے لیے ESP32 کو اویک موڈ میں پکڑنا اور ایک نئی اسکرپٹ اپ لوڈ کرنا مشکل ہو جائے گا۔

نیا اسکرپٹ لکھنے کے بعد اور فائنل کوڈ تیار ہونے کے بعد، ہم اسکرپٹ کے آخری ورژن میں اس تاخیر کو دور کر سکتے ہیں۔

آخر میں، ESP32 بورڈ کو 5 سیکنڈ (5000 ms) کے لیے گہری نیند میں رکھا جاتا ہے۔

آلہ. گہری نیند ( 5000 )

ایک بار جب 5 سیکنڈ کا وقت گزر جاتا ہے تو ESP32 جاگ جاتا ہے اور اسی طرح کے کوڈ کو دوبارہ شروع کرتا ہے۔ میں بٹن

  گرافیکل یوزر انٹرفیس، ٹیکسٹ، ایپلیکیشن کی تفصیل خود بخود تیار ہوتی ہے۔

آؤٹ پٹ

تھونی IDE کے شیل ٹرمینل پر درج ذیل آؤٹ پٹ کا مشاہدہ کیا جا سکتا ہے۔ یہاں ہم دیکھ سکتے ہیں کہ ہر 5 سیکنڈ کے بعد ESP32 گہری نیند سے بیدار ہوتا ہے اور GPIO پن 4 پر LED کو جھپکتا ہے۔

GPIO 4 پر LED بدل جائے گی۔ آن 1 سیکنڈ کے لیے

1 سیکنڈ کے بعد ایل ای ڈی بدل جائے گی۔ بند .

اب ESP32 بورڈ دوبارہ 5 سیکنڈ کے لیے سلیپ موڈ میں چلا جائے گا اور اس کے بعد سارا عمل دہرایا جائے گا۔ تو یہ ہے کہ ہم نے ٹائمر کوڈ کا استعمال کرتے ہوئے ESP32 ڈیپ سلیپ موڈ کو کامیابی سے کنٹرول کیا ہے۔

نتیجہ

یہاں اس ٹیوٹوریل میں، ہم نے ESP32 کو MicroPython میں لکھے ہوئے ٹائمر پروگرام کا استعمال کرتے ہوئے گہری نیند سے بیدار کرنے کے لیے ترتیب دیا ہے۔ ہم نے استعمال کرتے ہوئے کوڈ اپ لوڈ کیا۔ تھونی IDE . ESP32 کے بیدار ہونے اور LED جھپکنے کے بعد ہم نے صرف ایک پیغام پرنٹ کیا ہے۔ تاہم، اس مضمون کا استعمال کرتے ہوئے ESP32 گہری نیند سے بیدار ہونے کے بعد کوئی بھی کام انجام دے سکتا ہے۔