এই টিউটোরিয়ালে, আমরা আলোর তীব্রতা পরিমাপ করতে ESP32 মাইক্রোকন্ট্রোলারের সাথে একটি লাইট ডিপেন্ডেন্ট রেজিস্টর (LDR) কীভাবে ব্যবহার করতে হয় তা অন্বেষণ করব। LDR-এর রেজিস্ট্যান্স পড়ার মাধ্যমে, আমরা ক্রিয়া ট্রিগার করতে পারি, যেমন আলোর মাত্রা একটি নির্দিষ্ট সীমা অতিক্রম করলে একটি বুজার চালু করা। এই প্রকল্পটি আলোর মাত্রা এবং ESP32-এর অ্যানালগ রিডিং ক্ষমতার মধ্যে মিথস্ক্রিয়া প্রদর্শন করবে, যা আমাদের পরিবেষ্টিত আলোর উপর ভিত্তি করে প্রতিক্রিয়াশীল অ্যাপ্লিকেশন তৈরি করতে দেয়। (ভিডিওতে 5:30 এ)
হার্ডওয়্যার ব্যাখ্যা
এই প্রকল্পে আমরা যে প্রধান উপাদানগুলি ব্যবহার করব তার মধ্যে রয়েছে ESP32 মাইক্রোকন্ট্রোলার, একটি LDR এবং একটি 10 kΩ রেজিস্টর। LDR তার পৃষ্ঠে পড়া আলোর তীব্রতার উপর ভিত্তি করে তার রেজিস্ট্যান্স পরিবর্তন করে: বেশি আলো কম রেজিস্ট্যান্সের ফলে, যখন কম আলো বেশি রেজিস্ট্যান্সের ফলে। এই বৈশিষ্ট্যটি আমাদের রেজিস্টরের সাথে একটি ভোল্টেজ ডিভাইডার কনফিগারেশনে LDR সংযোগ করে বিভিন্ন আলোর মাত্রা পরিমাপ করতে দেয়।
ESP32 মাইক্রোকন্ট্রোলারে বিল্ট-ইন Wi-Fi এবং ব্লুটুথ রয়েছে, যা এটিকে IoT প্রকল্পের জন্য আদর্শ করে তোলে। এটিতে বেশ কয়েকটি অ্যানালগ পিন রয়েছে যা বিভিন্ন ভোল্টেজের মাত্রা পড়তে পারে, যা আমরা LDR জুড়ে ভোল্টেজ নিরীক্ষণ করতে ব্যবহার করব। এই ভোল্টেজটি একটি অ্যানালগ মানে রূপান্তরিত হবে যা ESP32 প্রক্রিয়া করতে পারে এবং বুজার সক্রিয় করার মতো ক্রিয়া ট্রিগার করতে ব্যবহার করতে পারে।
ডেটাশিট বিবরণ
প্রস্তুতকারক
Espressif Systems
পার্ট নম্বর
ESP32
লজিক/IO ভোল্টেজ
3.3 V
সাপ্লাই ভোল্টেজ
3.0 - 3.6 V
আউটপুট কারেন্ট (প্রতি GPIO)
সর্বোচ্চ 40 mA
PWM ফ্রিকোয়েন্সি নির্দেশিকা
1 kHz - 40 kHz
ইনপুট লজিক থ্রেশহোল্ড
উচ্চ: সর্বনিম্ন 2.0 V, নিম্ন: সর্বোচ্চ 0.8 V
ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন
সর্বোচ্চ 0.3 V
থার্মাল সীমা
-40 °C থেকে 125 °C
প্যাকেজ
QFN48
নোট / ভেরিয়েন্ট
একাধিক Wi-Fi এবং ব্লুটুথ প্রোটোকল সমর্থন করে
ভোল্টেজ বিভাজনের জন্য LDR-এর সাথে সিরিজে একটি 10 kΩ রেজিস্টর ব্যবহার করুন।
ক্ষতি এড়াতে ESP32 কে 3.3 V দিয়ে পাওয়ার করুন।
আলোর তীব্রতা পরিমাপ করতে LDR এবং রেজিস্টর সঠিকভাবে সংযোগ করুন।
পাওয়ার সাপ্লাই স্থিতিশীল করতে প্রয়োজন হলে ডিকপলিংয়ের জন্য একটি ক্যাপাসিটর ব্যবহার করুন।
প্রত্যাশিত সীমার মধ্যে পড়ে তা নিশ্চিত করতে অ্যানালগ রিড মানগুলি পরীক্ষা করুন।
ওয়্যারিং নির্দেশাবলী
ESP32-22_light_sensor-wiring
ESP32-তে LDR এবং রেজিস্টর ওয়্যার করতে, ESP32-এর 3.3 V পাওয়ার পিনে LDR-এর একটি টার্মিনাল সংযোগ করে শুরু করুন। LDR-এর অন্য টার্মিনালটি 10 kΩ রেজিস্টরের একটি টার্মিনালের সাথে সংযুক্ত করা উচিত। রেজিস্টরের অন্য টার্মিনালটি গ্রাউন্ডের সাথে সংযুক্ত করুন।
এরপর, LDR এবং রেজিস্টরের মধ্যে জংশন পয়েন্ট থেকে ESP32-এর পিন 35-এ একটি জাম্পার তার সংযোগ করুন। এই সেটআপটি একটি ভোল্টেজ ডিভাইডার তৈরি করে, যা ESP32-কে LDR-এ পড়া আলোর তীব্রতার উপর ভিত্তি করে পরিবর্তিত ভোল্টেজ পড়তে দেয়। নিশ্চিত করুন যে সমস্ত সংযোগ নিরাপদ এবং LDR এমন অবস্থানে রয়েছে যেখানে এটি সঠিকভাবে আলোর পরিবর্তন অনুভব করতে পারে।
কোড উদাহরণ ও ওয়াকথ্রু
কোডে, আমরা LDR থেকে রিডিং নিরীক্ষণ করতে সিরিয়াল কমিউনিকেশন শুরু করি। এখানে মূল শনাক্তকারী হল analogValue, যা পিন 35 থেকে রিডিং সংরক্ষণ করে।
void setup() {
Serial.begin(115200);
}
void loop() {
int analogValue = analogRead(35);
Serial.printf("ADC analog value = %d\n",analogValue);
delay(100);
}
এই কোড স্নিপেটটি 115200 বড রেটে সিরিয়াল মনিটর শুরু করে এবং পিন 35 থেকে ক্রমাগত অ্যানালগ মান পড়ে। মানটি সিরিয়াল মনিটরে প্রিন্ট করা হয়, যা আমাদের বিভিন্ন আলোর মাত্রার সাথে এটি কীভাবে পরিবর্তিত হয় তা পর্যবেক্ষণ করতে দেয়।
যখন আলোর তীব্রতা পরিবর্তিত হয়, LDR-এর রেজিস্ট্যান্স পরিবর্তিত হয়, এবং এইভাবে ESP32 দ্বারা পড়া ভোল্টেজও পরিবর্তিত হবে, যা আলোর অবস্থা প্রতিফলিত করে (ভিডিওতে 12:45 এ)।
প্রদর্শন / কী আশা করবেন
আপনি প্রোগ্রামটি চালানোর সময় এবং সিরিয়াল মনিটর পর্যবেক্ষণ করার সময়, আপনার পরিবেষ্টিত আলোর অবস্থার উপর ভিত্তি করে ADC analog value ওঠানামা করতে দেখা উচিত। যখন আপনি LDR ঢেকে দেন, মানটি বৃদ্ধি পাবে, যা উচ্চ রেজিস্ট্যান্স নির্দেশ করে, যখন উজ্জ্বল আলোতে প্রকাশ করলে মানটি উল্লেখযোগ্যভাবে কমে যাবে। এই আচরণটি পূর্বনির্ধারিত থ্রেশহোল্ডের উপর ভিত্তি করে একটি বুজার বা অন্য কোনো ক্রিয়া ট্রিগার করতে ব্যবহার করা যেতে পারে।
যদি রিডিং প্রত্যাশিতভাবে পরিবর্তিত না হয়, তাহলে ওয়্যারিং সমস্যা পরীক্ষা করুন, নিশ্চিত করুন যে LDR ফ্লোটিং নয়, এবং ESP32 সঠিকভাবে পাওয়ার করা হয়েছে তা নিশ্চিত করুন। এটি সাধারণ সমস্যাগুলি প্রতিরোধ করতে এবং মসৃণ অপারেশন নিশ্চিত করতে সাহায্য করবে (ভিডিওতে 15:30 এ)।
ভিডিও টাইমস্ট্যাম্প
00:00 শুরু
1:48 LDR-এর পরিচিতি
8:33 ওয়্যারিং ব্যাখ্যা
11:07 Arduino কোড ব্যাখ্যা
13:07 Arduino IDE-তে ESP32 বোর্ড এবং COM পোর্ট নির্বাচন
821-ESP32 Tutorial 22/55- Arduino code for Light dependant resistor
ভাষা: C++
void setup() {
// initialize serial communication at 115200 bits per second:
Serial.begin(115200);
}
void loop() {
// read the analog value
int analogValue = analogRead(35);
// print out the values you read:
Serial.printf("ADC analog value = %d\n",analogValue);
delay(100); // delay in between reads for clear read from serial
}
প্রকাশনা: আমাজন অ্যাসোসিয়েট হিসেবে, আমরা যোগ্য ক্রয়ের মাধ্যমে উপার্জন করি। এর মানে হল যে আপনি যদি একটি লিঙ্কে ক্লিক করেন এবং অতিরিক্ত খরচ ছাড়াই একটি ক্রয় করেন, তবে আমরা একটি ছোট কমিশন পেতে পারি।