مقدمـــــــــــة عن المشروع
تحيـــــــــــــــة طيبة للجميع
اليوم بصدد الحديث عن التحكم في المنازل باستخدام البلوتوث مع الأردوينو للتحكم في الاجهزة الكهربائية .
التحكم يتم من خلال تطبيق مصمم للهواتف الذكية , هذا التطبيق يمكن من التحكم في الاجهزة الكهربائية بمختلف أنواعها , طريقة التحكم أما أن تكون بالنقر علي أزرار أو باستخدام الاوامر الصوتية أو بأرسال رسائل نصية للنظام المراد التحكم فيه .
والان هيـــــــــــــاااا لنبدأ ….
طريقة العمل والتوصيل
جهاز البلوتوث من الاجهزة التي تحوي علي خاصية الارسال والاستقبال , لذلك يتم ربطه مع الاردوينو في منافذي الارسال والاستقبال التسلسلي وهما المنفذين 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

متطلبات المشروع
- Arduino UNO.
- HC-05 Bluetooth Module.
- Relay Module.
- Jumper Wires.
- 3 volt battery.
-
-
-
جميع المنتجات, ريلاي
ريلاي موديول 5 فولت قناة واحدة Relay Module High Trigger
لمحة سريعة
- القناة: 1 قناة
- الزناد: زناد منخفض المرتفع High Leve
- جهد التتابع: 5 فولت
- تيار التتابع: 10A
- جهة اتصال مغلقة عادةً (NC) وواحدة اتصال مفتوحة عادةً (NO)
للاطلاع على فكرة مشروع تساعدك على برمجة واستخدام هذا المنتج
SKU: BA065 -
-
الاجهزة والمكونات اللاسلكية, انترنت الأشياء, جميع المنتجات
موديول بلوتوث HC-05 Bluetooth Module
لمحة سريعة
- بروتوكول البلوتوث: مواصفات البلوتوث الإصدار 2.0 + EDR.
- التردد: 2.4 جيجا هرتز نطاق ISM.
- التحوير: GFSK (مفتاح تحويل التردد الغوسي).
- طاقة الانبعاث: = 4dBm ، الفئة 2.
- الحساسية: = -84dBm عند 0.1٪ لكل BER.
للاطلاع على فكرة مشروع تساعدك على برمجة واستخدام هذا المنتج
SKU: AA127
تطبيق التحكم :
يتم تحميل تطبيق التحكم للهواتف الذكية من النوع أندورويد فقط , وبعد تثبيت التطبيق يتم البحث عن جهاز البلوتوث حيث يظهر بالاسم 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="";
}
}







