- تقاضے:
- بلوٹوت مواصلت کے لئے پروگرامنگ پی آئی سی مائکرو قابو۔
- سرکٹ ڈایاگرام اور ہارڈ ویئر سیٹ اپ:
- بلوٹوت موبائل ایپلیکیشن کا استعمال کرتے ہوئے ایل ای ڈی کو کنٹرول کرنا:
اس ٹیوٹوریل میں ہم سیکھیں گے کہ بلوٹوتھ ماڈیول (HC-06) میں مداخلت کرکے PIC پروجیکٹس کو وائرلیس بنانے کا طریقہ سیکھیں گے ۔ ہمارے پچھلے سبق میں ہم پہلے ہی یہ سیکھ چکے ہیں کہ ہمارے پی آئی سی مائکروکنٹرولر میں یو ایس آر ٹی ماڈیول کا استعمال کیسے کریں اور پی آئی سی اور کمپیوٹر کے مابین مواصلات کو قائم کیا جائے۔ اگر آپ مطلق ابتدائی ہیں تو ہمارے تمام PIC سبق کے لئے یہاں چیک کریں ، جہاں سے ہم نے شروع سے ہی شروع کیا ہے ، جیسے MPLAB اور XC8 سیکھنا ، انٹرفیسنگ ایل ای ڈی ، LCD ، ٹائمر ، ADC ، PWM وغیرہ کا استعمال کرتے ہوئے۔
یہاں ، ہم نے مشہور بلوٹوتھ ماڈیول HC-06 استعمال کیا ہے ۔ اس ماڈیول کا استعمال کرتے ہوئے ہم اپنے PIC MCU سے کسی موبائل ایپلی کیشن یا کمپیوٹر پر وائرلیس طور پر معلومات وصول اور بھیج سکتے ہیں۔ پی آئی سی اور ایچ سی 06 کے مابین مواصلت پی آئی سی مائکروکنٹرولر میں موجود یو ایس اے آر ٹی ماڈیول کا استعمال کرتے ہوئے قائم کی گئی ہے۔ آپ HC-05 کا استعمال بھی کرسکتے ہیں۔ ہم پھر اسی عینکرونس 8 بٹ موڈ پر کام کرتے ہیں ، لیکن اس بار ہم اپنے کوڈ میں تھوڑا سا ترمیم کریں گے تاکہ یہ بلوٹوتھ ماڈیول کے ساتھ کام کرے۔ لہذا پہلے ہی UART سبق سیکھنا اس منصوبے کے لئے ایک اضافی فائدہ ہے۔
اس ٹیوٹوریل میں ، ہم اپنے اسمارٹ فون سے کمانڈ آن یا آف بھیج کر ایل ای ڈی کو تبدیل کریں گے ۔ ہم بلوٹوتھ ٹرمینل نامی ایک اینڈروئیڈ ایپلی کیشن استعمال کریں گے جو بلوٹوتھ پر ڈیٹا بھیج اور وصول کرسکتے ہیں۔ اگر ہم ایپ سے چار '1' بھیجتے ہیں تو پی آئی سی بورڈ میں لائٹ آن ہوجائے گی اور ہمیں فون پر ایک شناخت مل جائے گی کہ لائٹ آن ہوچکی ہے۔ اسی طرح ہم اسے بند کرنے کے لئے فون سے '0' بھیج سکتے ہیں۔ اس طرح ہم اپنے PIC بورڈ پر ایل ای ڈی لائٹ کنٹرول کرسکتے ہیں ، جو UART ٹیوٹوریل کی طرح ہے لیکن اب بغیر وائرلیس سے۔ اس ٹیوٹوریل کے آخر میں مکمل پروگرام اور تفصیلی ویڈیو دیا گیا ہے۔
سیٹ اپ کے لئے بنیادی بلاک ڈایاگرام نیچے دکھایا گیا ہے۔
تقاضے:
ہارڈ ویئر:
- PIC16F877A پرفیکٹ بورڈ
- HC-05 یا HC-06 بلوٹوتھ ماڈیول
- کمپیوٹر (پروگرامنگ کے لئے)
- موبائل فون
- PICkit 3 پروگرامر
سافٹ ویئر:
- ایم پی ایل ایکس
- بلوٹوتھ ٹرمینل (موبائل ایپلیکیشن)
بلوٹوتھ ماڈیول HC-06:
بلوٹوتھ مندرجہ ذیل دو طریقوں میں کام کرسکتا ہے۔
- کمانڈ وضع
- آپریٹنگ موڈ
میں کمانڈ موڈ ہم بلوٹوت سگنل کے نام کی طرح بلوٹوت خواص کو ترتیب دینے کے قابل ہو جائے گا، اس کے پاس ورڈ، آپریٹنگ بوڈ کی شرح وغیرہ موڈ آپریٹنگ ہم PIC مذکور Microcontroller درمیان ڈیٹا وصول بھیجنے کے قابل ہو جائے گا جس میں سے ایک ہے اور بلوٹوتھ ماڈیول۔ لہذا اس ٹیوٹوریل میں ہم صرف آپریٹنگ موڈ کے ساتھ جڑیں گے۔ کمانڈ وضع کو پہلے سے طے شدہ ترتیبات میں چھوڑ دیا جائے گا۔ ڈیوائس کا نام HC-05 ہوگا (میں HC-06 استعمال کررہا ہوں) اور پاس ورڈ 0000 یا 1234 ہوگا اور سب سے اہم بات یہ ہے کہ بلوٹوتھ ماڈیول کے لئے پہلے سے طے شدہ بوڈ کی شرح 9600 ہوگی۔
ماڈیول 5V سپلائی پر کام کرتا ہے اور سگنل پنز 3.3V پر کام کرتے ہیں ، لہذا ماڈیول میں ہی 3.3V ریگولیٹر موجود ہے۔ لہذا ہمیں اس کے بارے میں فکر کرنے کی ضرورت نہیں ہے۔ آپریٹنگ موڈ میں چھ پنوں میں سے صرف چار استعمال ہوں گے۔ پن کنکشن ٹیبل نیچے دکھایا گیا ہے
سیریل نمبر |
HC-05 / HC-06 پر پن کریں |
ایم سی یو پر پن کا نام |
PIC میں پن نمبر |
1 |
وی سی سی |
وی ڈی ڈی |
31 سینٹ پن |
2 |
وی سی سی |
Gnd |
32 این ڈی پن |
3 |
Tx |
آر سی 6 / ٹی ایکس / سی کے |
25 ویں پن |
4 |
Rx |
آر سی 7 / آر ایکس / ڈی ٹی |
26 ویں پن |
5 |
حالت |
این سی |
این سی |
6 |
EN (قابل بنائیں) |
این سی |
این سی |
دوسرے مائکروکانٹرولرز کے ساتھ بلوٹوتھ ماڈیول HC-05 کے بارے میں مزید معلومات کے ل our ہمارے دوسرے پروجیکٹس کو چیک کریں۔
- آریڈینو کا استعمال کرتے ہوئے بلوٹوت کنٹرول شدہ کھلونا کار
- بلوٹوتھ 8051 استعمال کرکے ہوم کنٹرول آٹومیشن سسٹم
- راسبیری پائ کا استعمال کرتے ہوئے صوتی کنٹرول شدہ لائٹس
- ایردوینو اور پروسیسنگ کا استعمال کرتے ہوئے اسمارٹ فون کنٹرول ایف ایم ریڈیو
- جی سینسر اور ارڈینو کا استعمال کرتے ہوئے موبائل فون کنٹرول روبوٹ کار
بلوٹوت مواصلت کے لئے پروگرامنگ پی آئی سی مائکرو قابو۔
تمام ماڈیولز (ADC ، ٹائمر ، PWM) کی طرح ہمیں بھی اپنے بلوٹوتھ ماڈیول کو ابتدا کرنا چاہئے۔ ابتدا UART ابتدائیہ کی طرح ہوگی لیکن ہمیں بلوٹوتھ کو اپنے PIC16F877A MCU کے ساتھ بے عیب کام کرنے کے ل some کچھ تبدیلیاں کرنے کی ضرورت ہے ۔ آئیے کنفیگریشن بٹس کی وضاحت کریں اور بلوٹوتھ انیشلائزیشن فنکشن کے ساتھ شروع کریں۔
بلوٹوتھ شروع کرنا:
مارکیٹ میں لگ بھگ تمام بلوٹوتھ ماڈیولز ، جو بہت اہم ہے ، آپ اپنے بوڈ کی شرح کو بلوٹوتھ ماڈیولز کے برابر بناتے ہیں جو آپ کی شرح کو چلاتے ہیں ، یہاں ہم ایس پی بی آر جی = 129 طے کرتے ہیں کیونکہ ہم 20 میگا ہرٹز گھڑی کی فریکوئنسی پر کام کر رہے ہیں۔ بوڈ ریٹ کے طور پر 9600 لہذا مذکورہ ابتدا صرف بلوٹوتھ ماڈیولز کے لئے کام کرے گی جو 9600 بوڈ ریٹ پر کام کرتے ہیں۔ تیز رفتار بوڈ ریٹ بٹ بی آر جی ایچ کو فعال کرنا بھی لازمی ہے۔ اس سے باؤڈ کی صحیح شرح طے کرنے میں مدد ملے گی۔
// ****** بلوٹوتھ کو ابتداء کریں یو ایس اے آر ٹی کا استعمال کرتے ہوئے ******** // باطل ابتدائی_بلیوٹوت () {// RX اور TX کی پنوں کو طے کریں // TRISC6 = 1؛ TRISC7 = 1؛ // ڈیٹاشیٹ (pg114) // نظر کی میز کا استعمال کرتے ہوئے بوڈ کی شرح طے کریں // BRGH = 1؛ // بلوٹوتھ کے ساتھ ہمیشہ ہائی اسپیڈ باؤڈ ریٹ استعمال کریں ورنہ یہ ایس پی بی آر = 129 کے کام نہیں کرے گا۔ // Asyc کو چالو کریں۔ سیریل پورٹ // SYNC = 0؛ اسپین = 1؛ // 8 بٹ استقبال اور ٹرانسمیشن سیٹ کریں RX9 = 0؛ TX9 = 0؛ // ٹرانسمیشن اور استقبال کو قابل بنائیں // TXEN = 1؛ CREN = 1؛ // عالمی اور پی ایچ کو فعال کریں۔ رکاوٹیں // GIE = 1؛ پیئآئ = 1؛ // Tx کیلئے رکاوٹوں کو چالو کریں۔ اور Rx.// RCIE = 1؛ TXIE = 1؛ } // ___________ BT شروع _____________ //
اگر آپ کے پاس بی ٹی ماڈیول ہے جو مختلف باؤڈ ریٹ سے چلتا ہے ، تو آپ ایس پی بی آر جی کے ل your اپنی قیمت معلوم کرنے کے لئے نیچے دیئے گئے لنچ ٹیبل کا حوالہ دے سکتے ہیں۔
بلوٹوتھ میں ڈیٹا لوڈ ہو رہا ہے:
ایک بار جب فنکشن شروع ہوجاتا ہے تو ہمارے پاس بلوٹوتھ سے ڈیٹا بھیجنے اور وصول کرنے کے لئے ہمارے پروگرام میں تین فنکشن ہوتے ہیں۔ UART کے برعکس ہمارے پاس اعداد و شمار کو منتقل یا حاصل کرنے سے پہلے ہمارے پاس کچھ چیزیں غور کرنے کی ہیں۔ بلوٹوتھ ماڈیول میں اس کے اندر ٹرانسمٹ اور رسیو بفر ہوتا ہے ، اس کو بھیجا گیا ڈیٹا Tx بفر میں اسٹور کیا جائے گا۔ اس اعداد و شمار کی نشریات نہیں کی جاسکتی ہیں (آن ایئر بھیجی جاتی ہیں) جب تک کہ ماڈیول کو کیریج ریٹرن نہ بھیجا جائے۔ لہذا اعداد و شمار کو منتقل کرنے کے ل we ہمیں بی ٹی کے Rx بفر کو لوڈ کرنا ہوگا اور پھر اسے کیریج ریٹرن کا استعمال کرکے نشر کرنا ہوگا۔
مندرجہ بالا کام آسانی سے مندرجہ ذیل افعال کو استعمال کرکے حاصل کیا جاسکتا ہے۔ جب ہمیں صرف ایک ہی کردار Rx بفر میں لوڈ کرنا ہو تو نیچے دی گئی فنکشن استعمال کی جاسکتی ہے ۔ ہم ڈیٹا کو TXREG رجسٹر میں لوڈ کرتے ہیں اور انتظار کرتے ہیں جب تک کہ اس پر عملدرآمد نہ ہونے پر فلیگ TXIF اور TRMT پر چیک کریں جبکہ لوپس استعمال کریں۔
// بلوٹوتھ Rx لوڈ کرنے کا کام۔ ایک چار کے ساتھ بفر ۔// باطل BT_load_char (چار بائٹ) {TXREG = بائٹ؛ جبکہ (! TXIF)؛ جبکہ (! TRMT)؛ function // تقریب کا اختتام //
بلوٹوتھ ماڈیول کے Rx بفر میں سٹرنگ لوڈ کرنے کیلئے فنکشن کے نیچے کا استعمال کیا جاتا ہے ۔ سٹرنگ کو حروف میں تقسیم کیا گیا ہے اور ہر ایک کردار کو BT_load_char () فنکشن میں بھیجا گیا ہے۔
// بلوٹوتھ Rx کو لوڈ کرنے کا فنکشن۔ تار کے ساتھ بفر // باطل BT_load_string (چار * سٹرنگ) {جبکہ (* تار) BT_load_char (* سٹرنگ ++)؛ function // تقریب کا اختتام /
بلوٹوتھ پر ڈیٹا کی نشریات:
ابھی تک ہم نے ہائی کورٹ -05 ماڈیول کے Rx بفر میں ابھی معلومات منتقل کی ہیں۔ اب ہمیں اس فنکشن کو استعمال کرکے اعداد و شمار کو نشر کرنے کی ہدایت کرنا ہوگی۔
// RX سے ڈیٹا کو براڈکاسٹ کرنے کا فنکشن۔ بفر // باطل نشریاتی_بیٹی () {TXREG = 13؛ __Dlay_ms (500)؛ function // تقریب کا اختتام //
اس فنکشن میں ہم 13 قیمت TXREG رجسٹر میں بھیجتے ہیں۔ اس قدر 13 میں سواری کے سوا کچھ نہیں ہے (ASCII چارٹ دیکھیں)۔ پھر براڈکاسٹر شروع ہونے کے لئے تھوڑا سا تاخیر پیدا ہوتا ہے۔
بلوٹوتھ سے ڈیٹا پڑھنا:
UART کی طرح ، ذیل میں فنکشن بلوٹوتھ سے ڈیٹا پڑھنے کے لئے استعمال ہوتا ہے
// BT کے Rx.buffer سے چارٹ حاصل کرنے کا کام // چار BT_get_char (باطل) {اگر (OERR) // اوور رن کی خرابی کی جانچ پڑتال کریں {CREN = 0؛ CREN = 1؛ // ری سیٹ کریں CREN} if (RCIF == 1) // اگر صارف نے چار بھیجا ہے تو چار (ASCII ویلیو) واپس کریں {جبکہ (! RCIF)؛ آر سی آر جی واپس کریں؛ // دوسری // اگر صارف نے پیغام نہیں بھیجا ہے تو 0 ریٹرن 0؛ function // تقریب کا اختتام /
اگر صارف نے کوئی ڈیٹا بھیجا ہے تو ، اس فنکشن سے وہ خاص ڈیٹا واپس آجائے گا جو متغیر اور عمل میں محفوظ کیا جاسکتا ہے۔ اگر صارف نے کچھ نہیں بھیجا تو فنکشن صفر ہو جائے گا۔
مرکزی تقریب:
ہم نے مندرجہ بالا تمام وضاحت شدہ افعال کا استعمال اندر یا مرکزی تقریب میں کیا ہے۔ ہم کچھ تعارفی پیغام بھیجتے ہیں اور پھر صارف کے لئے کچھ اقدار بھیجنے کا انتظار کرتے ہیں جس کی بنیاد پر ہم اپنے پرفیک بورڈ پر RB3 پن سے منسلک RED لیڈ لائٹ ٹوگل کرتے ہیں ۔
باطل اہم (باطل) {// اسکوپ متغیر اعلانات // int get_value؛ // متغیر اعلان کا اختتام // // I / O اعلانات // TRISB3 = 0؛ // I / O اعلامیہ کا اختتام // ابتداء_ بلوٹوت ()؛ // اجازت دیتا ہے کہ ہمارا بلوٹوتھ عمل کیلئے تیار ہوجائے // اقتدار میں آنے کے بعد کچھ تعارفی میسج دکھائیں // BT_load_string ("بلوٹوتھ ابتداء اور تیار")؛ براڈکاسٹ_بیٹی ()؛ BT_load_string ("ایل ای ڈی کو چالو کرنے کے لئے 1 دبائیں")؛ براڈکاسٹ_بیٹی ()؛ BT_load_string ("ایل ای ڈی کو بند کرنے کے لئے 0 دبائیں")؛ براڈکاسٹ_بیٹی ()؛ // پیغام کا اختتام // جبکہ (1) // لامحدود lop {get_value = BT_get_char ()؛ // چار پڑھیں۔ BT کے ذریعہ موصول ہوا // اگر ہمیں '0' // موصول ہوتا ہے اگر (get_value == '0') B RB3 = 0؛ BT_load_string ("ایل ای ڈی بند")؛ براڈکاسٹ_بیٹی ()؛ } // اگر ہمیں '1' // موصول ہوتا ہے اگر (get_value == '1') {RB3 = 1؛ BT_load_string ("ایل ای ڈی کو آن کیا")؛ براڈکاسٹ_بیٹی ()؛}}}
ذیل میں کوڈ سیکشن میں مکمل پروگرام چیک کریں ۔
سرکٹ ڈایاگرام اور ہارڈ ویئر سیٹ اپ:
اس پروجیکٹ کے لئے سرکٹ رابطے بہت آسان ہیں ، ہمیں صرف بلوٹوتھ ماڈیول کو طاقتور بنانا ہے اور TX کو PIC کے 26 ویں پن اور Rx کو PIC کے 25 ویں پن سے جوڑنا ہے جیسا کہ ذیل میں سرکٹ ڈایاگرام میں دکھایا گیا ہے:
اب ہم ہارڈ ویئر کی طرف بڑھیں۔ ایک بار جب کنکشن ہوجائے تو اسے کچھ اس طرح نظر آنا چاہئے۔
بلوٹوت موبائل ایپلیکیشن کا استعمال کرتے ہوئے ایل ای ڈی کو کنٹرول کرنا:
اب ہم اپنی اینڈرائیڈ ایپلیکیشن تیار کریں۔ ایپ اسٹور سے بلوٹوتھ ٹرمینل نامی ایپلی کیشن ڈاؤن لوڈ کریں یا اس لنک کو استعمال کریں۔ ایک بار جب ایپلی کیشن ڈاؤن لوڈ اور انسٹال ہوجائے تو ، اپنے PIC پرف بورڈ کو آن کریں جو ہم شروع سے ہی استعمال کررہے ہیں۔ آپ کے بلوٹوتھ ماڈیول پر چھوٹی ایل ای ڈی روشنی چمکتی رہتی ہے اس بات کی نشاندہی کرنے کے لئے کہ اس پر چلتی ہے اور کنکشن قائم کرنے کے لئے سرگرمی سے فون کی تلاش ہے۔
اب اپنے فون کی بلوٹوتھ سیٹنگ میں جائیں اور نئے بلوٹوتھ ڈیوائس کو تلاش کریں جس کے ل H آپ اپنے ماڈیول کی بنیاد پر HC-05 یا HC-06 نام دیکھ سکیں۔ میں HC-06 استعمال کر رہا ہوں لہذا میرا فون مندرجہ ذیل ڈسپلے کو ظاہر کرتا ہے۔ پھر اس سے جدا کرنے کی کوشش کریں اور اس سے پاس ورڈ طلب ہوگا۔ پاس ورڈ کو 1234 کے طور پر درج کریں (کچھ کے ل 00 یہ 0000 ہوسکتا ہے) اور ذیل میں دکھائے جانے والے ٹھیک پر کلک کریں۔
پارنگ کامیاب ہونے کے بعد ، ہم نے ابھی نصب کردہ بلوٹوتھ ٹرمینل ایپلی کیشن کو کھولیں۔ ترتیبات کے اختیارات میں داخل ہوں اور ذیل میں دکھائے گئے مطابق "ایک آلہ سے منسلک کریں - محفوظ" منتخب کریں ۔ اس سے ایک پاپ باکس کھل جائے گا جہاں ہمارے تمام جوڑے والے آلات درج ذیل میں درج ہوں گے۔ HC-05 یا HC-06 ماڈیول منتخب کریں۔
ایک بار جب رابطہ قائم ہوجاتا ہے تو ، بلوٹوتھ ماڈیول کی روشنی جو اب تک چمک رہی تھی ، اس بات کی نشاندہی کرنے کے لئے مستحکم ہونا چاہئے کہ اس نے کامیابی سے آپ کے موبائل سے رابطہ قائم کرلیا ہے۔ اور ہمیں اپنے پروگرام سے تعارفی پیغام حاصل کرنا چاہئے جیسے نیچے دکھایا گیا ہے۔
اب ایل ای ڈی لائٹ آن کرنے کے لئے '1' دبائیں اور لائٹ کو آف کرنے کے لئے '0' دبائیں۔ مکمل کام ویڈیو میں دکھایا جائے گا ۔ آپ کی موبائل اسکرین کچھ اس طرح نظر آئے گی جو نیچے دکھایا گیا ہے۔
تو یہی بات ہے ، ہم نے یہ سیکھا ہے کہ بلوٹوتھ ماڈیول کو ہمارے PIC مائکرو قابو پانے والے کے ساتھ انٹرفیس کرنے کا طریقہ سیکھا ہے ، اب اس کی مدد سے ہم وائرلیس منصوبوں کو آزما سکتے ہیں۔ بہت سارے پروجیکٹس ہیں جو بلوٹوتھ استعمال کرتے ہیں ، آپ ان کو آزما سکتے ہیں یا اپنا آئیڈیا لے کر آسکتے ہیں اور ان کو کمنٹ سیکشن میں شیئر کرسکتے ہیں۔ ہمارے پچھلے پروجیکٹ کو بلوٹوتھ ٹرمینل ایپ اور ایچ سی -05 جیسے آریڈینو کا استعمال کرتے ہوئے اسمارٹ فون کنٹرول کور آٹومیشن اور اسمارٹ فون کنٹرولڈ ڈیجیٹل کوڈ لاک سے بھی چیک کریں۔
امید ہے کہ اس ٹیوٹوریل نے آپ کی مدد کی! اگر آپ کہیں پھنس گئے ہیں تو ، براہ کرم کمنٹ سیکشن کا استعمال کریں۔