الصنّاع العرب

دائرة إنذار عند حدوث حركة فى الغرفة والمصباح مغلق باستخدام الأردوينو

وصف المشروع

يستخدم مع الأردوينو حساس حركة PIR وسماعة صغيرة تصدر صوت إنذار عند دخول شخص في الظلام والمصابيح مطفأة بحيث لا يعمل الإنذار إذا دخل شخص والمفاتيح مضاءة.

الهدف من المشروع

اختبار شرطين قبل إعطاء إشارة لتنفيذ أمر آخر.

جدول المكونات

العدد

النوع

1 لوحة أردوينو أونو Arduino Uno board
1 حساس حركة PIR motion detector
2 مقاومة 1 كيلو أوم Resistor 1 k ohm
1 سماعة إنذار Buzzer
1 مفتاح ذو اتجاهين two ways switch
1 مصباح ومصدر تغذية light bulb + source
1 لوحة اختبار Bread board
مجموعة أسلاك توصيل connecting wires

توصيل الدائرة

شرح المكونات

  • لوحة Arduino Uno

نستخدمها في التحكم فى الدائرة، استقبال وإرسال الإشارات بتوقيت معين وكيفية معينة نختارها طبقاً لعمل الدائرة وبواسطة الكود الذى سيتم شرحه لاحقاً.

يرجى تثبيت البرنامج الخاص بالأردوينو من هنا والذي سنستخدمه في كتابة الكود وعمل compiling ورفعه إلى لوحة الأردوينو عن طريق كابل USB، ولمعرفة كيفية تثبيت البيئة التطويرية المتكاملة لأردوينو (Arduino IDE) من هنا.

لتحميل ورقة البيانات datasheet الخاصة بلوحة الأردوينو أونو Arduino Uno اضغط هنا، ولتحميل نسخة أخرى اضغط هنا، ويوجد هنا في موقع الصناع العرب مواضيع مفصله عن الأردوينو وكيفية تنصيب البرنامج، وللمزيد يمكنك زيارة الموقع الخاص به من هنا.

  • شاشة LCD 2×16

رمزها : HD44780

هي شاشة LCD  صغيرة بها مساحة لعرض صفين كل صف به مساحة لعرض 16 حرف/ رقم لهذا تسمى 2×16 .

أطراف التوصيل وعددها 16:

1) GND وهذا الطرف يوصل بالأرضي لمصدر التغذية (Ground)

2) Vcc لتشغيل الشاشة وهذا الطرف يوصل بالطرف الموجب لمصدر التغذية (5 volt)

3) Vee الخاص بمستوى إضاءة الشاشة Contrast ويوصل بمقاومة 1 كيلو أوم (Resistor 1 k ohm) ثم إلى الطرف الأرضي GND ويمكنك توصيل مقاومة متغيرة للتحكم بدرجة إضاءة الشاشة حسب رغبتك (طرفها الأول بالجهد الموجب والأخير بالأرضي والأوسط يوصل ب Vee)

4) RS وهو اختصار Reset ويوصل هذا الطرف بالأردوينو (طرف رقم D2)

5) R/W وهو اختصار Read/write ويوصل هذا الطرف بالأرضي دائماً (GND) لأننا سنستعمل خاصية الكتابة فقط وليست القراءة.

6) EN وهو اختصار Enable ويوصل هذا الطرف بالأردوينو (طرف رقم D3)

7-14) DB0:DB7 نستخدم هنا فقط الأربعة أطراف الأخيرة 4 – 5 – 6 – 7 لإرسال البيانات من الأردوينو إلى الشاشة وتوصل بالأردوينو بالترتيب: (D4 وحتى D7)

15) Led+ يستخدم للإضاءة الخلفية للشاشة ويوصل بمقاومة 1 كيلو أوم ثم  إلى الجهد الموجب (5 volt) لتقليل شدة إضاءة الشاشة الخلفية.

16) Led- يستخدم للإضاءة الخلفية للشاشة ويوصل بالأرضي (GND)

قم بتوصيل الأطراف كما بالرسم الموضح فى البداية.

لتحميل ورقة البيانات datasheet الخاصة بالشاشة LCD 2×16 اضغط هنا ولتحميل نسخة أخرى اضغط هنا.

    • المقاومات Resistors

    المقاومة هي عنصر كهربي فائدته إعاقة مرور التيار بقدر معين يتناسب مع قيمة المقاومة، فالتيار المار في مقاومة 100 أوم يكون أكبر من التيار المار في مقاومة 10 كيلو أوم عند تطبيق نفس قيمة الجهد عليهما.
    تقاس المقاومة بوحدة الأوم (ohm) ويرمز له بهذا الرمز: وشكل المقاومة في الدوائر كالتالي:

    أو

    وللمقاومة ألوان يتم من خلال ترتيب الألوان هذه تحديد قيمة كل مقاومة، والجدول التالى يوضح القيم الخاصة بكل لون:

    نحتاج فى الدائرة عدد 2 مقاومات كل منها 1 كيلو أوم (بهذا اللون)

    من خلال هذا الرابط يمكنك حساب قيمة المقاومة بالألوان أو من هذا الرابط، وللمزيد من الشرح فى هذا الرابط.

  • حساس الحركة PIR sensor

وله أشكال متعددة من الخارج حسب تصنيع كل شركة، أما من الداخل فهو بهذا الشكل:

يوجد له 3 أطراف كما بالصورة السابقة:

  • طرف أرضي Ground
  • طرف التغذية Vcc ويوصل بمصدر 5 فولت
  • طرف الخرج Output والذي يعطي إشارة الخرج عند الإحساس بالحركة

يوجد أيضاً مفتاحين يتم استخدامهما لضبط الحساسية وتوقيت إرسال إشارة الخرج كما بالصورة (مقاومتين متغيرتين).

لتحميل ورقة البيانات datasheet الخاصة بحساس الحركة PIR sensor (منتج إحدى الشركات كمثال) من هنا.

  • سماعة الإنذار Buzzer

عبارة عن سماعة صغيرة تصدر صوت صفير وتغذى بالجهد من الأردوينو، يمكن استبدالها بوسيلة انذار أخرى تعمل بمصدر تغذية خاص بها، فقط نأخذ الإشارة من الأردوينو ونمررها إلى ريلاي ليتم ملامسة أطراف سماعة الإنذار الأخرى، لكن فى هذه الدائرة سنكتفى بالعنصر الإلكترونى الصغير كتطبيق عملي على الفكرة.

ولها طرفان اثنان أحدهما موجب والآخر سالب، ويوجد دليل على العنصر يحدد الطرف الموجب.

ويكون رمزها فى الدوائر بهذا الشكل:

  • لوحة اختبار الدوائر Bread board

هذه اللوحة مفيدة جداً في التجارب، يمكنك توصيل عناصر دائرتك عليه للتأكد من عملها بالشكل السليم وعمل التعديلات عليها قبل صناعتها على لوحة نحاسية مطبوعة، أو لمجرد التجربة فقط وذلك لسهولة التوصيلات كما سنرى.

تحتوي معظم اللوحات هذه على صفين على الجوانب أحدهما أحمر والآخر أزرق كما بالصورة بالأسفل (A و D)، وكل النقاط فى طول هذا الصف متصلة ببعض.

باقي النقاط فى المنتصف يمين ويسار الفراغ المنتصف (B و C) مقسمة طولياً وليس أفقياً كما بالأحمر والأزرق، والصورة التالية توضح لك النقاط المتصلة ببعضها:

ويتم تركيب العناصر بإدخال الأطراف المعدنية في الفراغات، والعناصر المراد توصيلها معاً يتم إدخال الأطراف في نفس العمود (حيث كل 4 نقاط رأسية متصلة ببعض).

ملحوظة: الصفين الموجب يمين ويسار اللوحة غير متصلين ببعض، والصفين الأرضي أيضاً لذا عليك توصيلهم بهذا الشكل:

وهذه الصورة توضح كيفية تغذية اللوحة بمصدر الجهد والأرضي من الأردوينو:

يمكنك تتبع الصورة في بداية الشرح لإتمام توصيل العناصر ببعضها، وللمزيد عن كيفية استخدام لوح التجارب (Breadboard) اضغط هنا.

  • مجموعة أسلاك التوصيل Connecting wires

ينصح بالحصول على مجموعة أسلاك للتوصيل مثل التي بالصورة وتستخدم في توصيل العناصر ببعضها أو التوصيل بأجزاء خارجية مثل لوحة الأردوينو والحساسات وغيرها.

وللمزيد عن استخدام الأسلاك (wires) اضغط هنا.

الكود البرمجي وتجربة وتشغيل الدائرة:

const int buzzerPin = 13;
const int lightPin = 2;
const int pirSensor = 7;
int moveDetect, lightBulb;
void setup()
{
  pinMode(buzzerPin, OUTPUT);
  pinMode(pirSensor, INPUT);
  pinMode(lightPin, INPUT);
}
void loop()
{
  moveDetect = digitalRead(pirSensor);    //Check if there is movement ( 1 or 0 )
  lightBulb = digitalRead(lightPin);      //Check if there is Light in the room ( 1 or 0 )
  if (moveDetect == 1)                    // if there is movement
  {
    if ( lightBulb == 0)                  // and in there is no light in the room
    {
      digitalWrite(buzzerPin, HIGH);      // turn on the buzzer alarm
      delay(500);
    }
  }
  else
  {
    digitalWrite(buzzerPin, LOW);         // otherwise stop the buzzer alarm
  }
  delay(100);
}

قم بإنشاء ملف مشروع جديد بالاسم الذي تريده واكتب الكود السابق فيه واحفظه عندك على جهازك، قم بتوصيل لوحة الأردوينو بالكمبيوتر لديك وارفع الكود إلى لوحة الأردوينو (upload).

يمكنك تجربة محاكاة الدائرة من هنا، وفى هذا الرابط ستجد الدائرة مرسومة كما هو مُوضح بالأعلى، للتشغيل اضغط على زر Start Simulation لبدء المحاكاة، في البداية يكون مصباح الغرفة مضاء عن طريق المفتاح الأحمر:

وعند الضغط على حساس الحركة PIR تظهر نقطة زرقاء كتعبير عن جسم/ شخص متحرك فى مدى تغطية الحساس، عند تحريك هذه النقطة لا يحدث شئ تمام كما هو مطلوب:

الآن سنضغط على المفتاح الأحمر لفصل التيار عن المصباح:

سنقوم الآن بالضغط على حساس الحركة وتحريك النقطة الزرقاء كتعبير عن وجود حركة فى المكان:

عندها سنسمع صوت انذار من السماعة وهذا هو المطلوب تماماً من الدائرة ومن الكود.

يمكنكم تحميل رسم وتصميم الدائرة ببرنامج Fritzing من هنا وملف كود الأردوينو من هنا.

ولتحميل برنامج Fritzing المجاني من خلال الموقع الخاص به اضغط هنا.

ويمكنك أيضا البحث فى موقع Fritzing وموقع المحاكاة circuits.io عن تصميمات ورسومات لدوائر مختلفة واسعة المجال وتطبيقات متنوعة ورائعة (جربها الآن).

أتمنى أن يكون الدرس مفيداً لكم.

محمد عبد الحميد

أضف تعليق

اترك رد

تابعنا