ঘুম থেকে উঠে চোখ খুলতেই যদি বেড রুমের লাইটটি অটোমেটিক ভাবে জ্বলে উঠে বা সামনে এগোতেই দরজার লক খুলে যায়, তাহলে কেমন হতো? আশ্চর্য হওয়ার কিছুই নেই! এর জন্য প্রয়োজন হবে না কোনো আলাদিনের দৈত্যের! ESP32 মাইক্রোকন্ট্রোলার ব্যবহার করে এমনই চমৎকার সব আইওটি প্রোজেক্ট তৈরি করা যায়। ইতোমধ্যে পূর্বের টিউটেরিয়্যাল থেকে তোমরা নিশ্চয়ই ESP32 সম্পর্কে একটি বেসিক আইডিয়া পেয়েছো।
তবে নতুন কিছু তৈরি বা ইনোভেশনের জন্য কেবল মাত্র বেসিক আইডিয়াই যথেষ্ট নয়। হার্ডওয়্যার থেকে শুরু করে প্রোগ্রামিং পর্যন্ত প্রতিটি বিষয়ে তোমাদের সুস্পষ্ট ধারণা লাভ করতে হবে। এভাবে বুঝে বুঝে অন্যের গবেষণার মাধ্যমে তৈরি করা কিছু প্রোজেক্ট যদি তুমি অনুসরণ করো, তাহলে এগুলো থেকে প্রাপ্ত জ্ঞান তোমাকে নতুন কিছু তৈরি করতে শেখাবে। মনে রেখ এখানে বুঝে বুঝে আগানোটা খুব বেশি গুরুত্বপূর্ণ।
আজ আমরা আমাদের পছন্দের মাইক্রোকন্ট্রোলার ESP32 Development Board DEVKIT V1 এর পাওয়ার ইউনিট নিয়ে বিস্তারিত আলোচনা করবো। ফলে ESP32 ব্যবহার করে Custom Board তৈরির ক্ষেত্রে বা ESP32 বোর্ডের ইনপুটে কখন কতো ভোল্ট ব্যবহার করা উচিৎ – সে বিষয়ে একটি পরিপূর্ণ ধারণা লাভ করতে পারবে।
ESP32 Development Board DEVKIT V1 এর মূল মাইক্রোকন্ট্রোলার হলো ESP-WROOM-32। যখন তুমি কন্ট্রোলারটিকে প্রোগ্রামিং এর জন্য কম্পিউটারের সাথে সংযোগ দিবে, তখন এই USB Port থেকে সহজেই DC 5V এক্সেস করতে পারবে।
কিন্তু লক্ষ্য করে দেখো ESP-WROOM-32 এর পিন-ডায়াগ্রাম অনু্যায়ী কন্ট্রোলারটি অপারেটিং ভোল্টেজ 3.3V। সুতরাং, এখন আমাদের এই 5V-এর ভোল্টেজ সোর্সকে 3.3V এ কনভার্ট করতে হবে। ঘাবড়ে যাওয়ার কোনো কারণ নেই, সম্পূর্ণ প্রসেসটি কিভাবে কাজ করে তা বোঝার জন্য তোমাদের সাথে একটি সার্কিট ডায়াগ্রাম শেয়ার করেছি।
Micro-USB দিয়ে ESP32 কানেক্ট করলে কী হবে?
উপরের সার্কিট ডায়াগ্রামের দিকে লক্ষ্য করলে দেখবে, আমরা যখন প্রোগ্রাম করার জন্য মাইক্রোকন্ট্রোলারটিকে Micro USB তে কানেক্ট করি, তখনই কম্পিউটারের USB Port এর VCC পিন থেকে 5V DC পাওয়ার SS14 নামক সটকি ডায়োডের পজেটিভ টার্মিনালে এসে পৌঁছায়। যেহেতু ডায়োডটির ফরওয়ার্ড-বায়াস-ভোল্টেজ 0.5V, সেহেতু Anode Terminal এ ডিসি 5V পৌঁছাতেই, ডায়োডটি অন হবে এবং পাওয়ারটি SS14 এর মধ্যে দিয়ে AMS1117 ভোল্টেজ রেগুলেটর আইসির ইনপুট (Vin) পিনে এসে পৌঁছাবে।
কিন্তু আমরা নিশ্চয় সব সময় মাইক্রোকন্ট্রোলারটিকে কম্পিউটারের সাথে সংযোগ দিয়ে রাখবো না! কাজের উপর ভিত্তি করে কখনো বা ব্যাটারী, আবার কখনো Adapter অর্থাৎ External Power Source ব্যবহার করে ESP32 Microcontroller বোর্ডটিকে Power-Up করার প্রয়োজন হতে পারে।
ঠিক এই বিষয়টি মাথায় রেখেই ESP32 Development Board DEVKIT V1-এ AMS1117-3.3 ভোল্টেজ রেগুলেটর আইসির ইনপুট (Vin) কে একটি Hardware পিন হিসাবে বের করে রাখা হয়েছে।
যেহেতু AMS1117-3.3 এর ইনপুট ভোল্টেজ রেঞ্জ অনেক বেশি, তাই আইসির ডেটাশিটে দেওয়া তথ্য অনুসারে আমরা 4.75V to 12V এর মধ্যকার যে কোন পাওয়ার সোর্সই ব্যবহার করতে পারবো।
অর্থাৎ ESP32 Board-কে দুই ভাবে Power-Up করা সম্ভব।
- USB Power
- External Power on VIN Pin
এবং এতক্ষণে USB Power সম্পর্কে সম্ভব আমরা একটি স্পষ্ট ধারণা পেয়েছি।
External Power Source দিয়ে কানেক্ট করলে কী হবে?
যদি তুমি Vin (External Power Source) এ পাওয়ার ব্যবহার করো, তাহলে SS14 ডায়োডটি Reverse-Biased হয়ে যাবে। অর্থাৎ ডায়োডটি বন্ধ হয়ে যাবে এবং USB Power এর সাথে সংযোগ বিছিন্ন হয়ে যাবে। ফলে শুধুমাত্র Vin পিনের পাওয়ার থেকে বোর্ডটি অপারেট হবে।
কিন্তু তোমরা কি কখনো ভেবে দেখেছো – যদি আমরা USB এবং External Power উভয় সোর্স কে একই সাথে সংযোগ দেই, তাহলে ESP32 Board নষ্ট হয়ে যাবে কি না? তোমার এই প্রশ্নের উত্তর দিবে ESP32 Board-এ থাকা Intelligent Power Switching Unit।
USB ও External Power Source একসাথে কানেক্ট করলে কী হবে?
যদি তুমি USB এবং Vin (External Power Source) উভয় পিনে একসাথে পাওয়ার সরবহার করো, তাহলে SS14 ডায়োটটি Reverse Biased হবে। অর্থাৎ Inactive বা বন্ধ হয়ে যাবে। ফলে USB Power কে বোর্ড থেকে বিছিন্ন করে দেবে।
এ পর্যায়ে ESP32 বোর্ডটি প্রকৃতপক্ষে Vin পিনের মাধ্যমে সরবরাহকৃত পাওয়ার ব্যবহার করেই অপারেট হবে।
ESP32 পাওয়ার ইন্ডিকেশন সিস্টেম
তোমারা নিশ্চয়ই খেয়াল করেছ, USB হোক বা Vin, যেভাবেই তুমি ESP32 এর বোর্ডে কানেকশন দাও না কেনো, একটি Red LED সাথে সাথেই জ্বলে উঠে। মূলত এই LED টি ব্যবহার করা হয়েছে যাতে তুমি সহজেই বুঝতে পারো বোর্ডটি পাওয়ার পেয়েছে কি না? এখন চলো জানি কিভাবে এই পাওয়ার ইন্ডিকেশন সিস্টেমটি কাজ করে –
যদি তুমি মনোযোগ দিয়ে লক্ষ্য করো, AMS1117-3.3 এর আউটপুট পিনের সাথে D2 নামক একটি LED’র সংযোগ দেওয়া হয়েছে এবং মজার বিষয় হলো এখানে সিরিজে একটি রেজিস্টর ব্যবহার করা হয়েছে। রেজিস্টরটি দেখে বিভ্রান্ত হওয়ার কিছুই নেই। এই রেজিস্টরটি মূলত LED’র মধ্য দিয়ে প্রবাহিত কারেন্ট নিয়ন্ত্রণ করে থাকে। যখনই তুমি ESP32-তে পাওয়ার সংযোগ দাও, AMS1117-3.3 এর 3.3V আউটপুট এই RED LED-কে জ্বালিয়ে দেয়। আর এভাবেই ESP32 Development বোর্ডের Power Indication System কাজ করে থাকে।
ESP-WROOM-32 এনভাইরনমেন্ট সেট-আপ
এখন দেখা যাক, আমাদের ESP-WROOM-32 মাইক্রোকন্ট্রোলার কিভাবে এই পাওয়ার সিস্টেম থেকে পাওয়ার আপ হয়। লক্ষ্য করলে দেখতে পাবে, ESP-WROOM-32 তে পাওয়ার সরবরাহের জন্য সরাসরি সংযোগ দেওয়া হয়েছে 3V3 এবং GND নামক পাওয়ার-লাইনের সাথে।
ইতিপূর্বে তোমরা AMS1117-3.3 এর 3V3 পাওয়ার লাইন সম্পর্কে জেনে এসেছো। আশা করি বিষয়টি এখন তোমাদের কাছে আরও স্পষ্ট হয়েছে।
সার্কিটে ব্যবহৃত C4 একটি ফিল্টার ক্যাপাসিটর এবং R2 একটি Pull-Up Resistor। যেহেতু ESP-WROOM-32 মডিউলটি একটি Active Low কম্পোনেন্ট, অর্থাৎ এই EN পিনে LOW সিগন্যাল আসলেই মাইক্রোকন্ট্রোলারটি রিস্টার্ট নিবে। মাইক্রোকন্ট্রোলারের এমন Randomize Restart কে প্রতিরোধ করতেই মূলত EN পিনকে R2 রেজিস্টরের মাধ্যমে HIGH করে রাখা হয়েছে।
অপরদিকে এই Active High কনসেপ্টকেই কাজে লাগিয়ে EN এবং GND পিনের মধ্যে একটি Momentary Push Button Switch ব্যবহার করে তৈরি করা হয়েছে এমন Intelligent Reset Circuitry ।
ফলে যেকোন সময় কম্পিউটারের মতই Restart প্রয়োজন হলেই, আমরা এই RESET সুইচ ব্যবহার করে আমাদের এই ছোট্ট কম্পিউটার সিস্টেমকে রিস্টার্ট করতে পারবো।
ESP32 ডেভেলপমেন্ট বোর্ডের পাওয়ার ম্যানেজমেন্ট সিস্টেমে ব্যবহৃত অসাধারণ ইঞ্জিনিয়ারিং কনসেপ্ট থেকে বেসিক ইলেকট্রনিক্সের অনেক গুরুত্বপূর্ণ বিষয় সম্পর্কে ধারণা পাওয়া যায়। বিষয়গুলোতে পরিষ্কার ধারণা অর্জন করা সম্ভব হলে, কাস্টম-ডেভেলপমেন্ট এবং ট্রাবলশুটিং এর মত বিষয়গুলো তোমাদের জন্য সহজ হবে।
আজকের টিউটরিয়্যালটি এখানেই শেষ করছি। পরবর্তী পর্বে ESP32 এর অন্য কোনো গুরুত্বপূর্ণ অংশ নিয়ে বিস্তারিত আলোচনা করব।
ব্লগ-টিউটরিয়্যাল থেকে যদি তুমি নতুন কিছু শিখে থাকো বা যদি কোন প্রশ্ন থাকে, কমেন্টের মাধ্যমে আমার সাথে শেয়ার করতে পারো। আমি অবশ্যই চেষ্টা করবো আমার জ্ঞানের আলোকে তোমার প্রশ্নের সঠিক উত্তর দেওয়ার।
ভালো থেকো। আল্লাহ হাফেজ!