سلسلة تصميم smart home #1

2

 بسم الله الرحمن الرحيم

سنبدأ اليوم سلسلة جديده علي موقعنا وهي سلسلة تصميم smart home
وسنبدا اليوم باول مشاريع هذه السلسلة مشروعنا اليوم عبارة عن باب اوتامتيكي يفتح عندما يقترب جسم منه يمكن تنفيذ هذا المشروع في سلة نفايات تفتح عندما يقترب احد منها 

أولا الأدوات : 

Arduino uno
ultrasonic sensor
servo motor

Arduino uno

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


ultrasonic sensor

حساس التراسونيك او حساس الموجات الفوق صوتيه وهذا الحساس له القدرة علي معرفة اذا كان هناك جسم علي مدي 50 سم منه

servo motor

الموتور الذي سيؤدي وظيفة فتح او غلق الباب او فتح او غلق  سلة المهملات 

ثانيا التوصيلات


يحتوي حساس الموجات الفوق صوتيه علي 4 منافذ 
يتم توصيل الموجب الي 5 فولت والسالب الي السالب 
ومنفذ trig الي 8 و منفذ echo الي 7
ويحتوي الموتور السيرفو علي3 منافذ
منفذ الموجب الي 5 فولت ومنفذ السالب الي السالب 
ومنفذ الإشارة الي 6 

ثالثا الكود : 

#include <Servo.h>
int trig = 8;
int echo = 7;
long duration =0;
int distance=0;
Servo servo;
void setup(){
 servo.attach(6);
 pinMode(trig,OUTPUT);
 pinMode(echo,INPUT);
}
void loop(){
  int dis = 0;
  dis = calculateDistance();
  if(dis<30){
    servo.write(180);
  }
  else{
servo.write(0);}}

int calculateDistance(){ 
  digitalWrite(trig, LOW); 
  delayMicroseconds(2);
  digitalWrite(trig, HIGH); 
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  duration = pulseIn(echo, HIGH); 
  distance= duration*0.034/2;
  return distance;
}

في البداية يجب اضافة مكتبة servo لكي يتم التعامل مع موتور السيرفو 
#include <Servo.h>
ومن ثم تعريف بعض المتغيرات متغير بمنفذ trig و منفذ echo الخاصين بحساس الموجات الفوق الصوتية و من ثم  تعريف متغيرات لكي يتم  حساب المسافة داخل هذين المتغيرات 
int trig = 8;
int echo = 7;
long duration =0;
int distance=0;
من ثم انشاء كائن باسم servo داخل مكتبة motor servo
Servo servo;
من ثم تعريف منفذ 6 علي انه منفذ الإشارة الخاص بالموتور 
 servo.attach(6);
ومن ثم تعريف منفذ echo علي انه دخل ومنفذ output علي انه خرج
 pinMode(trig,OUTPUT);
 pinMode(echo,INPUT);
من ثم القيام باستدعاء دالة تقوم بحساب المسافة باعتماد علي قانون السرعة وهو السرعة = المسافة علي الزمن 
وفي نهاية نقوم بعمل بعض المقارنات لو ان المسافة اقل من 30 قم باخراج اشارة للموتور واذا كان اكبر من 30 قم بإيقاف هذه الإِشارة

لتحميل الكود اضغط هنا 

تصميم وبرمجة : بلال  حسان سعدي

التعليقات

  1. المشروع لا يعمل بصراحة، جربته بالكود و يفترض انك حينما تبتعد عن حساس الحركة يعود servo motor لمكانه الاول لكن الامر لا يحصل، الرجاء التصويب

    ردحذف
    الردود
    1. جميع مشارعنا مجربة قبل ان ننشرها تاكد من التوصيلات

      حذف