حساس الحركة PIR Sensor

مقدمة

لقد تغيرت تقنية الكشف عن السرقة الموجودة في أنظمة الأمان على مر السنين، حيث يبحث كبار المصنعين باستمرار عن طرق جديدة ومبتكرة لاستشعار وجود المتسللين… واحدة من أكثر الطرق نجاحًا حتى الآن هي طريقة استشعار عن طريق الحركة PIR الموجودة في العديد من أنظمة الإنذار ضد السرقة المثبتة في العقارات المنزلية والتجارية. ولكن ما هو مستشعر PIR؟ وما الذي يجعلها فعالة جدا؟

ما هو حساس الحركة PIR

هو عبارة عن حساس يكتشف حركة الاجسام في البيئة المحيطة وذلك من خلال الأشعة تحت الحمراء التي تصدر من جميع الأجسام التي درجة حرارتها أكبر من 0 درجة مئوية، حيث هذه الإشارة غير مرئية للعين البشرية فيقوم الحساس بتحويل هذه الإشارة الفيزيائية الى إشارة كهربائية، ويشير الاختصار PIR الى Passive Infra-Red حيث تعبر كلمة passive على عدم خروج طاقة أو حرارة من الحساس نفسه

طريقة عمل حساس الحركة PIR

يحتوي الحساس على خلية pyroelectric تقوم باستشعار وتحسس التغير الحراري من خلال الاشعة تحت الحمراء وتحويله الى تغير كهربائي، حيث تنقسم الخلية الى نصفين فعند عدم وجود حركة، تكتشف كلتا الخليتين نفس كمية الحرارة، وعندما يمر جسم دافئ مثل الإنسان أو الحيوان، فإنه يعترض أولاً نصف الخلية، مما يتسبب في تغيير تفاضلي إيجابي بين النصفين. وعندما يغادر الجسم الدافئ منطقة الاستشعار، يحدث العكس، حيث يولد المستشعر تغيرًا تفاضليًا سلبيًا.، كما نلحظ وجود عدسة مركبة على الحساس والتي تساعد على تجميع الإشارات على خلية الحساس.

مكونات حساس الحركة PIR

  1. عدسة لتجميع الإشارات على خلية الحساس
  2. خلية استشعار
  3. مقاومة متغيرة لتعديل زمن التأخير بين كل استشعار من 0.3 ثانية وحتى 5 دقائق
  4. مقاومة متغيرة لتعديل مجال استشعار الحساس وتصل حتى 7 أمتار
  5. شريحة BISS0001 لمعالجة قراءة الحساس وتحويله الى إشارة رقمية
  6. أقطاب لتحديد طريقة عمل الحساس حيث يوجد طريقتين:
  • Non-reputable Mode: حيث بعد فترة التأخير المضبوطة للحساس يغير حالة خرجه الى LOW وفي حال وجود حركة يستشعر مرة أخرى
  • reputable Mode: في هذه الحالة يستمر الحساس بإعطاء إشارة HIGH على خرجه بدون أن يغير حالة خرجه حتى بعد انتهاء فترة التأخير طالما كان هناك جسم يتحرك أمامه

بعض استخدامات حساس الحركة PIR

  • تشغيل الانارة بشكل تلقائي عند وجود حركة أجسام في الغرفة
  • نظام تنبيه للحماية من السرقة

مواصفات ومميزات حساس الحركة PIR

  • جهد التغذية: من 4.5 فولت الى 20 فولت.
  • استهلاك التيار: أقل من 50 مايكرو أمبير.
  • جهد الخرج: High 3.3V / Low 0V.
  • مجال الاستشعار: يصل حتى 7 متر.
  • زاوية الاستشعار: أقل من 120 درجة عند مسافة 7 أمتار.
  • زمن التأخير: من 0.3 ثانية وحتى 200 ثانية والحالة الافتراضية 2.5 ثانية.
  • تحديد حالة العمل: L Non-reputable Mode/ H reputable Mode.
  • درجة حرارة الوسط المحيط: -15 حتى +70 درجة مئوية.

الربط مع الاردوينو

يحتوي الحساس على ثلاثة أقطاب

  • VCC الطرف الموجب لتغذية الحساس
  • GND الطرف السالب لتغذية الحساس
  • OUT الطرف الخاص بخرج الحساس

إشارة خرج الحساس هي اشرة رقمية حيث تعطي HIGH أو 1 منطقي عند وجود حركة وLOW أو 0 منطقي عند عدم وجود حركة وبالتالي سوف نقوم بتوصيل القطب OUT مع إحدى الأقطاب الرقمية للأردوينو وسوف يكون قطب دخل لقراءة القيمة عليه وفي حال وجود حركة سوف نقوم بتشغيل تنبيه من خلال led وbuzzer وهكذا نكون قد قمنا بتطبيق فكرة الحماية من السرقة وتشغيل الانارة بشكل تلقائي عند وجود حركة.

القطع المستخدمة

  • أردوينو أونو
  • حساس حركة PIR
  • أسلاك توصيل
  • Buzzer
  • LED

مخطط التوصيل

الكود البرمجي

int led =  13;  // the pin that the LED is atteched to
int sensor =  11;  // the pin that the sensor is atteched to
int state =  LOW;  // by default, no motion detected
int val =  0;  // variable to store the sensor status (value)
const  int buzzer =  3;  //buzzer to arduino pin 3

void  setup()  {
	pinMode(led,  OUTPUT);  // initalize LED as an output
	pinMode(sensor,  INPUT);  // initialize sensor as an input
	pinMode(buzzer,  OUTPUT);  // Set buzzer - pin 9 as an output
	Serial.begin(9600);  // initialize serial
}

void  loop(){
	val =  digitalRead(sensor);  // read sensor value
	if  (val ==  HIGH)  {  // check if the sensor is HIGH
		tone(buzzer,  1000);  // Send 1KHz sound signal...
		digitalWrite(led,  HIGH);  // turn LED ON
		if  (state ==  LOW)  {
			Serial.println("Motion detected!");
			state =  HIGH;  // update variable state to HIGH
		}
	}
	else  {
		noTone(buzzer);  // Stop sound...
		digitalWrite(led,  LOW);  // turn LED OFF
		if  (state ==  HIGH){
			Serial.println("Motion stopped!");
			state =  LOW;  // update variable state to LOW
		}
	}
}

رابط محاكاة المشروع

اضغط هنا

مشاركات أقدم المقال التالي
لا يوجد تعليقات
أضف تعليق
عنوان التعليق