- RDA5807M آایسی
- آئی سی PT2258
- اسکیمیٹک
- ضروری اجزاء
- ہم گوگل اسسٹنٹ سے ڈیٹا کیسے حاصل کر رہے ہیں؟
- مواصلت کے لئے ایڈفریٹ اکاؤنٹ کا قیام
- ایف ایم ریڈیو کے لئے IFTTT بروکر قائم کرنا
- اردوینو کوڈ اور وضاحت
- ارڈینو کا استعمال کرتے ہوئے وائس کنٹرولڈ ایف ایم ریڈیو کی جانچ کرنا
- مزید افزودگی
آج کل ، ہم میں سے بیشتر اپنے اسمارٹ فونز کے ساتھ موسیقی سننا پسند کرتے ہیں۔ لیکن کچھ سال پہلے ، معاملہ ایسا نہیں تھا ، اس وقت ، ایف ایم ریڈیو موسیقی ، پوڈکاسٹ ، خبریں اور دیگر سننے کے لئے پہلی پسند تھے۔ آج کل کوئی بھی موسیقی ، خبروں ، اور دوسروں کے لئے ریڈیو کو نہیں سنتا ہے ، دادی اور دادا ایک مستثنیٰ ہیں۔
لہذا ، اس منصوبے میں ، ایف ایم ریڈیو کی پرانی عظمت کو تھوڑا سا زندہ کرنے کے لئے ، میں گوگل معاونت اور مقبول RDA5870M سپر ہیٹروڈین وصول کنندہ آئی سی کا استعمال کرتے ہوئے صوتی کنٹرول والے ایف ایم ریڈیو کی تعمیر کرنے جارہا ہوں ۔
نیز ، ہمارے پچھلے ایف ایم ریڈیو سرکٹس کو بھی چیک کریں:
- اردوینو بیسڈ ایف ایم ریڈیو
- ارڈینو کا استعمال کرتے ہوئے اسمارٹ فون کنٹرول ایف ایم ریڈیو
- سادہ ایف ایم ٹرانسمیٹر سرکٹ
- ایف ایم ٹرانسمیٹر سرکٹ کی تشکیل کیسے کریں
RDA5807M آایسی
آر ڈی اے 5807 ایم ایک بہت ہی جدید سنگل چپ ایف ایم سٹیریو ریڈیو ٹونر ہے جس میں مکمل طور پر مربوط سنتھیزائزر ، اگر سیلیکٹیویٹی ، آر ڈی ایس / آر بی ڈی ایس ، اور ایم پی ایکس کوٹواچک ہے جو 50MHz سے 115MHz تعدد حد کی حمایت کرتا ہے۔ یہ ایک بہت ہی سستا سنگل چپ ایف ایم وصول کنندہ آئی سی ہے جس کو کام کرنے کیلئے بہت کم بیرونی اجزاء کی ضرورت ہوتی ہے۔ یہ آایسی کسی بھی ماسٹر ڈیوائس کے ساتھ بات چیت کرنے کے لئے آئی 2 سی انٹرفیس کا استعمال کرتا ہے ، لہذا یہ ساری خصوصیت اسے پورٹیبل ڈیوائسز کے ل very بہت موزوں بنا دیتی ہے۔
اس آئی سی میں ایک اندرونی آڈیو پروسیسر ہے جو اس کی عمدہ آڈیو کوالٹی کے لئے ذمہ دار ہے۔
کچھ بنیادی خصوصیات میں شامل ہیں۔
- دنیا بھر میں فریکوئنسی بینڈ کے لئے حمایت کرتے ہیں
- آر ڈی ایس / آر بی ڈی ایس کے لئے معاونت
- ڈیجیٹل کم IF ٹونر
- مکمل طور پر مربوط ڈیجیٹل فریکوینسی ترکیب ساز
- ڈیجیٹل آٹو حاصل کنٹرول (AGC)
- باس فروغ
- براہ راست 32Ω مزاحمت لوڈنگ کی حمایت کریں
- انٹیگریٹڈ LDO ریگولیٹر اور بہت کچھ
آپ آر ڈی اے 5807 کا استعمال کرتے ہوئے اس پروجیکٹ اردوینو پر مبنی ایف ایم ریڈیو میں جاکر اس آئی سی کے بارے میں مزید معلومات حاصل کرسکتے ہیں۔
آئی سی PT2258
PT2258 ایک آئی سی ہے جو 6 چینل الیکٹرانک حجم کنٹرولر کے طور پر استعمال کرنے کے لئے بنایا گیا ہے ، یہ آایسی خاص طور پر ملٹی چینل آڈیو ویڈیو ایپلی کیشنز کے لئے تیار کردہ سی ایم او ایس ٹکنالوجی کا استعمال کرتا ہے۔
یہ آایسی 1 ڈی بی / مرحلہ پر 0 سے -79dB کی حدود کے ساتھ I2C کنٹرول انٹرفیس فراہم کرتا ہے اور 20 پن DIP یا SOP پیکیج میں آتا ہے۔
بنیادی باتوں کی خصوصیات میں سے کچھ شامل ہیں۔
- 6 ان پٹ اور آؤٹ پٹ چینلز (5.1 ہوم آڈیو سسٹم کیلئے)
- قابل انتخاب I2C ایڈریس (گل داؤدی سلسلہ درخواست کے لئے)
- اعلی چینل علیحدگی (کم شور کی درخواست کے لئے)
- S / N تناسب> 100dB
- آپریٹنگ وولٹیج 5 سے 9V ہے
ہم نے اس سے پہلے PT2258 ڈیجیٹل آڈیو حجم کنٹرول پروجیکٹ میں اس آایسی کے بارے میں وضاحت کی تھی ۔ اگر آپ اس IC کے بارے میں مزید معلومات حاصل کرنا چاہتے ہیں تو آپ اس پروجیکٹ کو چیک کرسکتے ہیں۔
اسکیمیٹک
گوگل اسسٹنٹ کنٹرولڈ ایف ایم ریڈیو کے لئے سرکٹ ڈایاگرام ذیل میں دیا گیا ہے:
ضروری اجزاء
- نوڈیم سی یو مائکروکنٹرولر۔ 1
- PT2258 ڈیجیٹل حجم کنٹرولر۔ 1
- آر ڈی اے 5807 ایف ایم ریڈیو ماڈیول۔ 1
- ایس پی ڈی ٹی ریلے 6V - 1
- 1n4007 ڈایڈڈ - 1
- سکرو ٹرمینل 5 ملی میٹر 2 - 1
- 3.5 ملی میٹر ہیڈ فون جیک - 1
- منطق کی سطح کنورٹر - 1
- 10K ریزسٹر ، 5٪ - 4
- 150K ریزسٹر ، 5٪ - 4
- 100K ریسٹر ، 5٪ - 2
- 10uF کاپاکیٹر - 6
- 0.1uF کاپاکیٹر - 1
- جمپر وائر - 10
ہم گوگل اسسٹنٹ سے ڈیٹا کیسے حاصل کر رہے ہیں؟
مذکورہ بالا تصویر آپ کو گوگل اسسٹنٹ اور نوڈیم سی یو کے مابین مواصلات کے عمل کا بنیادی اندازہ فراہم کرتی ہے۔
گوگل اسسٹنٹ کو یہ اختیار حاصل ہے کہ وہ یہ کام کرنے کے ل Ad اڈفریٹ IO سرور میں ڈیٹا میں ترمیم کرے کہ ایم کیوٹی ٹی کے ساتھ آئی ایف ٹی ٹی ٹی ایک بروکر کے طور پر کام کر رہا ہے۔
اگر سرور کی طرف (ڈیٹا فروٹ IO) پر کوئی ڈیٹا کی تبدیلی واقع ہوتی ہے تو ، اس کی جھلک نوڈیم سی یو کے اطراف میں ہوتی ہے۔ اس کو حاصل کرنے کے ل you ، آپ کو نیچے دی گئی ہدایات پر عمل کرنے کی ضرورت ہے۔
مواصلت کے لئے ایڈفریٹ اکاؤنٹ کا قیام
پہلے ایڈفریٹ IO اکاؤنٹ بنائیں۔ اپنے اسناد کے ساتھ اڈفریٹ IO میں لاگ ان کریں یا اگر آپ کا اکاؤنٹ نہیں ہے تو سائن اپ کریں۔ ہم نے پہلے الیکٹرک کنٹرولڈ ایل ای ڈی ، راسبیری پی ہوم آٹومیشن ، اور بہت سے دوسرے آئی او ٹی پر مبنی پروجیکٹس کی تعمیر کے ل Ad اڈفریٹ آئی او کا استعمال کیا ہے۔
اڈفریٹ اکاؤنٹ میں لاگ ان کرنے کے بعد ،
ڈیش بورڈز پر کلک کریں ، پھر ایکشن> نیا ڈیش بورڈ بنائیں پر کلک کریں ۔
اگلا ، ہم ایک نیا نام اور اپنے نئے ڈیش بورڈ کی مختصر وضاحت شامل کرنے جارہے ہیں ۔
ڈیش بورڈ بنانے کے بعد ، آپ کو اپنے اکاؤنٹ سے صارف نام اور ایکٹیو کی حاصل کرنے کی ضرورت ہوگی کیونکہ اس میں ارڈینو کوڈ میں ضرورت ہے۔ آپ KEY آئیکون پر کلیک کرکے یہ حاصل کرسکتے ہیں۔
اس کے بعد ، تین بلاکس بنائیں؛ ایک ٹوگل بلاک ، ایک گیج بلاک ، ایک ٹیکسٹ بلاک۔
یہ بلاکس بہت اہم ہیں ، کیونکہ یہ بلاکس گوگل امداد اور نوڈیم سی یو کے مابین رابطے کے ذمہ دار ہیں۔
بلاک بنانے کے ل you ، آپ کو دائیں بائیں کونے میں + نشان پر کلک کرنا ہوگا۔
اگلا ، ہم بلاکس بنانے جا رہے ہیں۔
اگلا ، آپ کو ہر بلاک قائم کرنے کی ضرورت ہے ، اس کے ل you ، آپ کو کسی خاص بلاک پر نشان لگانا ہوگا اور اگلا مرحلہ پر کلک کرنا ہوگا۔
اس پروجیکٹ کے لئے ، ٹوگل بٹن کے سوا کسی بھی سیٹنگ کو تبدیل کرنے کی ضرورت نہیں ہے۔
ٹوگل بٹن میں متن بڑے حروف میں ہے ، آپ کو اسے ایک چھوٹا خط بنانا اور تبدیلیاں اپ ڈیٹ کرنے کی ضرورت ہے ۔
بس ، یہ وہ ساری چیزیں ہیں جن کی آپ کو ایڈفریٹ IO میں ترتیب دینے کی ضرورت ہوتی ہے۔
میری آخری اسکرین اس طرح دکھائی دیتی ہے۔
ایف ایم ریڈیو کے لئے IFTTT بروکر قائم کرنا
ہمیشہ کی طرح ، اگر آپ کا اکاؤنٹ نہیں ہے تو سائن اپ کریں یا اگر آپ کا پہلے سے ہی اکاؤنٹ ہے تو سائن ان کریں۔
اب ، آپ کو ایک ایپلیٹ بنانے کی ضرورت ہے ۔ اس کے لئے ، ذیل مراحل پر عمل کریں:
ایک ایپلیٹ بنانے کے لئے ، اپنے اکاؤنٹ کے آئیکون پر کلک کریں اور بنائیں پر کلک کریں۔
تخلیق اسکرین میں ، کے بعد + آئیکن پر کلک کریں ۔
اس کے بعد ، آپ کو اپنے گوگل اکاؤنٹ تک رسائی کی اجازت دینے کی ضرورت ہے۔
اس کے ل you ، آپ کو سرچ بار میں گوگل اسسٹنٹ تلاش کرنے کی ضرورت ہے اور گوگل اسسٹنٹ آئیکن پر کلیک کریں۔
اگلی سکرین میں ، ہمیں ایک محرک کا انتخاب کرنا ہوگا ،
یاد رکھنا ، ہم نے ایڈفریٹ IO سرور میں تین بلاکس بنائے ہیں ، ہمیں ان تین بلاکس کے لئے محرکات بنانے کی ضرورت ہے ۔
سب سے پہلے ، ریڈیو اسٹیشن بلاک ، اس کے ل we ، ہمیں متن کے اجزاء والے فقرے کا انتخاب کرنا ہوگا۔
اگلی اسکرین میں ، ہمیں ٹائپ کرنا ہے کہ آپ کیا کہنا چاہتے ہیں اور گوگل اسسٹنٹ کو آپ کے ساتھ کیا جواب دینا چاہئے۔
پھر تخلیق کریں ٹرگر بٹن پر کلک کریں۔
جیسا کہ آپ مکمل کر لیا ہے اگلی سکرین، کچھ اس طرح دکھائی دیتی ہے تو حصہ کس لئے ہے وقت اس کے بعد ، حصہ کلک + بعد نشانی تو .
آپ کو نیچے کی تصویر کی طرح اسکرین پیش کیا جائے گا ، اڈف فروٹ کی تلاش کی جائے گی ، اور اڈفریٹ آئیکن پر کلیک کریں گے۔
اگلا ، اپنے اڈفریٹ اکاؤنٹ کو آئی ایف ٹی ٹی ٹی کے ذریعہ اختیار کریں ، پھر کنیکٹ پر کلک کریں۔
اگلا ، آپ کو ایڈفریٹ IO پر ڈیٹا ارسال کریں پر کلک کرنا ہوگا ۔
اس کے بعد آپ کو فیڈ کے ڈراپ ڈاؤن کے ساتھ پیش کیا جائے گا جو آپ نے ایڈف فروٹ اکاؤنٹ میں پہلے تیار کیا ہے۔
کوئی بھی انتخاب کریں اور تخلیق عمل پر کلک کریں ، آپ کو تینوں کے ل all یہ کام کرنے کی ضرورت ہے۔
اور اس کے ساتھ ہی ، IFTTT عمل کے اختتام کی نشاندہی کرتا ہے ، میری آخری ایپلٹ اسکرین ایسی نظر آتی ہے ،
اردوینو کوڈ اور وضاحت
اریڈوینو کوڈ آئی سی اور اڈفریٹ IO IFTTT اور WIFI کے مابین ہونے والے تمام مواصلات کا نظم کرنے کے لئے موجود ہے۔ اس آرڈوینو نینو ایف ایم ریڈیو کا مکمل کوڈ اس سبق کے آخر میں دیا گیا ہے۔ کوڈ تھوڑا سا لمبا اور پیچیدہ ہے ، یہاں ہم نے لائن کے ذریعہ مکمل کوڈ لائن کی وضاحت کی ہے۔
پہلے ، ہمیں تمام مطلوبہ لائبریریوں کو شامل کرنے کی ضرورت ہے ، وہ ہیں:
# شامل کریں
اس کے بعد ، WI-FI کے لئے SSID اور پاس ورڈ کی وضاحت کریں ، یہ آپ کے روٹر کا SSID اور پاس ورڈ ہے۔
const char * ssid = "Android"؛ // آپ کے روٹر کانسٹ چار کا ایس ایس آئی ڈی * پاس ورڈ = "12345678"؛ // آپ کے راؤٹر کا پاس ورڈ
اس کے بعد ہم دو بولین اور ایک متغیر کی وضاحت کرتے ہیں ، بولین آای سی کی مواصلات کی حیثیت برقرار رکھنے کے لئے استعمال ہوتے ہیں ، اور حجم کی سطح کو حجم کی سطح کو طے کرنے کے لئے استعمال کیا جاتا ہے۔
bool potStatus؛ // 1 جب مواصلت MCU اور IC bool radioStatus کے مابین قائم ہوجائے۔ // 1 جب مواصلت MCU اور IC کے حجم = 15 کے مابین قائم ہوجائے۔ // آئی سی کے ساتھ پہلے سے طے شدہ حجم کی سطح شروع ہوتی ہے
اس کے بعد ، ہم نے یمپلیفائر کو آن یا آف کرنے کیلئے ایک GPIO پن سیٹ کیا جس کا نام ریلے_پن ہے۔
# وضاحت ریلے_پن D7 // یہ پن ریڈیو کو آن اور آف کرنے کے لئے استعمال ہوتا ہے
اگلا ، ہمیں اڈفریٹ IO کے ساتھ بات چیت کرنے کے لئے تمام ضروری تعریفیں بیان کرنے کی ضرورت ہے۔
# تعیineن AIO_SERVER "io.adafruit.com" # تعی AIن AIO_SERVERPORT 1883 // ایس ایس ایل کے لئے 8883 کا استعمال کریں # تعی AIن AIO_USERNAME "ڈیبیشیس 13" // اسے اپنے صارف نام #define AIO_KEY "aio_Qial47xo1fYhc55QB1lEuthirpp کے ساتھ تبدیل کریں"
مندرجہ ذیل تعریفیں FIX_BAND لائبریری کے ذریعہ استعمال شدہ ملکیتی تعریف ہے۔
اگلا بیان کردہ بیان ماڈیول کا اندرونی حجم طے کرتا ہے۔
# وضاحت FIX_BAND RADIO_BAND_FM // <اس خاکہ کے ذریعہ بینڈ تیار کیا جائے گا ایف ایم ہے۔ # تعی Fن کریں FIX_RADIO_VOLUME 6 /// <ماڈیول کا پہلے سے طے شدہ حجم۔
اگلا ، PT2258 ، RDA5807M ، اور WiFiClient کیلئے مطلوبہ اشیاء بنائیں۔
PT2258 ڈیجیٹل پوٹ؛ // PT2258 آبجیکٹ RDA5807M ریڈیو؛ // RDA5807M آبجیکٹ وائی فائی کلائنٹ؛ // WiFiClient آبجیکٹ
پھر وائی فائی کلائنٹ اور ایم کیوٹی ٹی سرور اور لاگ ان کی تفصیلات میں گزر کر ایم کیوٹی ٹی کلائنٹ کی کلاس قائم کریں۔
اڈفروٹ_ ایم کیو ٹیT_ کلائنٹ ایم کی ٹی ٹی ((اور مؤکل ، AIO_SERVER ، AIO_SERVERPORT ، AIO_USERNAME ، AIO_KEY))؛
// وائی فائی کلائنٹ اور ایم کیوٹی ٹی سرور اور لاگ ان کی تفصیلات میں گزر کر ایم کیوٹی ٹی کلائنٹ کلاس مرتب کریں۔
پھر ہمیں فیڈ کو سبسکرائب کرنے کی ضرورت ہے۔ اس سے آپ کیا پوچھ سکتے ہیں؟
اگر ایڈفریٹ سرور میں کچھ قدریں ، کچھ پیرامیٹرز تبدیل ہوجاتے ہیں تو ، تبدیلیاں یہاں ظاہر ہوگی۔
اڈفروٹ_ ایم کیو ٹیT_ سبسکرائب کریں ریڈیو_ اسٹیشن = ایڈافٹ_ ایم کیوٹیT_ سبسکرائب کریں (& mqtt، AIO_USERNAME "/ فیڈز / ریڈیو_اسٹیشن")؛ // فیڈ کو سبسکرائب کرنے کے لئے استعمال شدہ طریقے // فیڈ کو سبسکرائب کرنے کے لئے استعمال کیے گئے طریقے Adaf فرو_MQTT_ سبسکرائب والیوم = Adaf پھٹ_ MQTT_ سبسکرائب کریں (& mqtt، AIO_USERNAME "/ فیڈز / حجم")؛ // فیڈ کو سبسکرائب کرنے کے لئے استعمال شدہ طریقے
ذیل میں MQTT_connect () فنکشن کیلئے فنکشن پروٹو ٹائپ ہے۔
کالعدم MQTT_connect ()؛ // MQTT کنیکٹ کیلئے فنکشن پروٹو ٹائپ
پھر ہم اپنا سیٹ اپ عمل شروع کرتے ہیں۔ سب سے پہلے ، ہم شروع کے طریقہ کار سے UART مواصلات شروع کرتے ہیں۔
سیریل.بیگین (9600)؛ // یو آر ٹی شروع سیریل۔ پرنٹلن ()؛ // سیریل.پرنٹ لین () وقفہ کاری کے لئے ایک اضافی لائن کا اضافہ کر دیتی ہے؛ // وقفہ کاری کے ل for ایک اضافی لائن کا اضافہ کر دیتی ہے اگلا ، ہم وائی فائی سے مربوط ہونے کے لئے معمول کی ہر چیز کو کرتے ہیں **************** ایک وائی فائی کنکشن کے لئے درکار تمام معمول کی چیزیں ************************* / سیریل.پرنٹ ("سے جڑنا")؛ سیریل.پرنٹلن (ایس ایس ڈی)؛ WiFi.mode (WIFI_STA)؛ WiFi.begin (ssid، پاس ورڈ)؛ جبکہ (WiFi.status ()! = WL_CONNECTED) {تاخیر (500)؛ سیریل.پرنٹ (".")؛ ial سیریل.پرنٹلن ("")؛ سیریل.پرنٹلن ("وائی فائی منسلک")؛ سیریل.پرنٹلن ("آئی پی ایڈریس:")؛ سیریل.پرنٹ لِن (وائی فائی ۔لوکالپ ())؛ / **************** ایک وائی فائی کنکشن کے لئے درکار تمام معمول کی چیزیں *********************** /
اگلا ، I2C کنیکشن کو تیز کرنے کے لئے Wire.begin () طریقہ پر کال کریں اور ہم I2C فریکوئنسی کو 100KHz پر طے کرنے کیلئے Wire.setClock () طریقہ پر کال کریں کیونکہ یہ PT2258 IC کی پوری رفتار ہے۔
تار.بیگین ()؛ // I2C شروع کرنے والا سلسلہ Wire.setClock (100000) شروع کریں؛ // I2C گھڑی کو 100KHz پر مرتب کرنا
اگلا ، PT2258 اور RDA5807 IC دونوں کے لئے init () طریقہ پر کال کریں اور واپسی کی حیثیت کو پہلے سے طے شدہ بولین میں رکھیں۔
پوٹ اسٹیٹس = ڈیجیٹل پوٹ.init ()؛ ریڈیو اسٹاٹس = ریڈیو.in.in ()؛
اگلا ، چیک کریں کہ آیا MCU آئی سی کے ساتھ بات چیت کرنے کے قابل تھا یا نہیں۔ ہم دوسرا بیانات کے ساتھ یہ کام کرتے ہیں۔
if (potStatus) {Serial.println ("ملا PT2258 ڈیوائس!")؛ } else {Serial.println ("PT2258 شروع کرنے میں ناکام")؛ } if (RadioStatus) ial Serial.println ("ملا RDA5807M ڈیوائس!")؛ } else {Serial.println ("RDA5807M شروع کرنے میں ناکام")؛ }
اگلا ، ایم کیوٹی ٹی لائبریری سے سبسکرائب کا طریقہ کال کریں۔ اگر ہماری سبسکرائب شدہ فیڈ میں کوئی تبدیلی واقع ہوئی ہے تو ہمیں ایم کیوٹی ٹی سرور کے ذریعہ مطلع کیا جائے گا۔
mqtt.subscribe (& ریڈیو_اسٹیشن)؛ // ریڈیو_اسٹیشن فیڈ mqtt.subscribe (& ٹوگل_ ایف ایم) کے لئے ایم کیوٹی ٹی سیٹ اپ سیٹ کریں۔ // ٹوگل_ ایف ایم فیڈ mqtt.subscribe (اور حجم) کے لئے ایم کیوٹی ٹی سیٹ اپ سیٹ کریں۔ // حجم فیڈ کے لئے ایم کیوٹی ٹی رکنیت سیٹ اپ کریں
اگلا ، ہم آؤٹ پٹ کے طور پر ریلے پن اور پن کی حیثیت کو کم پر سیٹ کرتے ہیں
پن موڈ (D7 ، آؤٹپٹ)؛ ڈیجیٹل رائٹ (D7 ، LOW)؛
اگلا ، پہلے سے طے شدہ ریڈیو حجم مرتب کریں ، یہ پیرامیٹر RDA5807 IC کا اندرونی حجم طے کرتا ہے ، جو ہمارے سیٹ اپ کے عمل کے اختتام کو نشان زد کرتا ہے۔
ریڈیو.سیٹ والیم (FIX_RADIO_VOLUME)؛ // اگلے ہم ریڈیو والیوم کو معمول پر لائیں۔ ریڈیو.سیٹ مونو (غلط)؛ // ہم نہیں چاہتے کہ چپ مونو آؤٹ پٹ کو ریڈیو دیں۔ سیٹ میٹ (غلط)۔ // ہم نہیں چاہتے کہ شروع میں چپ چپ ہوجائے
ہم ایم پی ٹی ٹی سرور سے کنکشن قائم کرنے والے ایم کیوٹیT_ کنیکٹ () فنکشن کو فون کرکے لوپ شروع کرتے ہیں ۔
ایم کیوٹی ٹی کنیکٹ فنکشن میں ، ہم ایم کیوٹی ٹی سرور سے رابطہ قائم کرنے کے لئے تین بار کوشش کرتے ہیں۔
اگر یہ کامیاب ہے تو ہمیں کامیابی کا میسج ملے گا ورنہ ہمیں ایک غلطی کا پیغام ملے گا۔
کالعدم MQTT_connect () 8 int8_t ret؛ دوبارہ کوششوں کو ذخیرہ کرنے کے لئے // 8 بٹ عدد // اگر پہلے سے منسلک ہے تو رک جائیں۔ اگر (mqtt.connected ()) {واپس؛ ial سیریل.پرنٹ ("ایم کیو ٹی ٹی سے منسلک ہو رہا ہے…")؛ uint8_t دوبارہ کوششیں = 3؛ جبکہ ((ret = mqtt.connect ())! = 0) connect // متصل سے منسلک Serial.println (mqtt.connectErrorString (ret)) کے لئے 0 واپس آئے گا۔ Serial.println ("5 سیکنڈ میں ایم کیوٹی ٹی کنکشن کی دوبارہ کوشش کر رہا ہے…")؛ mqtt.disconnect ()؛ تاخیر (5000)؛ // انتظار 5 سیکنڈ دوبارہ کوششیں -؛ اگر (دوبارہ کوشش کریں == 0) {// بنیادی طور پر مرجائیں اور WDT کا انتظار کریں کہ مجھے دوبارہ ترتیب دیں جبکہ (1)؛ ial ial سیریل.پرنٹلن ("ایم کیوٹیٹی منسلک!")؛ }
اگلا ، ایک ایڈفریٹ_ ایم کیو ٹیT_ سبسکرائب آبجیکٹ کے لئے ایک پوائنٹر بنا کر شروع کریں ۔ ہم اس کا استعمال یہ تعین کرنے کیلئے کریں گے کہ کونسا سبسکرپشن موصول ہوا ہے۔
Adaf فرو_MQTT_ سبسکرائب * سبسکرپشن؛
اگلا ، ہم سبسکرپشن میسیج کا انتظار کرتے ہیں۔
ایم کی ٹی ٹی سرور کے ذریعہ آنے والے کسی بھی پیغامات کے ل m ، mqtt.readSubscript (timeInMilliseconds) ایک خاص وقت سنے گی۔
اگر اسے ٹائم آؤٹ ہونے سے پہلے کوئی میسج آجاتا ہے تو ، وہ اس کی رکنیت کے ساتھ کسی پوائنٹر کے ساتھ جواب دے گا یا اس کا ابھی وقت ختم ہوجائے گا اور 0 واپس آجائے گا۔ ایسی صورت میں ، یہ 2 سیکنڈ کا انتظار کرے گا۔
جبکہ ((خریداری = mqtt.readSubscript (20000)))
اگر کوئی ٹائم آؤٹ ہوتا ہے تو ، جبکہ لوپ فل بھرنا ناکام ہوجاتا ہے۔ اگر نہیں ، تو ہم موازنہ کرتے ہیں کہ کونسا سبسکرپشن حاصل کریں گے اور ہمیں اپنی مشہور رکنیت حاصل کریں گے۔
اس کوڈ میں ، ہم اپنی سبسکرائب شدہ تینوں فیڈوں کے ل do یہ کرتے ہیں۔
اگر (سبسکرپشن == & ٹوگل_ ایف ایم) اگر (سبسکرپشن == اور ریڈیو_ٹیشن) اگر (سبسکرپشن == اور حجم)
یہ وہ تین اہم پیرامیٹرز تھے جن کی آپ کو لوپ سیکشن میں سمجھنے کی ضرورت ہے۔
کوڈ کا یہ حصہ ٹوگل_ ایف ایم فیڈ کی نگرانی اور سیٹ کرنے کے لئے استعمال ہوتا ہے ۔
اگر (سبسکرپشن == & ٹوگل_ ایف ایم) // کیا یہ ٹوگل_ ایف ایم فیڈ from سیریل ڈاٹ پرنٹ (F ("ملا:")) کا پیغام ہے؟ سیریل.پرنٹلن ((چار *) ٹوگل_ ایف ایم.سٹریٹ)؛ // فیڈ ڈیٹا کو صرف ڈیبگنگ کے ل print پرنٹ کریں اگر (سٹرنگ ((چار *) ٹوگل_ ایف ایم.لاسٹریڈ) == اسٹرنگ ("آن")) // ہم موصولہ اعداد و شمار کا ایک معلوم پیرامیٹر سے موازنہ کرتے ہیں اس معاملے میں ہم توقع کر رہے ہیں کہ " "سیور from // کی طرف سے آرہا ہے لیکن اس سے پہلے کہ ہمیں اس کو ایک تار بنانا پڑے جو موازنہ کو انتہائی آسان ڈیجیٹل رائٹ (D7 ، HIGH) بنائے۔ // اگر ہمیں سرور بنائے ہوئے سرور سے" آن "تار ملتا ہے۔ D7 پن HIGH} if (اسٹرنگ ((چار *) ٹوگل_ ایف ایم.لاسٹریڈ) == اسٹرنگ ("آف")) // ایک بار پھر ہم سٹرنگ آف {ڈیجیٹل رائٹ (D7 ، LOW) کی جانچ کر رہے ہیں؛ // اگر ہمیں کوئی مل جائے سرور سے "آف" سٹرنگ ہم D7 پن LOW بنا رہے ہیں}}
کوڈ کے اس حصے کا استعمال ریڈیو_اسٹیشن فیڈ کی نگرانی اور سیٹ کرنے کے لئے کیا جاتا ہے ۔
اگر (سبسکرپشن == & ریڈیو_اسٹیشن) ial سیریل.پرنٹ (F ("ملا:"))؛ سیریل.پرنٹلن ((چار *) ریڈیو_ اسٹیشن.سٹریٹ)؛ اگر (اسٹرنگ ((چار *) ریڈیو_اسٹیشن.لاسٹریڈ) == اسٹرنگ ("بگ ایف ایم")) // سنیں ہم سٹرنگ بگ ایف ایم {ریڈیو.سیٹ بینڈ فریکوئنسی (FIX_BAND ، 9270) کی جانچ کررہے ہیں۔ // اگر مذکورہ بالا حالت صحیح ہے تو ہم راڈوئی چینل کو 92.7MHz setting پر طے کررہے ہیں // مندرجہ بالا عمل ذیل میں جاری ہے اگر (سٹرنگ ((چار *) ریڈیو_ اسٹیشن ڈاٹسٹریڈ) == اسٹرنگ ("ریڈ ایف ایم")) { ریڈیو.سیٹ بینڈفریکونسی (FIX_BAND، 9350)؛ } if (اسٹرنگ ((چار *) ریڈیو_ اسٹیشن ڈاٹ اسٹریڈ) == اسٹرنگ ("ریڈیو مرچی")) {ریڈیو.سیٹ بینڈ فریکونسی (FIX_BAND، 9830)؛ }
کوڈ کا یہ حصہ والیم فیڈ کی نگرانی اور سیٹ کرنے کے لئے استعمال ہوتا ہے۔
اگر (سبسکرپشن == اور حجم) // // سنا ہم سٹرنگ والیوم کی جانچ کررہے ہیں اور یہ سٹرنگ فارمیٹ میں ایک انٹیجر ویلیو ہے // ہمیں PT2258 کی مدد سے حجم کو تبدیل کرنے کے لئے اسے واپس ایک عدد میں تبدیل کرنا ہوگا۔ آئی سی سیریل ڈاٹ پرنٹ (ایف ("مل گیا:"))؛ سیریل.پرنٹلن ((چار *) حجم.سٹریٹ)؛ حجم = atoi ((چار *) حجم.سٹریڈ)؛ // ہم ایکٹوٹر حجم = نقشہ (حجم ، 0،100،79،0) میں کسی کریکٹر پوائنٹر کو تبدیل کرنے کے لئے atoi () میتھوڈ کا استعمال کر رہے ہیں؛ // نقشہ (قیمت ، نیچے سے ، اعلی سے ، نیچے سے ، نیچے تک) // جیسا کہ pt2258 صرف DB میں عددی اقدار کو سمجھتا ہے // ہم 0dB - 79dB کی قیمت کو 0٪ - 100٪ سے جوڑ رہے ہیں۔ ڈیجیٹل پوٹ.سیٹ چینل والیم (حجم ، 0)؛ // ان سب کے بعد ، ہم PT2258 IC ڈیجیٹل پوٹ.سیٹ چینل والیم (چینل ، 1) کے چینل 0 کے لئے حجم طے کررہے ہیں۔ // ان سب کے بعد ، ہم PT2258 IC the of کے چینل 1 کے لئے حجم ترتیب دے رہے ہیں۔
ارڈینو کا استعمال کرتے ہوئے وائس کنٹرولڈ ایف ایم ریڈیو کی جانچ کرنا
سرکٹ کو جانچنے کے ل the ، درج ذیل اپریٹس کا استعمال کیا گیا-
- ایک ٹرانسفارمر جس میں 13-0-13 نل ہے
- بوجھ کے طور پر دو 4Ω 20W اسپیکر۔
- گوگل اسسٹنٹ استعمال کرنے کیلئے فون۔
پچھلے مضمون میں ، میں نے آپ کو دکھایا ہے کہ TDA2050 IC کے ذریعہ ایک سادہ 2x32 واٹ آڈیو یمپلیفائر کیسے بنایا جائے ، میں اس مظاہرے کے لئے بھی استعمال کروں گا ،
میں نے مکینیکل پوٹینومیٹر کو ناکارہ بنا دیا ہے اور دو چھوٹے جمپر کیبلز کے ساتھ دو لیڈز مختصر کردیئے ہیں۔ اب ، دو پش بٹنوں کی مدد سے ، میں امپلیفائر کا حجم تبدیل کرنے میں کامیاب ہوگیا۔
مزید افزودگی
اس سرکٹ میں مزید بہتری کی جا سکتی ہے۔
- شور کے مختلف مسائل ہیں کیونکہ نوڈیم سی یو کے ساتھ آڈیو ماخذ کام کر رہا ہے ، لہذا ہمیں شور استثنیٰ کو بہتر بنانے کے ل additional اضافی شیلڈنگ کو نافذ کرنے کی ضرورت ہے۔
- پی سی بی میں مجموعی طور پر سرکٹ کی تعمیر سے شور سے استثنیٰ بہتر ہوگا۔
- شور مٹانے کے ل this اس آئی سی میں اضافی فلٹرز شامل کی جاسکتی ہیں۔
مجھے امید ہے کہ آپ کو یہ مضمون پسند آیا ہو اور اس میں سے کچھ نیا سیکھا ہو۔ اگر آپ کو کوئی شک ہے تو ، آپ نیچے دیئے گئے تبصرے میں پوچھ سکتے ہیں یا تفصیلی فورم کے لئے ہمارے فورمز کا استعمال کرسکتے ہیں۔