توصيل الاردوينو مع الجوال عن طريق البلوتوث HC-06 August 25, 2017 – Posted in: Arduino, Learn arduino, Products
في هذا الدرس سوف بتوصيل وحدة البلوتوث hc-06 مع لوحة الاروينو للحكم بتشغيل و إطفاء ليد عن طريق الجوال وبرنامج ال Terminal.
القطع المستخدمة
نحتاج في هذا الدرس الى اردوينو اونو, بلوتوث من نوع hc-06 , ليد, جوال اندرويد, اسلاك.
![]() |
جوال اندرويد |
طريقة التوصيل:
سوف نقوم بتوصيل ال٥ فولت من لوحة الاردوينو ب vcc و المنفذ الأرضي بمنفذ ال gnd ونقوم بتوصيل الليد بمنفذ رقم 13 كما في الصورة التالية:
لنقوم بتوصيل لوحة الاردوينو و تحميل الكود التالي على اللوحة
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
int LED = 13; char value; void setup() { pinMode(LED, OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available() > 0) { // if the data came value = Serial.read(); // read byte if(value == '0') { digitalWrite(LED, LOW); // if 1, switch LED Off Serial.println("LED OFF. Press 1 to LED ON!"); // print message } if(value == '1') { digitalWrite(LED, HIGH); // if 0, switch LED on Serial.println("LED ON. Press 0 to LED OFF!"); } } } |
وأخيرا سوف نقوم بتوصيل الTx للاردوينو بالـ Rx لوحدة البلوتوث و الـ Rx للاردوينو بالـ Tx للبلوتوث كما في الصورة التالة:
ملاحظة مكتوب على ظهر القطعه انه يجب توصيل الrx للقطعة بفولتية 3.3فولت و هناك مصادر أخرى على الانترنت بتحكي انه نستطيع توصيله مباشره مع منفذ الtxو ولكن لا يوجد شيء يؤكد لقلة المصادر من الشركة المنتجة
لنقوم بتحميل برنامج الterminal من متجر جوجل من الرابط التالي
بعد تحميل توصيل الاردوينو و البلوتوث بالطاقة, نلاحظ انه الضوء على البلوتوث بدء بالوميض وهذا يعني انه البوتوث لم تتصل مع أي جهاز, ولتوصيلها مع الجوال نقوم بتشغيل البلوتوث و نبدء بالبحث عن أجهزة محاورة, ونعمل بالاقتران مع جهاز البلوتوث ويطلب هذا رقم للاقتران وعادتا يكون هذا الرقم اما 0000 او 1234 وبعد التوصيل يثبنت الضوء على قطعة البلوتوث, وأخيرا نقوم بفتح البرنامج الterminal.
في هذا البرنامج سوف نقوم بأرسال رقم ١ من برنامج التيرمنل على الجوال و اضاءة الليد على الاردوينو و ارسال 0 لأطفاء الليد
شرح الكود:
اولا سوف سنقوم بتعريف متغيرين ، منفذ رقم 13 واعطاءه اسم LED اما الاخر هو value لحفظ المعلومات القادمة من الجوال كما في الاوامر التالية
1 2 |
int LED = 13; char value; |
اما في دالة setup سوف نقوم ببدء عملية الإتصال التسلسلي ليمكن الأردوينو من إرسال واستقبال الأوامر عبر البلوتوث. القيمة 9600 هو معدل سرعة نقل البيانات, ونقوم بتعريف منافذ رقم 13 كمداخل.
1 2 |
pinMode(LED, OUTPUT); Serial.begin(9600); |
كل شي يحدث داخل دورة الـ loop يحدث داخل الجملة الشرطية IF (إذا كان)، “Serial.available()” للتأكد من انه مازال هناك اتصال تسلسلي نشط (وذلك عبر استرجاع قيمة True – نعم) وعندها فقط يتم تنفيذ سلسلة الأوامر التي بداخلها.
إذا تم استقبال رسالة فسوف ينتقل لسطر الكود التالي
1 |
value = Serial.read(); |
السطر الذي يليه بالكود هي جملة IF الشرطية، وذلك للتأكد من أن القيمة المدخلة إما 1 أو 0. كل حرف مدخل يحمل قيمة خاصة بالنظام، يدعى قيمة ASCII. وهذا يعني انه عند استخدام == فنحن نقوم بالمقارنة بقيم ASCII
إذا كان القيمة التي وصلت هي 0 فسوف ينتقل للسطر الذي يليه, ويقوم بإطفاء الليد ويطبع الجملة التي بداخل الاقواس عبر الأمر التالي
1 2 3 |
if(value == '0') { digitalWrite(LED, LOW); Serial.println("LED OFF. Press 1 to LED ON!"); |
إذا كان القيمة التي وصلت هي 1 فسوف ينتقل للسطر الذي يليه, ويقوم بإضاءة الليد ويطبع الجملة التي بداخل الاقواس عبر الأمر التالي
1 2 3 |
if(value == '1') { digitalWrite(LED, HIGH); Serial.println("LED ON. Press 0 to LED OFF!"); |