- المواد المطلوبة
- وحدة بلوتوث (HC-05)
- منافذ STM32 USART
- مخطط الدائرة والتوصيلات
- برمجة STM32F103C8
- خطوات توصيل وحدة Bluetooth بهاتف Android
في عالم اليوم ، أصبحت تقنية Bluetooth شائعة جدًا ويستخدم كل جهاز تقريبًا مثل الهاتف المحمول والكمبيوتر المحمول ونظام المعلومات والترفيه في السيارات تقنية Bluetooth للاتصال اللاسلكي. لا يتم استخدام Bluetooth لنقل البيانات فحسب ، بل أيضًا للتحكم في أجهزة Bluetooth الأخرى لاسلكيًا ، مثل استخدام سماعة رأس Bluetooth ، يمكنك سماع الأغنية لاسلكيًا من هاتفك المحمول أو يمكنك استخدام نظام صوت السيارة لتشغيل الأغاني من هاتفك المحمول.
Bluetooth هي تقنية لاسلكية تعمل على تردد 2.4 جيجا هرتز. إشارة البلوتوث العادية في نطاق 10 أمتار. تعد تقنية Bluetooth هي التقنية اللاسلكية الأكثر استخدامًا في المشاريع المدمجة بشرط أن يكون نطاق الاتصال محدودًا. أضافت البلوتوث ميزة استهلاكها المنخفض للطاقة والتشغيل المنخفض التكلفة. يستخدم بشكل عام لربط الميكروكونترولر مع الهواتف الذكية باستخدام تطبيقات البلوتوث.
لقد رأينا تداخل وحدة Bluetooth مع وحدات التحكم الدقيقة الأخرى مثل Arduino ، 8051 ، PIC وما إلى ذلك الآن في هذا البرنامج التعليمي ، سنقوم بتوصيل وحدة HC-05 Bluetooth مع STM32F103C8 وتشغيل / إيقاف تشغيل LED باستخدام هاتف Android.
المواد المطلوبة
- STM32F103C8
- وحدة بلوتوث (HC-05)
- يؤدى
- موبايل أندرويد
- اللوح
- توصيل الأسلاك
البرمجيات:
- محطة بلوتوث (تطبيق أندرويد)
وحدة بلوتوث (HC-05)
يستخدم في الغالب وحدة Bluetooth في المشاريع المدمجة. إنها وحدة بلوتوث تسلسلية تستخدم اتصالات تسلسلية ذات نطاق أقل من 100 متر وتعمل بجهد 5 فولت (3.3 فولت كحد أدنى). يمكن استخدامه لتوصيل اثنين من وحدات التحكم الدقيقة لاسلكيًا وأيضًا مع الهاتف المحمول وأجهزة الكمبيوتر المحمولة. نظرًا لوجود العديد من تطبيقات android المتاحة ، فهي مفيدة جدًا لإنشاء مشاريع يتم التحكم فيها عن طريق Bluetooth اللاسلكية.
يستخدم اتصال USART ويمكن توصيله بوحدات تحكم دقيقة لها بروتوكول اتصال USART.
به هوائي مدمج. يحتوي على تكوينات رئيسية / تابعة يمكن تغييرها في وضع أوامر AT والذي يكون مفيدًا عندما يقوم جهاز واحد فقط بإرسال البيانات (رئيسي إلى تابع) مثل على سبيل المثال من الكمبيوتر الشخصي (MASTER) إلى التابع (أي MCU). يمكن للسيد الاتصال بأجهزة أخرى ولا يتصل التابع باتصال آخر بخلاف الاتصال الرئيسي.
أساليب عملها
لديها اثنين من وسائط AT وضع القيادة ووضع البيانات.
عندما يتم تشغيل Bluetooth ، فإنه يدخل في وضع البيانات الافتراضي. يمكن استخدام هذا الوضع لنقل البيانات. للدخول إلى وضع أوامر AT أثناء التشغيل ، نحتاج إلى الضغط على الزر الموجود في الوحدة النمطية لتغيير الإعدادات الافتراضية للوحدة مثل التكوينات الرئيسية / التابعة.
دبابيس وحدة بلوتوث
- EN pin (ENABLE) - يستخدم هذا الدبوس لضبط وضع البيانات أو وضع أوامر AT. بشكل افتراضي يكون في DATA MODE. عند الضغط على الزر أثناء رفع الطاقة ، ينتقل إلى وضع أوامر AT.
- + دبوس 5V - يستخدم هذا لإمداد الطاقة للوحدة
- دبوس GND - يستخدم للأرض للوحدة النمطية
- TX pin - هذا الدبوس متصل بـ RX pin of MCU
- RX pin - هذا الدبوس متصل بدبوس TX في MCU
- الحالة - يشير هذا الدبوس إلى حالة الوحدة ، انظر أدناه حول المؤشرات
مؤشر LED
- يحتوي على مؤشر LED (أحمر) يوفر حالة وحدة Bluetooth.
- عندما لا تكون وحدة Bluetooth متصلة بأي جهاز ، تنخفض الإشارة ويومض مصباح LED باللون الأحمر باستمرار مما يشير إلى عدم ازدواج الوحدة.
- عند توصيل وحدة Bluetooth بأي جهاز ، ترتفع الإشارة ويومض المصباح الأحمر مع بعض التأخير مما يشير إلى إقران الوحدة.
تحقق من مشاريعنا الأخرى لمعرفة المزيد عن وحدة Bluetooth HC-05 مع وحدات التحكم الدقيقة الأخرى:
- لعبة سيارة تعمل بالتحكم عن طريق البلوتوث باستخدام اردوينو
- نظام أتمتة المنزل المتحكم فيه عبر البلوتوث باستخدام 8051
- أضواء التحكم الصوتي باستخدام Raspberry Pi
- راديو FM يتم التحكم به بواسطة الهاتف الذكي باستخدام Arduino والمعالجة
- سيارة روبوت يتم التحكم فيها بواسطة الهاتف المحمول باستخدام G-Sensor و Arduino
- ربط وحدة البلوتوث HC-06 بوحدة التحكم الدقيقة PIC
منافذ STM32 USART
STM32F103C8 (BLUE PILL) تظهر منافذ الاتصال التسلسلي USART في صورة التثبيت أدناه. وهي زرقاء اللون لها (PA9-TX1 ، PA10- RX1 ، PA2-TX2 ، PA3- RX2 ، PB10-TX3 ، PB11- RX3). لديها ثلاث قنوات اتصال من هذا القبيل.
مخطط الدائرة والتوصيلات
يتم إجراء توصيلات الدائرة لربط وحدة Bluetooth مع STM32 كما هو موضح أدناه
الاتصال بين STM32F103C8 ووحدة Bluetooth (HC-05)
- يتم توصيل دبوس TX (PA9) الخاص بـ STM32F103C8 بطرف RX الخاص بوحدة Bluetooth.
- يتم توصيل دبوس RX (PA10) الخاص بـ STM32F103C8 بدبوس TX الخاص بوحدة Bluetooth.
- تم توصيل دبوس VCC (+ 5V) الخاص بوحدة Bluetooth بدبوس 5 فولت من STM32F103C8.
- يتم توصيل دبوس GND لوحدة Bluetooth بدبوس GND الخاص بـ STM32F103C8.
اتصالات أخرى
- يتم توصيل دبوس (PA0) الخاص بـ STM32 (Blue Pill) بدبوس إيجابي من LED من خلال المقاوم المتسلسل. الصمام المستخدم هنا هو لون مختلط.
- يتم توصيل دبوس آخر LED بـ GND الخاص بـ STM32.
برمجة STM32F103C8
إن الربط بين Bluetooth و STM32 هو نفسه بالنسبة لـ arduino والبرمجة في STM32 هي نفسها Arduino IDE. انظر هذا البرنامج التعليمي لبرمجة STM32 مع USB باستخدام Arduino IDE.
كما قيل سابقًا ، في هذا المشروع ، سنقوم بتوصيل وحدة Bluetooth (HC-05) مع STM32F103C8 واستخدام هاتف ذكي يعمل بنظام Android مع تطبيق Bluetooth Terminal android لتشغيل وإيقاف تشغيل LED.
ملاحظة: يجب إزالة دبوس RX & TX أثناء تحميل الرمز إلى STM32F103C8.
يتم تقديم الكود الكامل لهذا المشروع في نهاية هذا البرنامج التعليمي مع فيديو توضيحي.
الترميز لهذا المشروع بسيط للغاية. يمكن استخدام رموز Arduino نفسها ولكن يجب تغيير الدبوس فقط. نظرًا لأن لدينا ثلاث مجموعات من دبوس USART في STM32F103C8 ، لذلك يجب علينا تحديد الدبوس الصحيح الذي استخدمناه لتوصيل وحدة Bluetooth.
1. نحتاج أولاً إلى تسمية المسامير برقم التعريف الشخصي الخاص بها بنوع البيانات int كما يلي
تثبيت int pinout = PA0 ؛
2. بعد ذلك ، نحتاج إلى متغير لتخزين البيانات التسلسلية من هاتف android. يمكن أن تكون البيانات حرفًا أو عددًا صحيحًا على النحو التالي
char inputdata = 0 ؛
3. بعد ذلك في الإعداد الباطل () ، يجب أن نبدأ الاتصال التسلسلي بين STM32 Blue Pill ووحدة Bluetooth بإعطاء معدل باود 9600
Serial1.begin (9600) ؛
استخدمنا Serial1 هنا لأننا وصلنا HC-05 بـ TX1 و RX1 من STM32.
يمكننا أيضًا استخدام Serial2 أو Serial3 ولكن وفقًا لذلك يجب توصيل دبوس.
4. يتم إرسال رسالة تمهيدية كبيانات تسلسلية إلى الرقم التسلسلي 1 ، أي إلى وحدة Bluetooth HC05. ترسل هذه الوحدة البيانات إلى تطبيق Bluetooth Terminal الخاص بجوال android. لذلك نستخدم البيانات أدناه
Serial1.print ("CIRCUIT DIGEST \ n") ؛ Serial1.print ("BLUETOOTH WITH STM32 \ n") ؛
5. بعد ذلك ، نحتاج إلى تعيين pinmode (PA0) كإخراج ، حيث أننا وصلنا قادنا إلى هذا الدبوس. لذلك نستخدم
pinMode (pinout ، الإخراج) ؛
6. بعد ذلك في الحلقة الفارغة () ، نقوم بتشغيل البيانات التالية لقراءة البيانات التسلسلية وتشغيل / إيقاف تشغيل LED وفقًا لذلك
الحلقة الفارغة () { If (Serial1.available ()> 0) { inputdata = Serial1.read () ؛ if (inputdata == '1') { digitalWrite (pinout، HIGH) ؛ Serial1.print ("LED ON \ n") ؛ } else if (inputdata == '0') { digitalWrite (pinout، LOW)؛ Serial1.print ("LED OFF \ n") ؛ } } }
نستخدم هنا عبارة if لأن هذه التعليمات البرمجية لا يتم تنفيذها إلا عندما يحتوي منفذ Serial1 على أي بيانات مستلمة من وحدة Bluetooth وهذا سبب استخدام هذه العبارة Serial1.available ()> 0 . خلاف ذلك ، إذا لم يتم الدخول فيه ، فإنه ينتظر حتى يبدأ الاتصال التسلسلي. الآن يقوم بتخزين البيانات المستلمة في متغير inputdata = Serial1.read (). ثم تحقق من القيمة المرسلة من تطبيق Bluetooth Terminal. لذلك إذا كانت القيمة 1 ، فإنها تطبع LED ON وتجعل الدبوس (PA0) يرتفع من خلال البيان الرقمي الكتابة (pinout ، HIGH) وإذا كانت القيمة 0 ، فإنه يطبع LED OFF ويجعل الدبوس (PA0) ينخفض.
خطوات توصيل وحدة Bluetooth بهاتف Android
الخطوة 1: - افتح Bluetooth من الهاتف المحمول بعد تحميل الكود إلى STM32 من Arduino IDE وإعطاء الطاقة للدائرة. تذكر لإزالة RX و TX pin أثناء تحميل الكود
الخطوة 2: - في الأجهزة المتاحة ، حدد HC-05 وأدخل كلمة المرور كـ 1234
الخطوة 3: - بعد الاقتران ، افتح تطبيق Bluetooth Terminal وحدد توصيل جهاز وحدد HC-05 كما هو موضح أدناه
الخطوة 4: - بعد الاتصال بوحدة HC-05 Bluetooth Module ، قم بتوفير القيم في الطرف 1 أو 0 لتشغيل وإيقاف تشغيل LED. ستتلقى أيضًا رسالة تفيد بأن LED قيد التشغيل أو مطفأ.