Search Code

ESP32 টিউটোরিয়াল ২১/৫৫ - PIR মোশন সেন্সর দিয়ে মানুষ শনাক্ত করা | SunFounder-এর ESP32 IoT লার্নিং কিট

ESP32 টিউটোরিয়াল ২১/৫৫ - PIR মোশন সেন্সর দিয়ে মানুষ শনাক্ত করা | SunFounder-এর ESP32 IoT লার্নিং কিট

এই টিউটোরিয়ালে, আমরা শিখব কীভাবে ESP32-এর সাথে একটি PIR মোশন সেন্সর ব্যবহার করে মানুষের উপস্থিতি শনাক্ত করা যায়। ESP32 একটি শক্তিশালী মাইক্রোকন্ট্রোলার যা Wi-Fi এবং ব্লুটুথ উভয় ক্ষমতা প্রদান করে, যা IoT প্রকল্পের জন্য আদর্শ। একটি PIR সেন্সর সংহত করার মাধ্যমে, আমরা এমন একটি সিস্টেম তৈরি করতে পারি যা মোশন শনাক্ত হলে একটি LED বা বাজারের সক্রিয় করে, যা মানুষের কার্যকলাপ পর্যবেক্ষণের একটি সহজ অথচ কার্যকর উপায় প্রদান করে।

PIR সেন্সর RE 200B

PIR (প্যাসিভ ইনফ্রারেড) সেন্সর বস্তু, বিশেষ করে মানুষের মতো উষ্ণ দেহের দ্বারা নির্গত ইনফ্রারেড বিকিরণ অনুধাবন করে মোশন শনাক্ত করে। যখন মোশন শনাক্ত হয়, সেন্সরটি ESP32-তে একটি সংকেত পাঠায়, যা তখন একটি আউটপুট ট্রিগার করতে পারে, যেমন একটি LED জ্বালানো বা একটি বাজার বাজানো। এই টিউটোরিয়ালটি আপনাকে হার্ডওয়্যার সেটআপ, ওয়্যারিং এবং কোডের মাধ্যমে গাইড করবে যা সিস্টেমটি সঠিকভাবে কাজ করতে প্রয়োজন (ভিডিওতে 00:45 এ)।

ESP32-21_motion_sensor-schematic

হার্ডওয়্যার ব্যাখ্যা

এই প্রকল্পে বেশ কয়েকটি মূল উপাদান জড়িত। ESP32 মাইক্রোকন্ট্রোলার অপারেশনের মস্তিষ্ক হিসেবে কাজ করে, সেন্সর ডেটা পরিচালনা করে এবং আউটপুট নিয়ন্ত্রণ করে। PIR মোশন সেন্সর ইনফ্রারেড বিকিরণের পরিবর্তন পরিমাপ করে চলাচল শনাক্ত করে। LED বা বাজার মোশন শনাক্ত হলে একটি ভিজ্যুয়াল বা শ্রবণযোগ্য সতর্কতা প্রদান করে।

ESP32 Wi-Fi এবং ব্লুটুথ দিয়ে সজ্জিত, যা ক্লাউড সংযোগের মতো বর্ধিত কার্যকারিতা অনুমতি দেয়। PIR সেন্সরে একটি লেন্স থাকে যা ইনফ্রারেড আলোকে একটি পাইরোইলেকট্রিক সেন্সরের উপর ফোকাস করে, যা ইনফ্রারেড স্তরে পরিবর্তন শনাক্ত করলে একটি ভোল্টেজ সংকেত তৈরি করে, যা চলাচল নির্দেশ করে।

ডেটাশিট বিবরণ

নির্মাতা SunFounder
পার্ট নম্বর PIR সেন্সর মডিউল
লজিক/IO ভোল্টেজ 3.3 V
সাপ্লাই ভোল্টেজ 3.3 V
আউটপুট কারেন্ট (প্রতি চ্যানেল) সর্বোচ্চ 20 mA
পিক কারেন্ট (প্রতি চ্যানেল) সর্বোচ্চ 50 mA
PWM ফ্রিকোয়েন্সি নির্দেশিকা প্রযোজ্য নয়
ইনপুট লজিক থ্রেশহোল্ড 0.3 V (নিম্ন), 2.0 V (উচ্চ)
ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন প্রযোজ্য নয়
থার্মাল সীমা 0 থেকে 70 °C
প্যাকেজ মডিউল
নোট / ভেরিয়েন্ট সামঞ্জস্যযোগ্য সংবেদনশীলতা এবং বিলম্ব

 

  • ক্ষতি এড়াতে সঠিক পাওয়ার সাপ্লাই (3.3 V) নিশ্চিত করুন।
  • কারেন্ট সীমিত করতে LED-এর জন্য একটি রোধ ব্যবহার করুন।
  • শর্ট সার্কিট প্রতিরোধ করতে সঠিক ওয়্যারিং বজায় রাখুন।
  • প্রয়োজন অনুযায়ী সংবেদনশীলতা এবং বিলম্বের জন্য PIR সেন্সর নব সামঞ্জস্য করুন।
  • সর্বোত্তম কর্মক্ষমতার জন্য বিভিন্ন পরিবেশে সেন্সরটি পরীক্ষা করুন।

ওয়্যারিং নির্দেশাবলী

ESP32-21_motion_sensor-wiring

PIR মোশন সেন্সর এবং LED-কে ESP32-তে ওয়্যার করতে, প্রথমে PIR সেন্সরের VCC পিনটি ESP32-এর 3.3 V আউটপুটের সাথে সংযুক্ত করুন। এরপর, PIR সেন্সরের গ্রাউন্ড পিনটি ESP32-এর একটি গ্রাউন্ড পিনের সাথে সংযুক্ত করুন। PIR সেন্সরের সিগন্যাল পিন (প্রায়ই S হিসাবে চিহ্নিত) ESP32-এর GPIO পিন 14-এর সাথে সংযুক্ত করা উচিত।

LED-এর জন্য, লম্বা পা (অ্যানোড) একটি 220 ওহম রোধের মাধ্যমে GPIO পিন 26-এর সাথে সংযুক্ত করুন এবং ছোট পা (ক্যাথোড) গ্রাউন্ডের সাথে সংযুক্ত করুন। সঠিক কার্যকারিতা নিশ্চিত করতে সমস্ত সংযোগ নিরাপদ কিনা তা নিশ্চিত করুন। যদি আপনি LED-এর পরিবর্তে একটি বাজার ব্যবহার করেন, তাহলে বাজারের একটি পিন GPIO পিন 26-এর সাথে এবং অন্যটি গ্রাউন্ডের সাথে সংযুক্ত করুন, LED সেটআপটি প্রতিস্থাপন করে।

কোড উদাহরণ ও ওয়াকথ্রু

কোডে, আমরা PIR সেন্সর এবং LED-এর জন্য পিন নম্বর সংজ্ঞায়িত করি। আমরা const int pirPin = 14; ব্যবহার করে PIR পিন সেট করি এবং const int ledPin = 26; LED পিনের জন্য। এই ধ্রুবকগুলি নিশ্চিত করে যে প্রোগ্রামের সম্পাদনের সময় পিন নম্বরগুলি অপরিবর্তিত থাকে।

const int pirPin = 14;  // পির পিনের নম্বর
const int ledPin = 26;     // LED পিন

এই স্নিপেটটি আমরা যে পিনগুলি ব্যবহার করব তা প্রাথমিকভাবে সেট করে। setup() ফাংশনে, আমরা PIR পিনটিকে একটি ইনপুট হিসাবে এবং LED পিনটিকে একটি আউটপুট হিসাবে কনফিগার করি। সেন্সরের অবস্থা পড়া এবং LED নিয়ন্ত্রণের জন্য এই সেটআপটি অত্যন্ত গুরুত্বপূর্ণ।

void setup() {
  Serial.begin(115200);  
  pinMode(pirPin, INPUT);  // পির পিনটিকে একটি ইনপুট হিসাবে প্রাথমিকভাবে সেট করুন
  pinMode(ledPin, OUTPUT);  // LED পিনটিকে একটি আউটপুট হিসাবে প্রাথমিকভাবে সেট করুন
}

loop() ফাংশনে, আমরা digitalRead(pirPin); ব্যবহার করে PIR সেন্সরের অবস্থা ক্রমাগত পড়ি। যদি সেন্সরটি মোশন শনাক্ত করে (HIGH অবস্থা দ্বারা নির্দেশিত), আমরা digitalWrite(ledPin, HIGH); ব্যবহার করে LED চালু করি। অন্যথায়, আমরা LED বন্ধ করি।

if (pirState == HIGH) {
    digitalWrite(ledPin, HIGH);  // LED চালু করুন
} else {
    digitalWrite(ledPin, LOW);    // LED বন্ধ করুন
}

এই লজিকটি LED-কে PIR সেন্সর দ্বারা শনাক্ত মোশনে সাড়া দিতে দেয়। সম্পূর্ণ কার্যকারিতার জন্য নিবন্ধের নীচে প্রদত্ত সম্পূর্ণ কোডটি আপলোড করতে ভুলবেন না।

প্রদর্শন / কী আশা করবেন

একবার সবকিছু সেট আপ হয়ে গেলে এবং কোড আপলোড করা হলে, PIR সেন্সর দ্বারা মোশন শনাক্ত হলে LED জ্বলবে। আপনি সেন্সরের সামনে নড়াচড়া করে এটি পরীক্ষা করতে পারেন; LED অবিলম্বে চালু হওয়া উচিত। যদি সেন্সরটি একটি বিলম্বে সেট করা থাকে, তবে এটি নির্দিষ্ট সময়ের জন্য চালু থাকবে এবং তারপর আবার বন্ধ হবে (ভিডিওতে 12:15 এ)।

সাধারণ ভুলগুলির মধ্যে রয়েছে ভুল ওয়্যারিং, যা সেন্সরটিকে কাজ করতে বাধা দিতে পারে। নিশ্চিত করুন যে PIR সেন্সরটি সঠিকভাবে পাওয়ার পেয়েছে এবং সিগন্যাল পিনটি ESP32-এর সঠিক GPIO পিনের সাথে সংযুক্ত রয়েছে। PIR সেন্সরের সংবেদনশীলতা এবং বিলম্ব নব সামঞ্জস্য করাও আপনার পরিবেশের উপর ভিত্তি করে কর্মক্ষমতা অপ্টিমাইজ করতে সাহায্য করতে পারে।

ভিডিও টাইমস্ট্যাম্প

  • 00:00 শুরু
  • 1:54 PIR সেন্সরের পরিচিতি
  • 6:38 ওয়্যারিং ব্যাখ্যা করা হয়েছে
  • 10:21 Arduino কোড ব্যাখ্যা করা হয়েছে
  • 12:45 Arduino IDE-তে ESP32 বোর্ড এবং COM পোর্ট নির্বাচন
  • 14:27 PIR সেন্সরের প্রদর্শন এবং ক্রমাঙ্কন

ছবি

ESP32-21_motion_sensor-wiring
ESP32-21_motion_sensor-wiring
PIR SENSOR RE 200B
PIR SENSOR RE 200B
ESP32-21_motion_sensor-schematic
ESP32-21_motion_sensor-schematic
820-ESP32 Tutorial 21/55- Arduino code for motion sensor
ভাষা: C++
// set pin numbers
const int pirPin = 14;  // the number of the pir pin
const int ledPin = 26;     // LED pin

// variable for storing the pir status 
int pirState = 0;

void setup() {
  Serial.begin(115200);  
  // initialize the pir pin as an input
  pinMode(pirPin, INPUT);
  // initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the state of the pir value
  pirState = digitalRead(pirPin);
  Serial.println(pirState);
  delay(100);

  // if the pir is pressed, the pirState is HIGH
  if (pirState == HIGH) {
    // turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // turn LED off
    digitalWrite(ledPin, LOW);
  }
}

সম্পদ ও রেফারেন্সসমূহ

এখনো কোনো সম্পদ নেই।

ফাইলসমূহ📁

ডেটাশিট (পিডিএফ)

অন্যান্য ফাইলগুলি