- المواد المطلوبة
- مخطط الرسم البياني
- التكوين الأولي لوحدات HC05
- Arduino إلى Arduino Bluetooth Communication Testing
وحدات HC-05 Bluetooth هي وحدات الانتقال إلى Bluetooth لأي مشروع من مشاريع Arduino! من السهل التوصيل والتشفير في Arduino IDE. في معظم المشاريع ، نتصل عادةً بـ HC05 بـ Arduino ونستخدمه للتواصل لاسلكيًا مع جهاز ذكي آخر مثل الهاتف المحمول. هذا بسيط إلى حد ما وقد قمنا ببناء العديد من المشاريع المثيرة للاهتمام معه مثل الروبوت المتحكم فيه عبر البلوتوث ، والتحكم الصوتي بالبلوتوث ، وأتمتة المنزل عبر البلوتوث ، وما إلى ذلك ، ومع ذلك ، هل سبق لك أن احتجت إلى توصيل جهازي HC-05 معًا؟ ليس من السهل توصيل HC05 بهاتف ذكي ، فهناك بعض الخطوات الإضافية المتضمنة. سيرشدك هذا البرنامج التعليمي خلال هذه العملية. دعنا نقفز مباشرة!
المواد المطلوبة
- 2x Arduino (أي نموذج سيفي بالغرض ؛ أنا أستخدم Arduino Uno R3 و Arduino Nano)
- 2x HC05 وحدة بلوتوث
- اللوح
- أسلاك توصيل
- 2x 1kΩ المقاوم
- 2x 2.2kΩ المقاوم
مخطط الرسم البياني
هذا هو مخطط الدائرة الأساسية. اربط 2 من هذه الدوائر ، واحدة للسيد والأخرى للعبد. بالنسبة للاتصالات ، كل ما نقوم به هنا هو توصيل HC05 بـ Arduino. يعمل دبوس جهاز الاستقبال (Rx) الخاص بـ HC05 في نطاق من 0 إلى 3.3 فولت ويعمل Arduino في نطاق من 0 إلى 5 فولت. لذلك ، سوف نستخدم مقاومات (R1 و R2) لإنشاء مقسم جهد لتقليل خرج 5 فولت من Arduino إلى 3.3 فولت ، حتى لا تتلف وحدة HC05.
أنا أستخدم 1kΩ لـ R1 و 2.2KΩ لـ R2 ولكن يمكنك استخدام أي قيمة مقاوم طالما أن R2 تقريبًا ضعف قيمة R1 (R2 ≈ 2R1). وبالمثل ، كرر الدائرة لكل من السيد والعبد ، وترد أدناه دائرة Arduino Master Bluetooth Circuit و Arduino Slave Bluetooth Circuit.
التكوين الأولي لوحدات HC05
هذه هي الخطوة الإضافية المطلوبة لتوصيل وحدتي HC05 معًا. نحتاج إلى تغيير بعض الإعدادات داخل وحدة HC05 Bluetooth Module ، للقيام بذلك ، يتعين علينا الانتقال إلى وضع أوامر AT الخاص بوحدة HC05 وإرسال الأوامر إليها من خلال الشاشة التسلسلية لـ Arduino IDE. للقيام بذلك ، نحتاج إلى كتابة كود Arduino لإرسال الأوامر من خلال الشاشة التسلسلية إلى HC05.
في الرمز إلى تكوين وحدة HC05 يمكن العثور عليها في الجزء السفلي من هذه الصفحة، شرح للكود كما يلي
أضف مكتبة SoftwareSerial إلى هذا الرمز.
# تضمين < SoftwareSerial.h>
حدد أرقام توصيل الإرسال (Tx) والاستلام (Rx). أنا أستخدم pin 2 لـ Tx و pin 3 لـ Rx.
#define tx 2 #define rx 3
امنح اتصال Bluetooth اسمًا ما (هنا أستخدم configBt) ، ثم أخبر مكتبة SoftwareSerial عن الدبوس الذي هو Tx وأي طرف هو Rx. بناء الجملة هو bluetoothName (Rx ، Tx) ؛
SoftwareSerial configBt (rx ، tx) ؛ // RX ، TX
من أجل تكوين وحدة Bluetooth ، يحتاج Arduino إلى إرسال أوامر إليه بمعدل باود 38400 باود. وبالمثل ، قمنا بتعيين معدل الباود لاتصال Bluetooth بالإضافة إلى 38400 باود. اضبط الإرسال (Tx) على دبوس الإخراج والاستلام (Rx) إلى طرف الإدخال
إعداد باطل () { Serial.begin (38400) ؛ configBt.begin (38400) ، pinMode (TX ، الإخراج) ؛ pinMode (rx ، الإدخال) ؛ }
داخل الحلقة الأبدية ، لدينا الجزء الرئيسي من الكود. الفكرة هنا هي إرسال كل ما هو مكتوب في مربع النص في الشاشة التسلسلية إلى HC05 من خلال دبوس Tx الخاص بـ Arduino. ثم اعرض ما هو ناتج عن HC05 في الشاشة التسلسلية.
حلقة باطلة () {if (configBt.available ()) // إذا كان HC05 يرسل شيئًا… { Serial.print (configBt.readString ()) ؛ // print in serial monitor} إذا (Serial.available ()) // إذا كان جهاز العرض التسلسلي يخرج شيئًا ما… {configBt.write (Serial.read ())؛ // الكتابة إلى Arduino's Tx pin}}
قم بتحميل هذا الرمز في Arduino المتصل بوحدة HC05 الرئيسية أولاً. بعد تحميل الكود ، قم بتوصيل كابل طاقة Arduino. اضغط مع الاستمرار على الزر الموجود في HC05. الآن قم بتوصيل كبل الطاقة Arduino مع الاستمرار في الضغط على الزر الموجود في HC05. حسنًا ، يمكنك الآن تحرير الزر الموجود في HC05. هذه هي الطريقة التي تدخل بها إلى وضع AT في HC05. للتحقق مما إذا كنت قد فعلت ذلك بشكل صحيح ، تأكد من وميض الضوء الأحمر على HC05 كل ثانية تقريبًا (وميض بطيء!). عادةً قبل توصيل HC05 بأي جهاز Bluetooth ، يومض الضوء الأحمر بتردد عالٍ جدًا (يومض سريعًا!).
بعد ذلك ، افتح الشاشة التسلسلية (يوجد زر الشاشة التسلسلي في أعلى يمين Arduino IDE). في الزاوية اليمنى السفلية من نافذة Serial monitor ، إذا لم تكن قد قمت بذلك بالفعل ، فتأكد من ضبط إعداد نهاية الخط على "كلا NL و CL" ومعدل الباود على 38400. الآن ، اكتب AT في الشاشة التسلسلية ، إذا سارت الأمور على ما يرام ، ستحصل على "موافق" من HC05 المعروض في نافذة الشاشة التسلسلية. تهانينا! لقد قمت بتسجيل الدخول بنجاح إلى وضع أوامر AT الخاص بالوحدة HC05.
الآن ، أدخل الأوامر التالية في الجدول أدناه لتكوين وحدة HC05 الرئيسية:
COMMAND (أدخل هذا في الشاشة التسلسلية واضغط على Enter) |
الاستجابة (رد من HC05 ، معروض في الشاشة التسلسلية) |
الوظيفة (ماذا يفعل هذا الأمر؟) |
في |
حسنا |
اختبار |
AT + CMODE؟ |
حسنا |
تحقق من CMODE أو وضع الاتصال ----------------------------- CMODE: 0 هو العبد 1 هو سيد |
AT + CMODE = 1 |
حسنا |
اضبط CMODE على 1 لأننا نقوم بتكوين HC05 الرئيسي |
AT + ADDR؟ |
+ ADDR: FCA8: 9A: 58D5 حسنا * هذا هو عنوان سيدي HC05. سيكون عنوانك مختلفا! |
يُرجع عنوان HC05 ، لاحظ ذلك لأننا سنحتاجه لاحقًا! |
بعد ذلك ، قم بتوصيل جهاز الكمبيوتر الخاص بك بـ HC05 الآخر ، العبد:
COMMAND (أدخل هذا في الشاشة التسلسلية واضغط على Enter) |
الاستجابة (رد من HC05 ، معروض في الشاشة التسلسلية) |
الوظيفة (ماذا يفعل هذا الأمر؟) |
في |
حسنا |
اختبار |
AT + CMODE؟ |
حسنا |
تحقق من CMODE أو وضع الاتصال ----------------------------- CMODE: 0 هو عبد 1 هو سيد |
AT + CMODE = 0 |
حسنا |
اضبط CMODE على 0 بينما نقوم بتكوين الرقيق HC05 |
AT + BIND = FCA8،9A، 58D5 * استبدل ":" في عنوان HC05 الرئيسي بـ "،" * هنا أستخدم عنوان السيد HC05 الذي أشرت إليه في الجدول السابق. يجب عليك استخدام عنوان سيدك HC05! |
حسنا |
تعيين عنوان HC05 الرئيسي الذي سيتصل به هذا العبد HC05 تلقائيًا عند بدء التشغيل |
AT + BIND؟ |
+ ربط: FCA8: 9A: 58D5 حسنا * هذا هو عنوان سيدي HC05. سيكون عنوانك مختلفا! |
تحقق من عنوان ملزم لعبدك. إذا كان يطابق عنوان سيدك HC05 ، فأنت على ما يرام! |
Arduino إلى Arduino Bluetooth Communication Testing
أولاً ، قم بتشغيل كل من وحدات HC05 الرئيسية والعبد. بعد التشغيل ومرور بضع ثوانٍ ، انظر إلى الضوء الأحمر على وحدات HC05.
وميض سرعة الضوء الأحمر |
ماذا تعني |
يومض بتردد عالٍ جدًا (يومض بسرعة!) |
غير جيد! هذا يعني أن وحدات HC05 لا تتصل ببعضها البعض! حان الوقت لاستكشاف الأخطاء وإصلاحها! |
يومض بتردد منخفض (وميض بطيء!) |
لطيف! كنت قد فعلت ذلك! ولكن لا يزال يتعين علينا إجراء فحص آخر فقط للتأكد من أن هذا الإعداد يعمل! استمر! |
مرة واحدة أضواء حمراء الخاص وامض في التردد المنخفض (امض بطيئة!)، يمكنك أن تكون على يقين من أن كل من HC05s بك ترتبط مع بعضها البعض، ولكن نحن لم تختبر ما إذا كان يمكن إرسال البيانات ذهابا وإيابا بين السيد والعبد. بعد كل شيء ، هذا هو الغرض الرئيسي هنا.
قم بتحميل الكود أدناه إلى أحد Arduinos ، هذا هو الكود لاختبار المرسل (Tx) ، ومرة أخرى يمكن العثور على الكود الكامل لكل من المرسل والمستقبل في أسفل هذه الصفحة.
باتباع الكود السابق ، نضيف مكتبة SoftwareSerial إلى هذا الرمز ونحدد أرقام دبوس الإرسال (Tx) والاستلام (Rx). ثم نقوم بتسمية اتصال Bluetooth ونقوم بتمرير أرقام التعريف Tx و Rx إلى المكتبة.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx، tx) ؛ // RX ، TX
في وظيفة الإعداد ، نقوم بتعيين معدل الباود لشاشة Arduino التسلسلية و Bluetooth مرة أخرى. هل ترى الفرق هنا مقارنة بالرمز السابق؟ نحن نستخدم معدل الباود 9600 باود. هذا هو معدل البث بالباود الافتراضي للاتصال بوحدة HC05 Bluetooth عند الاتصال بأجهزة Bluetooth الأخرى. لذلك ، لاحظ أن 38400 باود مخصص لتكوين HC05 بأوامر AT و 9600 باود هو معدل الباود الافتراضي لوحدة HC05. أخيرًا ، تمامًا كما كان من قبل ، نقوم بتكوين Tx pin كمخرج ودبوس Rx كمدخل.
إعداد باطل () { Serial.begin (9600) ؛ bt.begin (9600) ؛ pinMode (TX ، الإخراج) ؛ pinMode (rx ، الإدخال) ؛ }
داخل الحلقة الأبدية ، كل ما نقوم به هو إرسال قيمة عشوائية "123" من خلال HC05.
حلقة باطلة () {bt.write (123) ؛ }
قم بتحميل هذا الكود إلى Arduino الآخر ، هذا هو الكود لاختبار الاستلام (Rx):
تمامًا مثل الرموز السابقة ، نقوم بتكوين مكتبة SoftwareSerial.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx، tx) ؛ // RX ، TX
الكود في وظيفة الإعداد هو بالضبط نفس الكود لاختبار الإرسال (Tx).
إعداد باطل () { Serial.begin (9600) ؛ bt.begin (9600) ؛ pinMode (TX ، الإخراج) ؛ pinMode (rx ، الإدخال) ؛ }
في الحلقة الدائمة ، نحتاج فقط إلى استلام ما نرسله من Arduino المرسل. إذا تلقى المخزن المؤقت للاستلام بعض البيانات من HC05 ، فقم بعرض كل ما يتم استلامه في الشاشة التسلسلية.
حلقة باطلة () {if (bt.available ()> 0) { Serial.println (bt.read ()) ؛ }}
بعد تحميل الرموز الخاصة بكل أردوينو ، افتح الشاشة التسلسلية على Arduino المستلم. تأكد من اختيار معدل الباود كـ 9600 والخط المنتهي كـ Newline في الشاشة التسلسلية. إذا كان كل شيء يعمل بشكل جيد ، يجب أن ترى 123.
ملاحظة: إذا قمت بتوصيل كل من Arduinos المرسل والمستقبل بنفس الكمبيوتر المحمول ، فتأكد من اختيار منفذ COM الصحيح ضمن الأدوات> المنفذ. يجب أن تكون متصلاً بمنفذ COM المستلم في Arduino.
إذا سارت الأمور على ما يرام ، فقم بتبديل وحدات HC05 للتأكد من أن الاتصال يمكن أن يحدث في كلا الاتجاهين وأننا انتهينا!