نظام أتمتة المنزل باستخدام البلوتوث اكتب تعليقُا

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

مقدمـــــــــــة عن المشروع

تحيـــــــــــــــة طيبة للجميع

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

التحكم يتم من خلال تطبيق مصمم للهواتف الذكية , هذا التطبيق يمكن من التحكم في الاجهزة الكهربائية بمختلف أنواعها , طريقة التحكم أما أن تكون بالنقر علي أزرار أو باستخدام الاوامر الصوتية أو بأرسال رسائل نصية للنظام المراد التحكم فيه .

والان هيـــــــــــــاااا لنبدأ  ….

طريقة العمل والتوصيل

جهاز البلوتوث من الاجهزة التي تحوي علي خاصية الارسال والاستقبال  , لذلك يتم ربطه مع الاردوينو في منافذي الارسال والاستقبال التسلسلي وهما المنفذين 0 و1 .

يتم أستخدام درع ريلي للربط مع الاحمال الكهربائية العالية التي تتراوح في المدي ما بين 110 الي 240 فولت .

يتم أستخدام مصدر خارجي للجهد لتغذية الريلي حتي يتم تفادي السحب العالي للتيار من قبل الريلي ويوصلي ليد ضوئي ” أختياري ” بين الريلي والمصدر الخارجي لتوضيح عملية التشغيل فقط .

البلوتوث يحتوي على 4 أطراف موضحة كالتالي مع طريقة ربطها مع الاردوينو

1)VCC => 3.3V

2)GND => GND

3)Rx => Tx

4)Tx => Rx

ملاحظة

  • VCC في البلوتوث توصل مع3.3V في الاردوينو 
  • Rx في البلوتوث توصل مع Tx في الاردوينو  وهكذا مع باقي الاطراف كما موضحة بالأعلي .

طريقة توصيل أطراف الريلي مع الاردوينو كالتالي

For Relay Module:-

1)VCC => 5V

2)GND => GND

3)IN1 => Pin 4

4)IN2 => Pin 5

5)IN3 => Pin 6

6)IN4 => Pin 7

FF1QEC2JCGK9EIL.LARGE

متطلبات المشروع

  1. Arduino UNO.
  2. HC-05 Bluetooth Module.
  3.  Relay Module.
  4. Jumper Wires.
  5. 3 volt battery.

تطبيق التحكم :

يتم تحميل تطبيق التحكم للهواتف الذكية من النوع أندورويد فقط , وبعد تثبيت التطبيق يتم البحث عن جهاز البلوتوث  حيث يظهر بالاسم HC-05 , يتم الاقتران معه . يلاحظ في بعض الاجهزة يتطلب التطبيق من جهاز البلوتوث رمز الاقتران فهو أما أن يكون 1234 أو 0000  . بعد الادخال يتم الاقتران ويمكن التحكم من دون مشاكل .

للتحكم في الاحمال المتصلة مع الريلي نستخدم الاحرف ” a b c d ” فمثلا عند أرسال الحرف a يعمل الريلي الأول , وعند أرسال الحرف b يعمل الريلي الثاني وهكذا مع بقية الحروف c d . مع العلم عند أرسال الحرف للمرة الثانية أو تكراره يتوقف الريلي المعني من العمل أي أذا كان في حالة تشغيل يتحول حالة الايقاف والعكس صحيح .

لتحميل التطبيق من هنــــــــــــــــــــا

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

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

لتحميل الكود البرمجي اضغط هنا
String inputs;
#define relay1 2 //Connect relay1 to pin 2
#define relay2 3 //Connect relay2 to pin 3
#define relay3 4 //Connect relay3 to pin 4
#define relay4 5 //Connect relay4 to pin 5
int val1=0;
int val2=0;
int val3=0;
int val4=0;

void setup()
{
Serial.begin(9600); //Set rate for communicating with phone
pinMode(relay1, OUTPUT); //Set relay1 as an output
pinMode(relay2, OUTPUT); //Set relay2 as an output
pinMode(relay3, OUTPUT); //Set relay1 as an output
pinMode(relay4, OUTPUT); //Set relay2 as an output
digitalWrite(relay1, HIGH); //Switch relay1 off
digitalWrite(relay2, HIGH); //Swtich relay2 off
digitalWrite(relay3, HIGH); //Switch relay3 off
digitalWrite(relay4, HIGH); //Swtich relay4 off
}
void loop()
{
while(Serial.available()) //Check if there are available bytes to read
{
delay(10); //Delay to make it stable
char c = Serial.read(); //Conduct a serial read
if (c == '#'){
break; //Stop the loop once # is detected after a word
}
inputs += c; //Means inputs = inputs + c
}
if (inputs.length() >0)
{
Serial.println(inputs);

if(inputs == "a") 
  {
    if(val1==0)
    {
      digitalWrite(relay1,LOW);
      val1=1;
    }
    else
    {
      digitalWrite(relay1,HIGH);
      val1=0;
    }  
    delay(100);
  }

else if(inputs == "b") 
  {
    if(val2==0)
    {
      digitalWrite(relay2,LOW);
      val2=1;
    }
    else
    {
      digitalWrite(relay2,HIGH);
      val2=0;
    }  
    delay(100);
  }

 else if(inputs == "c") 
  {
    if(val3==0)
    {
      digitalWrite(relay3,LOW);
      val3=1;
    }
    else
    {
      digitalWrite(relay3,HIGH);
      val3=0;
    }  
    delay(100);
  }

  else if(inputs == "d") 
  {
    if(val4==0)
    {
      digitalWrite(relay4,LOW);
      val4=1;
    }
    else
    {
      digitalWrite(relay4,HIGH);
      val4=0;
    }  
    delay(100);
  }

inputs="";
}
}

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *