টাইমার-মাইক্রোপাইথন ব্যবহার করে গভীর ঘুম থেকে ESP32 জাগ্রত করুন

Ta Imara Ma Ikropa Ithana Byabahara Kare Gabhira Ghuma Theke Esp32 Jagrata Karuna



ESP32 হল একটি মাইক্রোকন্ট্রোলার ভিত্তিক IoT প্ল্যাটফর্ম। মাইক্রোকন্ট্রোলার বোর্ডের সাথে কাজ করার সময় পাওয়ার খরচ প্রধান উদ্বেগের একটি। যতক্ষণ পর্যন্ত আমরা DC সাপ্লাই দিয়ে ESP32 কে পাওয়ার করছি ততক্ষণ আমরা বিদ্যুতের খরচ সম্পর্কে বেশি চিন্তা করি না কিন্তু দীর্ঘমেয়াদে ব্যাটারি ব্যাকআপ প্রকল্পের সাথে আমাদের সামগ্রিক শক্তি অপ্টিমাইজ করতে হবে।

এখানে আমরা আলোচনা করব কিভাবে আমরা শক্তি সঞ্চয় করার জন্য নির্দিষ্ট সময়ে গভীর ঘুমের মোডে ESP32 সেট করতে পারি। টাইমার ব্যবহার করে গভীর ঘুম থেকে ESP32 কে কীভাবে জাগানো যায় তা শেখার আগে, আসুন গভীর ঘুমের ধারণাটি বুঝতে পারি:

ESP32 এ গভীর ঘুম কি?

ইন্টিগ্রেটেড ওয়াইফাই এবং ব্লুটুথ মডিউলের কারণে ESP32 একটি পাওয়ার-হাংরি ডিভাইস হতে পারে। ESP32 সাধারণত ড্র করে 75mA নামমাত্র অপারেশনের জন্য যখন এটি পর্যন্ত যেতে পারে 240mA WiFi এর মাধ্যমে ডেটা প্রেরণ করার সময়। যাইহোক, আমরা গভীর ঘুম মোড সক্ষম করে এটি অপ্টিমাইজ করতে পারি।









ডিপ স্লিপ মোডে, ESP32 ডিজিটাল পেরিফেরাল, অব্যবহৃত RAM এবং CPU গুলি বন্ধ থাকে। শুধুমাত্র নিম্নলিখিত অংশগুলির তালিকা চালু আছে:



  • আরটিসি কন্ট্রোলার
  • ইউএলপি কোপ্রসেসর
  • RTC দ্রুত এবং ধীর মেমরি
  • আরটিসি পেরিফেরাল





যখন গভীর ঘুম মোড সক্রিয় করা হয়, প্রধান CPU বন্ধ করা হয়; তবে, ULP (UltraLowPower) কপ্রসেসর এখনও সেন্সর থেকে ডেটা পড়তে পারে এবং যখনই প্রয়োজন হয় তখন CPU-কে জাগিয়ে তুলতে পারে।

ESP32-এর এই অ্যাপ্লিকেশনটি কাজে আসে যেখানে আমরা কিছু নির্দিষ্ট সময়ে আউটপুট তৈরি করতে চাই বা যখন কোনও বাহ্যিক বাধা বা ঘটনা ঘটে। এটি ESP32 পাওয়ার সাশ্রয় করে কারণ এর CPU বাকি সময়ের জন্য বন্ধ থাকে এবং শুধুমাত্র যখন এটি কল করা হয় তখনই চালু হয়।



CPU এর সাথে ESP32 প্রধান মেমরিও ফ্ল্যাশ বা মুছে ফেলা হয়, তাই এই মেমরির ভিতরে সংরক্ষিত কিছু আর পাওয়া যাবে না। সেখানে শুধুমাত্র RTC মেমরি রাখা হয়। অতএব, ডিপ স্লিপ মোডে যাওয়ার আগে ESP32 RTC মেমরির ভিতরে WiFi এবং Bluetooth ডেটা সংরক্ষণ করে।

একবার ডিপ স্লিপ মোড রিসেট বা সরানো হলে ESP32 চিপটি প্রথম থেকেই প্রোগ্রামটির এক্সিকিউশন শুরু করে।

গভীর ঘুম থেকে আমরা বিভিন্ন পদ্ধতি ব্যবহার করে ESP32 জাগিয়ে তুলতে পারি।

ESP32-এ ওয়েক আপ সোর্স

ESP32 কে গভীর ঘুম থেকে জাগানোর জন্য একাধিক উৎস পাওয়া যায়:

  • টাইমার
  • স্পর্শ পিন
  • বাহ্যিক জাগরণ ext0
  • এক্সটার্নাল ওয়েকআপ ext1

এই গাইডে আমরা কভার করব টাইমার জেগে ওঠা ESP32 এর উৎস।

গভীর ঘুম থেকে ESP32 জাগাতে টাইমার কীভাবে ব্যবহার করবেন

ESP32 একটি RTC কন্ট্রোলারের সাথে আসে যার একটি অন্তর্নির্মিত টাইমার মডিউল রয়েছে যা পূর্বনির্ধারিত সময়ের পরে ESP32 কে জাগিয়ে তুলতে পারে। এই বৈশিষ্ট্যটির বিশাল অ্যাপ্লিকেশন রয়েছে যেখানে আমাদের সময় স্ট্যাম্পিং প্রয়োজন বা সর্বোত্তম শক্তি খরচ বজায় রেখে নির্দিষ্ট সময়ে নির্দেশাবলী কার্যকর করতে হবে।

মাইক্রোপাইথন কোড ব্যবহার করে ডিপ স্লিপ মোডে ESP32 রাখতে অঘোর ঘুম() থেকে ফাংশন মেশিন মডিউল ব্যবহার করা হবে. মাইক্রোপাইথনে গভীর ঘুমের ফাংশনের সিনট্যাক্স নিম্নরূপ:

মেশিন অঘোর ঘুম ( ঘুমের_সময়_এমএস )

এই ফাংশন লাগে 1 যুক্তি যা একটি পূর্বনির্ধারিত সময় মিলিসেকেন্ড .

ঘুম থেকে ওঠার জন্য ESP32 টাইমারের ব্যবহার বোঝার জন্য আমরা একটি উদাহরণ নেব যে প্রতিটি সেট সময় পার হওয়ার পরে LED ব্লিঙ্ক করে এবং কাজটি শেষ হয়ে গেলে আবার ঘুমাতে যায়।

উদাহরণ কোড

যেকোন মাইক্রোপাইথন এডিটর খুলুন এবং নিচের কোডটি ESP32 বোর্ডে আপলোড করুন। এখানে আমরা MicroPython স্কেচ আপলোড করার জন্য Thonny IDE ব্যবহার করব।

# কোড সোর্স Linuxhint.com

থেকে মেশিন আমদানি অঘোর ঘুম

থেকে মেশিন আমদানি পিন

থেকে সময় আমদানি ঘুম

এলইডি = পিন ( 4 , পিন। আউট ) LED আউটপুটের জন্য #PIN 4 সংজ্ঞায়িত

এলইডি. মান ( 1 ) # 1 সেকেন্ডের জন্য LED চালু করুন

ঘুম ( 1 )

এলইডি. মান ( 0 ) # 1 সেকেন্ডের জন্য LED বন্ধ করুন

ঘুম ( 1 )

ছাপা ( 'এখন ঘুমাতে যাচ্ছি' )

অঘোর ঘুম ( 5000 ) #5 সেকেন্ড ঘুমান

প্রয়োজনীয় লাইব্রেরি আমদানি করে কোড শুরু হয়েছে যেমন আমরা গভীর ঘুমের লাইব্রেরি আমদানি করেছি।

এর পরে ESP32 পিন 4 এর জন্য একটি নতুন অবজেক্ট তৈরি করা হয়েছে। এই পিনটি প্রতিবার ESP32 জেগে আউটপুট দেখাবে।

এলইডি = পিন ( 4 , পিন। আউট )

নিচে দেওয়া কমান্ড 1 সেকেন্ডের দেরিতে LED ব্লিঙ্ক করবে।

এলইডি. মান ( 1 )

ঘুম ( 1 )

এলইডি. মান ( 0 )

ঘুম ( 1 )

এখানে প্রদর্শনের উদ্দেশ্যে, আমরা LED ব্লিঙ্ক করি। তবে অন্য যেকোনো ডিভাইসও নিয়ন্ত্রণ করা যায়।

ঘুমাতে যাওয়ার আগে আমরা একটি বার্তা প্রিন্ট করেছি যে ESP32 স্লিপ মোডে যাচ্ছে।

ছাপা ( 'এখন ঘুমাতে যাচ্ছি' )

বিঃদ্রঃ: ESP32 স্লিপ মোডে যাওয়ার আগে আমরা এখানে 5 বা তার বেশি সেকেন্ডের বিলম্ব যোগ করতে পারি। একটি প্রকল্প নির্মাণ এবং একটি নতুন স্ক্রিপ্ট লেখার সময় এটি আমাদের সাহায্য করে। একটি নতুন কোড আপলোড করার সময় বোর্ডটি অবশ্যই জেগে থাকতে হবে এবং স্লিপ মোডে নয়৷ যদি আমরা বিলম্ব যোগ না করি, তাহলে আমাদের জন্য জাগ্রত মোডে ESP32 ধরা এবং একটি নতুন স্ক্রিপ্ট আপলোড করা কঠিন হবে।

নতুন স্ক্রিপ্ট লেখার পরে এবং চূড়ান্ত কোড প্রস্তুত হলে, আমরা স্ক্রিপ্টের চূড়ান্ত সংস্করণে এই বিলম্বটি দূর করতে পারি।

অবশেষে, ESP32 বোর্ডটিকে 5 সেকেন্ড (5000 ms) জন্য গভীর ঘুমে রাখা হয়।

মেশিন অঘোর ঘুম ( 5000 )

একবার 5 সেকেন্ড সময় অতিবাহিত হলে ESP32 জেগে ওঠে এবং কোডটি পুনরায় চালু করে ভিতরে বোতাম

  গ্রাফিকাল ইউজার ইন্টারফেস, টেক্সট, অ্যাপ্লিকেশন বর্ণনা স্বয়ংক্রিয়ভাবে তৈরি

আউটপুট

থনি আইডিই-এর শেল টার্মিনালে নিম্নলিখিত আউটপুট লক্ষ্য করা যায়। এখানে আমরা দেখতে পাচ্ছি যে প্রতি 5 সেকেন্ড পর ESP32 গভীর ঘুম থেকে জেগে ওঠে এবং GPIO পিন 4 এ LED ব্লিঙ্ক করে।

GPIO 4 এ LED ঘুরবে চালু 1 সেকেন্ডের জন্য

1 সেকেন্ড পর এলইডি চালু হবে বন্ধ .

এখন ESP32 বোর্ড আবার 5 সেকেন্ডের জন্য স্লিপ মোডে যাবে এবং তারপরে পুরো প্রক্রিয়াটি পুনরাবৃত্তি হবে। তাই আমরা সফলভাবে টাইমার কোড ব্যবহার করে ESP32 গভীর ঘুম মোড নিয়ন্ত্রণ করেছি।

উপসংহার

এখানে এই টিউটোরিয়ালে, আমরা মাইক্রোপাইথনে লেখা একটি টাইমার প্রোগ্রাম ব্যবহার করে গভীর ঘুম থেকে জেগে ওঠার জন্য ESP32 কনফিগার করেছি। আমরা ব্যবহার করে কোড আপলোড থনি আইডিই . ESP32 জেগে উঠলে এবং LED ব্লিঙ্ক করলে আমরা কেবল একটি বার্তা প্রিন্ট করেছি; যাইহোক, ESP32 গভীর ঘুম থেকে জেগে উঠলে এই নিবন্ধটি ব্যবহার করে যে কোনো কাজ সম্পাদন করা যাবে।