ইন্টারনেট অব থিংস কে সংক্ষেপে আইওটি বলে, যার বাংলা অর্থ হল বিভিন্ন জিনিসপত্রের সাথে ইন্টারনেটের সংযোগ। তেমনি একটি আইওটি ডিভাইস হলো ESP32-CAM WiFi + Bluetooth Camera Module. একটা উদাহরণের মাধ্যমে এই ডিভাইসটিকে বোঝানোর চেষ্টা করছি। মনে করেন এই ডিভাইসটি আপনার বাড়ির দরজার সাথে বসানো আছে। আপনি ভিতরের রুমে কিংবা কোন বিশেষ কাজে ব্যস্ত আছেন। এখন দরজার কলিং বেল বেজে উঠলো। ঠিক তখনই আপনার মোবাইলে একটা নোটিফিকেশন চলে আসবে এবং একটা উইন্ডো চালু হবে যেখানে দেখাবে আপনার বন্ধু দরজার সামনে দাঁড়িয়ে আছে। এবার আপনি যদি চান দরজা খুলে দিবেন, তাহলে এপের মধ্যে এক ক্লিক করলেই দরজাটি খুলে যাবে এবং ৫ বা ১০ সেকেন্ড পর পুনরায় দরজা বন্ধ হয়ে যাবে। অর্থাৎ আপনার বাড়িটি অটোমেশন করা ছিলো। শুধু তাই নয়, আপনার অফিসেও এই ESP32-CAM WiFi + Bluetooth Camera Module ব্যবহার করা যাবে। এই ডিভাইসের সাথে রয়েছে বেশ কিছু GPIO পিন, যা ব্যবহার করে নিয়ন্ত্রণ করা যাবে লাইট, ফ্যান, মোটর এ যাবতীয় সকল ইলেক্ট্রিক্যাল ডিভাইসকে। অন্যদিকে এই মডিউল ব্যবহার করে ক্যামেরা বিশিষ্ট এটেন্ডেন্স মেশিন নিজেই তৈরি করতে পারবেন।
পিন ডায়াগ্রামঃ
 
প্রয়োজনীয় কম্পোনেন্টঃ
কম্পোনেন্টের তালিকা নিচে প্রদান করা হলো।| ক্রমিক নং | কম্পোনেন্টের নাম | মডেল | পরিমাণ | লিংক | 
| ১ | ESP32-CAM WiFi + Bluetooth Camera Module | WIR-00110 | ১টি | কম্পোনেন্ট লিংক | 
| ২ | FTDI USB to Serial Converter 3V3-5V | MOD-00207 | ১টি | কম্পোনেন্ট লিংক | 
| ৩ | Breadboard (830 Point) | MIS-00002 | ১টি | কম্পোনেন্ট লিংক | 
| ৪ | Silicone Jumper Wire (Male to Male) অথবা, | C&C-00245 | ৭টি | কম্পোনেন্ট লিংক | 
| ৫ | Male To Male Jumper Wire – Single | C&C-00061 | ৭টি | কম্পোনেন্ট লিংক | 
| ৬ | Breadboard Power Supply Stick (3.3V/5V) | MOD-00097 | ১টি | কম্পোনেন্ট লিংক | 
| ৭ | Adapter 12V | MIS-00131 | ১টি | কম্পোনেন্ট লিংক | 
সার্কিট কানেকশনঃ
প্রোগ্রাম আপলোড করার জন্য নিচের চিত্র অনুযায়ী সংযোগ দিতে হবে। সংযোগ দেওয়ার সময় কিছু বিষয় লক্ষ রাখতে হবে- ১। FTDI USB to Serial Converter 3V3-5V এর ভোল্ট সিলেক্টর সুইচকে 5V এর দিকে রাখতে হবে। ২। ৫ ভোল্টের সাথে ৩.৩ ভোল্ট সংযোগ দেওয়া যাবেনা। ৩। আপলোড দেওয়ার ক্ষেত্রে অবশ্যই GPIO0 পিন কে Low করে নিতে হবে (Ground এর সাথে শর্ট হবে) প্রোগ্রাম আপলোড সম্পূর্ণ হলে GPIO0 কানেকশন বিচ্ছিন্ন করে দিতে হবে। তারপর পাওয়ার সোর্স হিসেবে FTDI USB to Serial Converter 3V3-5V এর পরিবর্তে Breadboard Power Supply Stick (3.3V/5V) ব্যবহার করলে উত্তম হবে।
প্রোগ্রাম আপলোড সম্পূর্ণ হলে GPIO0 কানেকশন বিচ্ছিন্ন করে দিতে হবে। তারপর পাওয়ার সোর্স হিসেবে FTDI USB to Serial Converter 3V3-5V এর পরিবর্তে Breadboard Power Supply Stick (3.3V/5V) ব্যবহার করলে উত্তম হবে।
 কোডঃ
Arduino IDE দিয়ে কোড আপলোডের জন্য ESP32 Board ইন্সটল করে নিতে হবে। পূর্বে থেকেই যদি ESP32 Board ইন্সটল করা না থাকে তাহলে নিচের চিত্রের মত দেখতে পাবো।  অর্থাৎ বোর্ডের যায়গায় ESP32 Board নেই। এবং “Board Manager” এ ESP32 লিখলেও বোর্ড ডিসপ্লে করবে না।
কোডঃ
Arduino IDE দিয়ে কোড আপলোডের জন্য ESP32 Board ইন্সটল করে নিতে হবে। পূর্বে থেকেই যদি ESP32 Board ইন্সটল করা না থাকে তাহলে নিচের চিত্রের মত দেখতে পাবো।  অর্থাৎ বোর্ডের যায়গায় ESP32 Board নেই। এবং “Board Manager” এ ESP32 লিখলেও বোর্ড ডিসপ্লে করবে না।
 
 
 এমত অবস্থায় এই https://dl.espressif.com/dl/package_esp32_index.json লিংকটি File>Preferences থেকে Additional Boards Manager URLs এ রাখতে হবে। তারপর OK দিয়ে বের হয়ে আসতে হবে এবং Tools>Board>Boards Manager… গিয়ে ESP32 লিখলেই বোর্ড দেখাবে। অতপর ইন্সটল করে নিতে হবে।
এমত অবস্থায় এই https://dl.espressif.com/dl/package_esp32_index.json লিংকটি File>Preferences থেকে Additional Boards Manager URLs এ রাখতে হবে। তারপর OK দিয়ে বের হয়ে আসতে হবে এবং Tools>Board>Boards Manager… গিয়ে ESP32 লিখলেই বোর্ড দেখাবে। অতপর ইন্সটল করে নিতে হবে।
 নিচের চিত্র অনুযায়ী Install Button প্রেস করলেই ইন্সটলেশন শুরু হয়ে যাবে। তবে পাশে দেওয়া ভার্শন সর্বদা এক থাকবেনা। এটা নিয়ে চিন্তিত হওয়া যাবেনা।
নিচের চিত্র অনুযায়ী Install Button প্রেস করলেই ইন্সটলেশন শুরু হয়ে যাবে। তবে পাশে দেওয়া ভার্শন সর্বদা এক থাকবেনা। এটা নিয়ে চিন্তিত হওয়া যাবেনা।
 esp32 Board installing…
esp32 Board installing…
 esp32 Board ইন্সটল সম্পূর্ণ হলে “INSTALLED” এবং “Remove” লেখা দেখাবে।
esp32 Board ইন্সটল সম্পূর্ণ হলে “INSTALLED” এবং “Remove” লেখা দেখাবে।
 যেহেতু বোর্ড ইন্সটল সম্পূর্ণ হয়েছে। অতএব Tools থেকে বোর্ড সিলেক্ট করে নিতে হবে। ESP32 Wrover Module.
Tools>Board>ESP32 Arduino>ESP32 Wrover Module
যেহেতু বোর্ড ইন্সটল সম্পূর্ণ হয়েছে। অতএব Tools থেকে বোর্ড সিলেক্ট করে নিতে হবে। ESP32 Wrover Module.
Tools>Board>ESP32 Arduino>ESP32 Wrover Module
 Partition Scheme সিলেক্ট করে নিতে হবে। Huge APP (3MB No OTA/1MB SPIFFS) পাশাপাশি Upload Speed, Flash Frequency and Flash Mode সিলেক্ট করে নিতেহ হবে।
Partition Scheme সিলেক্ট করে নিতে হবে। Huge APP (3MB No OTA/1MB SPIFFS) পাশাপাশি Upload Speed, Flash Frequency and Flash Mode সিলেক্ট করে নিতেহ হবে।
 COM Port সিলেকশন খুবই গুরুত্বপূর্ণ। সিরিয়াল কনভার্টার কম্পিউটারের সাথে সংযোগ করার পর, Device Manager থেকে COM Port চেক করে নিতে হবে। অনেক কম্পিউটারে একাধিক COM Port থাকতে পারে, এ জন্য চেক করে সঠিক COM Port সিলেক্ট করতে হবে।
COM Port সিলেকশন খুবই গুরুত্বপূর্ণ। সিরিয়াল কনভার্টার কম্পিউটারের সাথে সংযোগ করার পর, Device Manager থেকে COM Port চেক করে নিতে হবে। অনেক কম্পিউটারে একাধিক COM Port থাকতে পারে, এ জন্য চেক করে সঠিক COM Port সিলেক্ট করতে হবে।
 
 সিলেকশন সম্পূর্ণ হলে, File>Examples>ESP32>Camera>CameraWebServer কোডটি ওপেন করবো।
সিলেকশন সম্পূর্ণ হলে, File>Examples>ESP32>Camera>CameraWebServer কোডটি ওপেন করবো।
 ডিফল্ট সেটিংস এ কোডের ভিতর  #define CAMERA_MODEL_WROVER_KIT সক্রিয় থাকবে। এই লাইন ব্যবহার করলে ক্যামেরা সাপোর্ট করবেনা। #define CAMERA_MODEL_AI_THINKER ব্যবহার করতে হবে। ssid and password সঠিকভাবে দিতে হবে। এইগুলো সম্পূর্ণ হলে Upload বাটন প্রেস করতে হবে।
ডিফল্ট সেটিংস এ কোডের ভিতর  #define CAMERA_MODEL_WROVER_KIT সক্রিয় থাকবে। এই লাইন ব্যবহার করলে ক্যামেরা সাপোর্ট করবেনা। #define CAMERA_MODEL_AI_THINKER ব্যবহার করতে হবে। ssid and password সঠিকভাবে দিতে হবে। এইগুলো সম্পূর্ণ হলে Upload বাটন প্রেস করতে হবে।
 প্রোগ্রাম আপলোডের সময় যদি Connecting……….______…..______ দেখায়, সেক্ষেত্রে ESP32-CAM WiFi + Bluetooth Camera Module এর রিসেট বাটন প্রেস করতে হবে।
প্রোগ্রাম আপলোডের সময় যদি Connecting……….______…..______ দেখায়, সেক্ষেত্রে ESP32-CAM WiFi + Bluetooth Camera Module এর রিসেট বাটন প্রেস করতে হবে।
 রিসেট সম্পূর্ণ হলে নিচের চিত্রে মত করে Writing শুরু হবে।
রিসেট সম্পূর্ণ হলে নিচের চিত্রে মত করে Writing শুরু হবে।  Hard resetting via RTS pin… দেখালে বুঝতে প্রোগ্রাম রাইট সম্পূর্ণ হয়েছে।
Hard resetting via RTS pin… দেখালে বুঝতে প্রোগ্রাম রাইট সম্পূর্ণ হয়েছে।
 
আউটপুটঃ
Serial Monitor ওপেন করে রিসেট প্রেস করতে হবে । এবার কিছুক্ষণ অপেক্ষা করলে সিরিয়াল মনিটরে Camera Ready! Use এবং একটি IP Address দেখাবে। এই IP Address ব্রাউজারে লিখে এন্টার দিলেই দ্বিতীয় চিত্রের মত একটি Window আসবে। এবার রেজুলেশন ঠিক করে Start Stream প্রেস করলেই ক্যামেরা চালু হয়ে যাবে। এই Window তে সেটিংস এ গিয়ে ক্যামেরার Brightness, Saturation সহ বিভিন্ন ধরণের প্যারামিটার পরিবর্তন করেও ছবির  কোয়ালিটি দেখা যাবে।
এবার রেজুলেশন ঠিক করে Start Stream প্রেস করলেই ক্যামেরা চালু হয়ে যাবে। এই Window তে সেটিংস এ গিয়ে ক্যামেরার Brightness, Saturation সহ বিভিন্ন ধরণের প্যারামিটার পরিবর্তন করেও ছবির  কোয়ালিটি দেখা যাবে।
 ]]>
 
 ]]>    	
		

 
						
					


Project Done
Great, thanks for being with us.