- A2DP
- ہیڈ لیس سیٹ اپ کے لئے راسبیری پائی کی تیاری
- ضروریات راسبیری پائی میں نصب کی جائیں
- راسبیری پائ کے ساتھ بلوٹوتھ آلہ جوڑا بنا رہا ہے
- ازگر اسکرپٹ کے ذریعہ بلوٹوتھ پیرنگ عمل کو خودکار کریں
- ایک بٹن کے ذریعہ بلوٹوت جوڑی کی اسکرپٹ کو متحرک کریں
- سرکٹ ڈایاگرام
- بوٹ پر بلوٹوتھ اسپیکر ازگر پروگرام شروع کرنے کے لئے کرون جاب سیٹ اپ کریں
راسبیری پِی ایک کھجور کے سائز کا کمپیوٹر ہے جس میں بلٹ بلوٹوتھ ، وائی فائی ، ایتھرنیٹ پورٹ ، کیمرہ پورٹ وغیرہ موجود ہیں جو آئی او ٹی پر مبنی ایمبیڈڈ ایپلی کیشنز کے ل most یہ سب سے موزوں مائکرو قابو رکھتا ہے۔ یہ پرنٹ سرور ، میڈیا سرور ، ویب سرور وغیرہ جیسے بہت سارے سرورز بنانے کے لئے بھی استعمال کیا جاتا ہے۔ آج ہم یہ سیکھیں گے کہ کس طرح ایک راسبیری پائی 3.5 ملی میٹر جیک والے عام اسپیکر کو وائرلیس بلوٹوت اسپیکر میں تبدیل کرسکتا ہے۔
اس پوسٹ میں ہم A2DP ، لینکس اور آڈیو کوڈیک کی طاقت کو فیوز کرتے ہوئے راسبیری پیس پر مبنی بلوٹوت اسپیکر بنائیں گے تاکہ ڈیٹا پیکیٹ کو آڈیو سورس سے آڈیو سنک میں وائرلیس طور پر منتقل کیا جاسکے۔ ایسا کرنے کے ل we ہم تھوڑا سا لینکس سسٹم ہیک کرنے جارہے ہیں اور کوش کا ایک ٹکڑا باش اور ازگر میں لکھیں گے اور ہم کاروبار میں ہوں گے۔
A2DP
A2DP اعلی درجے کی آڈیو تقسیم پروفائل کا مخفف ہے ۔ یہ ایک پروٹوکول ہے جو تقریبا تمام بلوٹوتھ فعال آلات میں موجود ہے۔ یہ آواز کو ایک آلہ سے دوسرے آلے تک منتقل کرنے کی راہ ہموار کرتا ہے بشرطیکہ وہ دونوں بلوٹوتھ کے توسط سے ایک دوسرے سے جڑے ہوں۔ A2dp لیٹپنسی کو کم کرنے کے ل transmission ٹرانسمیشن سے قبل آڈیو پیکٹوں کو کمپریس کرنے کے لئے لاقانونی کمپریشن الگورتھم کا استعمال کرتا ہے لیکن اس کمپریشن کی وجہ سے ہونے والے نقصانات انسانی کانوں تک شاید ہی تصور کیا جاسکتے ہیں۔
ہیڈ لیس سیٹ اپ کے لئے راسبیری پائی کی تیاری
راسبیری پائی کو وائرلیس اسپیکر میں تبدیل کرنے کے ل first ، سب سے پہلے او ایس (راسپیئن اسٹریچ) کو راسبیری پی آئی ایسڈی کارڈ میں انسٹال کریں ، اگر آپ راسبیری پائی کے لئے نئے ہیں تو اس آرٹیکل پر عمل کریں راسبیری پائی سے شروعات کریں۔
ہم میں سے بیشتر کے پاس رسبری پائ اور لیپ ٹاپ ہیں لیکن ان کے پاس مانیٹر کی کمی ہے۔ لیکن ایس ایس ایچ کو راسبیری پائی میں بھیجنے کے ل we ہم چاہتے ہیں کہ ایک ہی نیٹ ورک میں جڑ جائے جس میں ہمارا کمپیوٹر جڑا ہوا ہے۔ ہمیں پائ سے منسلک مانیٹر کی ضرورت ہے جس کے ذریعے ہم وائی فائی کو منتخب کرسکتے ہیں اور منسلک ہو سکتے ہیں؟
اصل میں ہم ایسا نہیں کرتے ہیں۔ راسبیری پائی کو wpa_supplicant.conf نامی فائل میں اندراج شامل کرکے Wi-Fi سے منسلک کیا جاسکتا ہے۔
ایسا کرنے کے ل the ، SD کارڈ کو کمپیوٹر سے مربوط کریں اور فائل rootfs / etc / wpa_supplicant / wpa_supplicant.conf کھولیں اور اسی میں درج ذیل اندراج شامل کریں۔ ایڈمنسٹریٹر (روٹ) مراعات کے ساتھ فائل کھولنا نہ بھولیں۔
نیٹ ورک = {ssid = "wifi_ssid" psk = "wifi_passkey" key_mgmt = WPA-PSK}
اندراج اس سے ملتی جلتی نظر آنی چاہئے۔
مذکورہ بالا اندراج سے ہمیں وائی فائی سے منسلک ہونا چاہئے لیکن یہ راسبیری پائی اور کمپیوٹر کے مابین ایس ایس ایچ کنکشن بنانے اور اسے برقرار رکھنے کے لئے کافی نہیں ہے۔ پہلے سے طے شدہ SSH کے ذریعے رسبری PI غیر فعال ہے، تو اس کو چالو کرنے کے لئے، نامی ایک خالی فائل بنانے SSH بوٹ ڈائریکٹری میں.
اب راسبیری پائی کو فنی طور پر قابل بنایا گیا ہے تاکہ وہ دور سے ہی رسائی حاصل کرسکے۔ رسبری پائ کو طاقت کے منبع سے مربوط کریں۔ اب پائی خود بخود وائی فائی سے جڑ جائے گی لیکن اس میں ایس ایس ایچ کے ل its اس کا IP ایڈریس ضروری ہے۔ اسے ڈھونڈنے کے متعدد طریقے ہیں۔ میں nmap کمانڈ استعمال کرتا ہوں
nmap -sn / 24
یہ کمانڈ ہمارے نیٹ ورک میں جڑے ہوئے تمام آلات کے IP پتے ہمیں فراہم کرے گی۔ مثال کے طور پر،
ان میں سے ایک رسبری پائی کا ہے۔ اب ہم pi کا IP پتہ جانتے ہیں آئیے ہم اس سے رابطہ کریں
ssh pi @ pi_ip_address
راسبیری پِی کے بغیر ہی سرخی کے ساتھ شروع کرنے کے اور بھی طریقے ہیں ، وہی سیکھنے کے ل link لنک کو چیک کریں۔
ضروریات راسبیری پائی میں نصب کی جائیں
بلیو زیڈ
بلیو زیڈ ڈیفالٹ ایپلی کیشن ہے جو راسپیئن ڈسٹرو کے ساتھ آتی ہے۔ یہ سسٹم کے بلوٹوتھ کنٹرولز تک رسائی کے ل. استعمال ہوتا ہے۔ یہ انسٹال بھی کیا جاسکتا ہے اگر آپ کے پاس یہ آپ کے پاس دستیاب نہیں ہے تو صرف وجوہات کی بنا پر۔
کمانڈ کے نیچے بلوٹوت انٹرفیس ایپلی کیشن کو ہمارے pi میں انسٹال کیا جاتا ہے۔
بلیوز انسٹال کریں
پلس آڈیو
پلس آڈیو ایک ایسی ایپلی کیشن ہے جو کمپیوٹر ڈیٹا کے بائٹس کو انسانی تاثر میں تبدیل کرتی ہے۔ اسے میوزک پلیئر بھی کہا جاتا ہے۔ پلس آڈیو درخواست پلگ ان میں A2DP پروٹوکول دستیاب ہے۔ تو آئیے ، نیچے دیئے گئے کمانڈ کا استعمال کرکے پلس آڈیو سے متعلق تمام ایپلی کیشنز انسٹال کریں۔
پلس آڈیو انسٹال کریں۔
راسبیری پائ کے ساتھ بلوٹوتھ آلہ جوڑا بنا رہا ہے
کمانڈ کا استعمال کرتے ہوئے بلیو زیڈ ایپلیکیشن کھولیں
بلوٹوتھکیل
A بلوٹوت ایجنٹ ایک بروکر دو بلوٹوت کے درمیان مذاکرات آلات چالو حالت میں ہے اور ان کے درمیان ایک کنکشن کی ابتدا کرتا ہے. بلوٹوتھ ایجنٹوں کی مختلف اقسام ہیں۔ ہم جس کا استعمال کریں گے وہ NoInputNoOutput ایجنٹ ہے کیونکہ یہ ہمیں صارف کی مداخلت کے بغیر رابطہ قائم کرنے دیتا ہے۔ تو آئیے مندرجہ ذیل احکامات چلاتے ہوئے ایجنٹ کا آغاز کریں ۔
ایجنٹ NoInputNoOutput
آپ کو جواب کے بطور " ایجنٹ رجسٹرڈ " پیغام ملنا چاہئے ۔ اب جب کہ ہمارا ایجنٹ رجسٹرڈ ہے ، آئیے ہم اسے ڈیفالٹ بنادیں ۔
پہلے سے طے شدہ ایجنٹ
جس کے لئے جواب "ڈیفالٹ ایجنٹ کی درخواست کامیاب" ہونا چاہئے
اب ہم اپنے آلے کو قابل دریافت بنائیں
قابل دریافت
جس کے لئے جواب "کامیاب پر قابل دریافت ہونا چاہئے" ہونا چاہئے
اب اپنے موبائل فون یا کمپیوٹر کو راسبیری پائی سے جوڑنے کی کوشش کریں
درخواست ہمیں خدمات کو اختیار دینے کا مطالبہ کرے گی اور ہمیں ان کو کرنے کی ضرورت نہیں ہے۔ اس کے بجائے ہم صرف ڈیوائس پر بھروسہ کریں گے اور اسے جوڑیں گے۔ آلہ پر بھروسہ کرنا بہت ضروری ہے کیونکہ جب قابل اعتماد آلہ pi کے ساتھ رابطہ قائم کرنے کی کوشش کرتا ہے تو ، یہ صارف کی مداخلت کے بغیر اسی کی اجازت دیتا ہے۔
اعتماد سے منسلک
ان تمام کارروائیوں کے بعد ، آپ کا ٹرمینل اس جیسا نظر آنا چاہئے۔
ہاں! ہم نے اپنا فون بلوٹوت کے ذریعہ راسبیری پائی سے جوڑا ہے۔ لیکن کیا یہ کافی ہے؟ ظاہر ہے نہیں ، ہم چاہتے ہیں کہ ہمارے صوتی ڈیٹا پیکٹ فون سے پائی تک اور پھر pi سے اسپیکر کے پاس منتقل ہوں جو PI کے آڈیو پورٹ سے منسلک ہیں۔
آئیے یہ یقینی بنائیں کہ ہم اپنا فون پلس آڈیو درخواست کے آڈیو ماخذ میں درج ذیل کمانڈ کو چلاتے ہوئے درج ہیں۔
pactl list مختصر
یہ بھری ہوئی آواز کے تمام ماڈیولز ، آڈیو ڈوب اور آڈیو ذرائع کو فہرست میں لائے گا
سیریل نمبر 30 کے خلاف قدروں کو دیکھیں ۔ بلیوز_سورس کا مطلب آڈیو کا ذریعہ بلیو زیڈ ایپلیکیشن کے ذریعے ہے جو بلوٹوتھ ہے۔ آلے کے میک ایڈریس کو چیک کریں جو بلیوز_سورس اور a2dp_source کے درمیان ہے اور اس ایڈریس کے درمیان جو آپ کے پاس بلیو زیڈ ایپلیکیشن میں ہے۔ میرے معاملے میں یہ بلیوز_سورس.3 سی_28_6D_FD_65_3D.a2dp_source ہے جو بلیو زیڈ ایپلیکیشن کی طرح ہے۔ اب اگر آپ آلہ سے کوئی گانا چلاتے ہیں جو pi سے منسلک ہوتا ہے تو اس کو اسپیکر تک پہنچایا جانا چاہئے جو راسبیری pi کے آڈیو پورٹ سے جڑا ہوا ہے۔
یوریکا! ہم نے کامیابی کے ساتھ بلوٹوت اسپیکر بنایا ہے ۔ ہم نے آواز کو تیز کردیا لیکن یہ سب کچھ نہیں ہے۔ ہم مذکورہ بالا سارے اقدامات دستی طور پر نہیں کرسکتے ہیں لہذا ہم انہیں متوقع اسکرپٹ اور انٹرفیس پائ کا استعمال کرتے ہوئے خود کار طریقے سے چلائیں جس پر سوئچ ہوتا ہے جب دباؤ پڑتا ہے تو ، پائوں کو آلات کے ساتھ جوڑ دیتے ہیں ۔
ٹھنڈا۔ آئیے اب کاروبار پر اتریں۔
ازگر اسکرپٹ کے ذریعہ بلوٹوتھ پیرنگ عمل کو خودکار کریں
توقع اسکرپٹس بش اسکرپٹ کی طرح ہیں لیکن خودکار ہیں۔ یہ ٹرمینل میں دیئے گئے لفظ کی تلاش کرتا ہے اور جب وہی آتا ہے تو ، اسکرپٹ کے مطابق کمانڈ بھیجتا ہے۔ آئیے جوڑا بنانے کے عمل کو خود کار بنائیں۔ جوڑی_بلیوٹوتھ_ڈیوائس.ایکسپیکٹ نامی ایک فائل بنائیں
ٹائم آؤٹ 30 اسپان بلوٹوتکیل توقع "#" بھیجیں "ایجنٹ کو \ r" توقع "سے دور رکھیں؟" بھیج "" \ r "توقع" # "بھیجیں" ایجنٹ NoInputNoOutput \ r "توقع" ایجنٹ رجسٹرڈ "بھیجیں" \ r "توقع" # "بھیجیں" پہلے سے طے شدہ-ایجنٹ expect r "توقع" طے شدہ ایجنٹ کی درخواست کامیاب ہے "بھیج" \ r "توقع" # "بھیجیں disc r پر دریافت کی توقع" کی اجازت "بھیجیں" ہاں \ r "بھیجیں" باہر نکلیں \ r "
کوڈ کو کاپی کریں اور فائل میں وہی پیسٹ کریں۔ یہ صرف خود بخود ہوجاتا ہے ، وہ اعمال جو ہم نے موبائل کو رسبری پائی کے ساتھ جوڑتے وقت کیا تھا۔ یہ صرف آلے کو جڑنے دیتا ہے لیکن اس پر بھروسہ نہیں کرتا ہے ۔ کسی آلہ پر اعتماد کرنے کے لئے ہمیں اس کے میک ایڈریس کی ضرورت ہے۔ تو ہم اس متوقع اسکرپٹ کی آؤٹ پٹ کو کسی لاگ فائل میں پرنٹ کریں گے جہاں سے میک ایڈریس کو گرفت میں لایا جاسکتا ہے۔
grep -Pom 1 "(؟ <= آلہ). * (؟ = منسلک)"
مذکورہ بالا کمانڈ "ڈیوائس" اور "منسلک" اسٹرنگ کے بیچ قیمت کو پرنٹ کرتا ہے۔ ہمارے معاملے میں (ڈیوائس 3C: 28: 6D: FD: 65: 3D منسلک: نہیں) یہ آلہ کا میک ایڈریس ہے۔
آئیے ہم ایک توقعی اسکرپٹ لکھتے ہیں جو میک ایڈریس میں پہلی دلیل اور اعتماد کے طور پر لے گا اور اس ڈیوائس سے منسلک ہوگا۔
trust_and_connect.expect نامی ایک فائل بنائیں
30 ٹائم آؤٹ سیٹ سپون bluetoothctl توقع "#" بھیجیں "\ R آف ایجنٹ" توقع "؟ egistered" بھیجیں "\ R" توقع "#" بھیجیں "\ R پر ایجنٹ" توقع "ایجنٹ رجسٹرڈ" بھیجیں "\ R" توقع "# " بھیجیں" پہلے سے طے شدہ-ایجنٹ expect r " توقع" طے شدہ ایجنٹ کی درخواست کامیاب " بھیج" \ r " توقع" # " بھیجیں" اعتماد trust r " توقع" تبدیل " بھیجیں" متصل " بھیجیں" رابطہ "کامیاب" بھیجیں " توقع exit r "
مذکورہ کوڈ کو اس فائل میں کاپی کریں۔ یہ اعتماد اور منسلک حصہ خود بخود کرتا ہے۔
آئیے اب ہم یہ سب ایک ازگر کی اسکرپٹ فائل میں ڈالتے ہیں تاکہ جوڑا بنانے کا پورا عمل خودکار ہوسکے۔
آئیے ہم ایک فائل جوڑی_ اور_ٹسٹ_بلیوٹوتھ_ڈیوائس.شیس بنائیں
سی ڈی $ (نام $ 0) گونج "جوڑا…" جوڑی_بلیوٹوتھ_ڈیوایس.یکسپکٹ> توقع_سکرپٹ.لاگ chmod 777 उम्मीद_script.log نیند 2 کی بازگشت کریں "اعتماد اور منسلک ہونا.." device_mac_address = $ (بلی کی توقع_اسکرپٹ_لاگ - GRP -Pom 1 " (؟ <= ڈیوائس)۔ * (؟ = منسلک) ") ایکو میک ایڈریس $ device_mac_adress if] ہے؛ پھر trust_and_connect.expect $ device_mac_address توقع باقی بازگشت "کوئی آلہ منسلک" فائی RM expect_script.log
تو باز اسکرپٹ ،
- ایک توقعی اسکرپٹ (جس کی آؤٹ پٹ امید / اسکرپٹ.لاگ کے نام سے کسی فائل پر چھاپ جائے گی) کال کرتی ہے ،
- NoInputNo آؤٹ پٹ ایجنٹ کو شروع کرتا ہے
- اسے ڈیفالٹ ایجنٹ بناتا ہے
- پائی کی دریافت کو چالو کرتا ہے
- کسی کے متصل ہونے کا انتظار کرتا ہے اور باہر نکل جاتا ہے جب کوئی کرتا ہے یا ٹائم آؤٹ ہوتا ہے
- 2 سیکنڈ کے لئے سو
- ڈیوائس میک ایڈریس کے لئے توقع_اسکرپٹ.لاگ فائل پکڑو
- اگر میک_ڈریس کو کالعدم قرار دیتا ہے تو آلہ پر بھروسہ اور جوڑتا ہے
- توقع کی فائل کو ہٹا دیتا ہے
ایک بٹن کے ذریعہ بلوٹوت جوڑی کی اسکرپٹ کو متحرک کریں
اب ہمارے پاس جوڑے کے عمل کو خودکار کرنے کے لئے اسکرپٹ موجود ہے ۔ لیکن جب بھی صارف چاہے تو اس اسکرپٹ کو سہولت سے چلنا ہے۔ لہذا اس اسکرپٹ کو فزیکل بٹن کے ساتھ جوڑیں تاکہ بٹن دبانے پر ہر بار اس اسکرپٹ کا نام لیا جائے۔ ایمبیڈڈ پروگرامنگ کا ایک اہم حصہ رکاوٹ ہے۔ شروعات کرنے والوں کے لئے ، جب مداخلت کا احساس ہوتا ہے تو اس نے پروگرام کا باقاعدہ معمول بنادیا اور پہلے سے طے شدہ ISR چلاتا ہے جسے انٹراپٹ سروس روٹین کے نام سے جانا جاتا ہے۔
تو آئیے ہم پش بٹن کو جی پییو پن 11 سے مربوط کریں اور اسی کو آئی ایس آر تفویض کریں ۔ آئی ایس آر کے اندر ، ہم اسکرپٹ کو کال کریں گے۔
آئیے بلوٹوتھ اسپیکر ڈاٹ کام.پیئ نامی ایک ازگر کی فائل بنائیں اور اس میں نیچے کا کوڈ شامل کریں۔ میں نے پروگرام میں تبصرے شامل کیے ہیں لہذا اگر آپ اس کوڈ کو استعمال کرتے ہیں تو ، آپ کے پاس اب بھی موجود ہیں
# امپورٹ مطلوبہ پیکیجز درآمدی پروسیسرس درآمد RPi.GPIO بطور gpio درآمد وقت درآمد OS لاگنگ جوڑی_پین = 11 # فائل ڈائرکٹری سے دیکھیں جہاں سے ازگر کی اسکرپٹ چلتی ہے فائل ڈائرکٹری = os.path.dirname (os.path.relpath (__ file__)) # لاگ فائل کے مقام کو اسی طرح سیٹ کریں جس طرح ازگر اسکرپٹ لوک لاگ فائل = فائل ڈائرکٹری + "/ بلوٹوت اسپیکر.لاگ " لاگنگ ۔بایسکونفیگ (فائل کا نام = لاگ فائل ، فائل موڈ = 'ڈبلیو' ، فارمیٹ = '٪ (نام) ایس -٪ (سطح کا نام) -٪ (پیغام) s '، سطح = لاگنگ۔ INFO) Def جوڑایو ڈیوائس (چینل): # 11 پن کے لئے آئی ایس آر ("جوڑی کے منتظر") لاگنگ.info ("جوڑی کے منتظر") آؤٹ پٹ = subprocess.call () gpio.setmode (gpio.بورڈ) gpio.setup (جوڑی_پین ، gpio.IN ، پل_ اپ_ ڈاؤن = gpio.PUD_UP) کوشش کریں: # جوڑی_پین کو ایک رکاوٹ پن کے طور پر سیٹ کریں جو گرتے ہوئے کنارے کا پتہ لگاتا ہے اور جب ایسا ہوتا ہے تو ، جوڑا نیو ڈیوائس فنکشن gpio.add_event_detect (جوڑی_پین ، gpio.FAL ، فون) پر کال کریں کال بیک = جوڑی نیوز ڈیوائس ، باؤنس ٹائم = 1000) پرنٹ ("بلوٹوتھ پروگرام شروع ہو چکا ہے") logging.info ("بلوٹوتھ پروگرام شروع ہو چکا ہے") جبکہ سچ ہے: ٹائم ڈراپ (5) سوائے کی بورڈآئنٹرپٹ : gpio.cleanup ()
سرکٹ ڈایاگرام
بلوٹوت کے ذریعہ آڈیو ٹرانسفر کے ل the بلوٹوت جوڑی جوڑنے کے عمل کو متحرک کرنے کے لئے راسبیری پائی کے جی پی آئی او 11 کے ساتھ ایک بٹن کو مربوط کرنے کے لئے نیچے سرکٹ ڈایاگرام ہے ۔
بوٹ پر بلوٹوتھ اسپیکر ازگر پروگرام شروع کرنے کے لئے کرون جاب سیٹ اپ کریں
اب آخر کار ہم ایک کرون ملازمت متعین کریں جو ہر وقت پائی کے جوتوں کے چلتے چلتے یہ ازگر کا پروگرام شروع کردے گا۔
crontab -e
اپنے پسندیدہ ایڈیٹر کو منتخب کریں اور فائل کے آخر میں نیچے والی لائن شامل کریں
@ ریبوٹ ازگر 3 / ہوم / پی پی / بلوئوت- اسپیکر / بلوٹوٹ اسپیکر-main.py
جب بھی پائی شروع ہوجائے گی تو یہ ہمارے ازگر کے پروگرام کو کال کرے گا ۔
اور یہ ہے عقاب اتر گیا ہے۔ آپ نے ہیڈ لیس راسبیری پائ بلوٹوت اسپیکر بنایا ہے۔
اپنے پائ کو دوبارہ شروع کریں ، اپنے فون کو جوڑیں اور آڈیو کو اسٹریم کریں۔:)
اس راسبیری پائی بلوٹوت اسپیکر کے تمام اسکرپٹ گٹ ہب اکاؤنٹ سے ڈاؤن لوڈ کیے جاسکتے ہیں۔ نیچے دی گئی ویڈیو کو بھی چیک کریں ۔