<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های uYSeali</title>
        <link>https://virgool.io/feed/@uyseali</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-04-14 23:48:48</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1749617/avatar/bren6u.jpg?height=120&amp;width=120</url>
            <title>uYSeali</title>
            <link>https://virgool.io/@uyseali</link>
        </image>

                    <item>
                <title>نگاهی به دنیای نامرئی ارتباطات: فناوری مادون قرمز</title>
                <link>https://virgool.io/@uyseali/%D9%86%DA%AF%D8%A7%D9%87%DB%8C-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D9%86%D8%A7%D9%85%D8%B1%D8%A6%DB%8C-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7%D8%A7%D8%AA-%D9%81%D9%86%D8%A7%D9%88%D8%B1%DB%8C-%D9%85%D8%A7%D8%AF%D9%88%D9%86-%D9%82%D8%B1%D9%85%D8%B2-zgqoigghajwu</link>
                <description>فناوری مادون قرمز زندگی روزمرهٔ ما را دگرگون کرده‌ است. دیگر لازم نیست برای تغییر کانال تلویزیون از جای خود بلند شویم و یا اینکه یک کنترل سیمی تهیه کنیم؛ تنها با استفاده از یک فرستندهٔ مادون قرمز، کنترل تمامی کارکردهای تلویزیون در دستان ما خواهد بود. در این مقاله به بررسی کامل این فناوری خواهیم پرداخت.یک کنترل دارای فرستندهٔ مادون قرمزمادون قرمز چیست؟در علم فیزیک تابش فروسرخ (به انگلیسی: Infrared) یا مادون قرمز یا به اختصار IR، به قسمی از طیف امواج الکترومغناطیس گفته می‌شود که طول موج آن‌ها بلندتر از نور مرئی و کوتاه‌تر از امواج رادیویی است. امواج مادون قرمز در بازهٔ فرکانسی ۳۰۰ گیگاهرتز تا ۴۲۸ تراهرتز و طول موج ۱ میلی‌متر تا ۷۰۰ نانومتر قرار می‌گیرند. این امواج برای چشم انسان نامرئی هستند اما مشاهدهٔ آنها کار دشواری نیست؛ تنها کافیست با استفاده از یک دوربین دیجیتالی به فرستندهٔ مادون قرمزِ کنترل تلویزیون خانهٔ تان نگاه کنید تا ساطع شدن امواج مادون قرمز را مشاهده کنید. برخی از منابعی که به طور طبیعی به ساطع کردن نور مادون قرمز می‌پردازند عبارت‌اند از: خورشید، اجسام گرم، آتش، بدن انسان و ...طیف مادون قرمزچطور از نور مادون قرمز برای ارسال بی‌سیم اطلاعات استفاده می‌شود؟فرض کنید در یک شب آرام در حال مشاهدهٔ یک منطقهٔ شهری از راه دور هستید. اگر قرار باشد فردی برای شما با استفاده از نور پیامی بفرستد، چطور باید این کار را انجام دهد تا شما متوجه پیامش شوید؟ اگر یک خانه در فاصله‌های زمانی مختلف چراغش را خاموش و روشن کند خواهد توانست برای شما پیغامی مخابره کند (مشابه کد مورس)؛ اما اگر چراغ چندین خانه خاموش و روشن شود شما از کجا متوجه خواهید شد که کدام یک مربوط به فرد مورد نظرتان است؟ در اینجا می‌توان از مفهومی به نام فرکانس استفاده کرد (فرکانس برابر است با تعداد دفعات خاموش و روشن شدن در زمان یک ثانیه) به طوری که فرد مورد نظر پیامش را با فرکانس مشخصی (مثلا 5Hz) مخابره می‌کند؛ در این صورت شما فقط به خانه‌ای که چراغش با این فرکانس مشخص خاموش و روشن می‌شود توجه می‌کنید و به باقی خانه‌ها کاری ندارید. برای ارسال اطلاعات با مادون قرمز نیز از همین ایده استفاده می‌شود.تهران در شبفرکانس حاملهمانطور که گفته شد برای جلوگیری از پارازیت و اختلال در دریافت اطلاعات از یک فرکانس مشخص استفاده می‌شود (رنج 30kHz تا 60kHz)؛ فرکانس‌های حاملِ 36kHz، 38kHz، 40kHz، 56kHz رایج هستند که متداول‌ترین آنها فرکانس 38kHz می‌باشد. معیار‌هایی چون کاهش نویز، برد مناسب، سادگی ارسال و سادگی پردازش با میکروکنترلر‌ها و ... در انتخاب این فرکانس‌های حامل نقش داشته‌اند.طول موج و فرکانسفرستندهٔ مادون قرمزوسیله‌ای الکترونیکی که برای تولید پالس مادون قرمز مورد استفاده قرار می‌گیرد. این قطعه درون کنترل‌ها قرار می‌گیرد و با ارسال پالس مادون قرمز دستورات را به گیرنده منتقل می‌کند.فرستندهٔ مادون قرمز دوپایهگیرندهٔ مادون قرمزگیرندهٔ مادون قرمز دستگاهی است که امواج الکترومغناطیسی با طول موج مادون قرمز را دریافت کرده و آن‌ها را به سیگنال‌های قابل فهم برای مدارات الکترونیکی یا پردازشگرها تبدیل می‌کند.دو نوع گیرندهٔ مادون قرمز وجود دارد که عبارتند از:گیرندهٔ مادون قرمز دوپایهبا برخورد نور مادون قرمز به این وسیله مقاومت پایه‌های آن تغییر پیدا می‌کند. از این وسیله برای بررسی وجود یا عدم وجود نور مادون قرمز و میزان آن استفاده می‌شود. به این قطعات فوتو دیود نیز می‌گویند.گیرندهٔ مادون قرمز دوپایهگیرندهٔ مادون قرمز سه‌پایهاین وسیله در واقع یک IC است که دو پایهٔ + و - و یک پایهٔ سیگنال دارد. این IC طوری طراحی شده است که پایهٔ سیگنالش در هنگام مشاهدهٔ فرکانس خاصی از امواج مادون قرمز (مثلاً 38kHz) مقدار LOW خروجی بدهد و در سایر موارد (وجود نویز یا عدم وجود نور مادون قرمز) مقدار HIGH داشته باشد.گیرندهٔ مادون قرمز سه‌پایهنحوهٔ کدگذاری و ارسال و دریافت اطلاعاتمدولاسیونمدولاسیون؛ فرآیند تبدیل سیگنالِ پیام به یک سیگنال دیگر است که قابلیت انتقال به وسیله ابزار ارتباطی (در اینجا فرستنده و گیرندهٔ مادون قرمز)‌ را داشته باشد و از نویز در امان باشد.تمامی کنترل از راه دور‌های مدرن با به کارگیری مدولاسیون دیجیتال طراحی شده‌اند. دو تا از مدولاسیون‌های دیجیتال پایه Amplitude-Shift Keying (ASK) و Frequency Shift Keying (FSK) هستند. در مدولاسیون ASK صفر و یک‌ها به‌وسیلهٔ تغییر در طول دامنهٔ موجِ حامل منتقل می‌شوند و در مدولاسیون FSK صفر و یک‌ها با استفاده از دو موج با فرکانس متفاوت انتقال می‌یابند.مدولاسیون ASKASK یکی از قدیمی‌ترین و ساده‌ترین مدولاسیون‌های مورد استفاده است که مورد توجه بسیاری از شرکت‌های تولید کنندهٔ کنترل از راه دور مادون قرمز قرار گرفته است. علت این علاقهٔ شرکت‌ها، کارایی (توانایی بالا و مصرف پایین)، سادگی طراحی و هزینهٔ پایین آن است.در فرستندهٔ مادون قرمز اطلاعات به گروهی از پالس‌ها با فرکانس مشخص مدوله می‌شوند.چندین روش کدگذاری در سیستم مدولاسیون ASK در زیر آورده شده است:Pulse Position EncodingPulse Position Encoding ساده‌ترین روش در سیستم مدولاسیون ASK است؛ هر بیت یک عرض (فاصله زمانی)‌ ثابت دارد. پالس موجِ حامل به منزلهٔ 1 و فضای خالی (عدم وجود موج حامل) به منزلهٔ 0 تلقی می‌شود.Pulse Position EncodeingPulse Distance Encodingدر این روش هر بیت ترکیبی از یک پالس موج حاملِ مدوله شده و یک فضای خالی است. اندازهٔ (فاصله زمانی) فضای خالی، مشخص کنندهٔ منطق 0 و 1 است؛ و اندازه موج حاملِ مدوله شده ثابت است.Pulse Distance EncodingPulse Width Encodingدر روش Pulse Width Encoding نیز هر بیت ترکیبی از یک پالس موج مدوله شده و یک فضای خالی است. اندازهٔ موج حامل مدوله شده مشخص کنندهٔ منطق 0 و 1 است، و اندازهٔ فضای خالی ثابت می‌باشد.Pulse Width EncodingManchester Encodingاین روش کد گذاری با نام biphase (روش کدگذاری دوفاز) نیز شناخته می‌شود. هر بیت ترکیبی از یک پالس موج مدوله شده و یک فضای خالی است. هر بیت با یک گذار (تغییر) در سطح سیگنال (موج حامل و فضای خالی) نمایش داده می‌شود. برای مثال اگر ابتدا موج حامل باشد و بعد فضای خالی بیاید نشان دهندهٔ منطق 1 است، و اگر ابتدا فضای خالی وجود داشته باشد و سپس موج حامل بیاید نشان دهندهٔ منطق 0 است.Manchester Encodingمدولاسیون FSKدر مدولاسیون FSK از دو موج حامل با فرکانس متفاوت برای منطق 0 و 1 استفاده می‌شود و هیچ فضای خالی‌ای بین پالس‌ها وجود ندارد. این روش چندان جذاب نیست زیرا اتخاذ دو فرکانس، فرآیند کدگشایی را پیچیده و گران می‌کند. به همین دلیل این روش کمتر استفاده می‌شود.FSK Modulationپروتکلپروتکل‌ها نحوهٔ بسته بندی اطلاعات و شیوهٔ ارسال آنها را مشخص می‌کنند.علاوه بر مدولاسیون‌های مختلف، روش‌های کدگذاری متفاوت و فرکانس‌های کاری گوناگون؛ در پروتکل‌های انتقال داده نیز تنوع وجود دارد: پروتکل‌های با یا بدون نقطهٔ شروع، با تعداد بیت‌های مختلف در هر دستور و با طول بیت‌های متفاوت. تقریبا در همهٔ پروتکل‌ها بیت‌های آدرس و بیت‌های اطلاعات وجود دارند. برای قابلیت اطمینان برخی از پروتکل‌ها، اطلاعات را دوبار ارسال می‌کنند، یک‌بار شکل اصلی و بار دیگر شکل معکوس. معمولا اطلاعاتِ دستور تا زمانی که کلید فشار داده می‌شود بارها و بارها ارسال می‌شوند. روش‌های مختلفی برای تمایز بین فشار دادن چند کلید و قطع لینک انتقال وجود دارد (مثلا برای جلوگیری از انتخاب کانال 11 توسط تلویزیون در حالی که کانال 1 در نظر گرفته شده باشد). برخی از پروتکل‌ها از یک بیت تغییر وضعیت استفاده می‌کنند که مقدار آن در هر بار فشار کلید تغییر می‌کند. برخی از کدها در ابتدا/در انتهای هر فشار کلید یک بیت شروع/بیت پایان ارسال می‌کنند.پروتکل‌های مختلفی در صنعت مورد استفاده قرار می‌گیرند، اما بیشرتان از چند پروتکل محدود مشتق شده‌اند که تنها اختلافشان در فرکانس موج حامل و قالب ارسال اطلاعاتشان است.دو مورد از مشهورترین پروتکل‌‌ها عبارتند از NEC و RC5 که پروتکل NEC در زیر شرح داده شده‌ است:پروتکل NECاین پروتکل توسط شرکت NEC توسعه داده شده است اما توسط سایر شرکت‌ها نیز مورد استفاده قرار می‌گیرد و به نوعی پر استفاده ترین پروتکل می‌باشد.ویژگی‌ها:بخش آدرس و بخش دستور هر دو 8 بیتی هستند.بخش آدرس و بخش دستور به خاطر قابلیت اطمینان دوبار ارسال می‌شوند.از روش Pulse Distance برای کدگذاری اطلاعات استفاده می‌کند.از فرکانس کاری 38kHz برای ارسال اطلاعات استفاده می‌کند.ارسال هر بیت در آن 1.125ms یا 2.25ms طول می‌کشد.پروتکل NEC از یک سیگنال شروع که leader code نامیده می‌شود استفاده می‌کند؛ یک موج حامل با اندازهٔ 9ms که همراه می‌شود با یک فضای خالی به اندازهٔ 4.5ms، سپس اطلاعات ارسال می‌شود. بعد از اینکه اطلاعات ارسال شد تنها leader code و یک تک بیت به طور مکرر ارسال می‌شوند تا وقتی که دکمهٔ کنترل فشرده شده باشد. هر دو بخش آدرس و دستور دوبار ارسال می‌شوند؛ یک بار به شکل عادی و بار دیگر به شکل معکوس.ارسال 0 منطقی با پالسی به طول 1.125ms انجام می‌شود و ارسال 1 منطقی به پالسی با طول 2.25ms نیاز دارد.8 بیت آدرس برای مشخص کردن دستگاهی که باید کنترل شود کاربرد دارد؛ تا اگر چندین دستگاه با عملکردهای مشابه در محیط وجود داشت فقط دستگاهی که دکمه‌های کنترل آن فشرده می‌شود، اعمال درخواستی را انجام دهد.8 بیت دیگر برای انتقال داده‌های دستور مورد استفاده قرار می‌گیرد.همانطور که در بالا ذکر شد بایت‌ها بدون مکث با بایت‌های معکوس همراه می‌شوند؛ مثلا اگر بایت آدرس 00110111 باشد و بایت دستور نیز 00011010 باشد برای ارسال آن دنباله‌ای از بیت‌ها به شکل زیر ارسال می‌شود:00110111&#039;11001000&#039;00011010&#039;11100101منظور از معکوس کردن این است که هرجا بیت 1 وجود داشت بیت 0 قرار می‌گیرد و بالعکس.برای ارسال 1، یک موج حامل با فرکانس 38kHz به مدت 560μs ارسال می‌شود که در پی آن یک فضای خالی به اندازهٔ 1690μs وجود دارد. برای ارسال 0 نیز ابتدا یک موج حامل با فرکانس 38kHz به مدت 560μs ارسال می‌شود با این تفاوت که در پی آن یک فضای خالی با اندازهٔ 560μs وجود دارد. اندازهٔ زمانی قسمت اطلاعات ثابت و به اندازهٔ 67.5ms می باشد.NEC Bit Encodingدر انتهای محمولهٔ داده یک پالس 560μsای (tail) از موج حامل، به اتمام رسیدن عملیات ارسال دستور را مشخص می‌کند.NEC Data Frame Formatبخش تکرار طراحی شده است تا عملیات تکرارِ خودکار را اجرایی کند و هیچ اطلاعاتی در مورد آدرس یا دستور را در بر نمی‌گیرد. این بخش شامل قطاری از پالس ها و پالس‌های tail (مشابه پالس اتمام ارسال اطلاعات در قسمت قبل) می باشد. این بخش هر 110ms تکرار می‌شود تا وقتی که دکمهٔ کنترل فشرده شده باشد.NEC Repeat Frame FormatNEC Full Sequence Formatارسال موج مادون قرمز در اندرویدبرای ارسال موج مادون قرمز در سیستم‌عامل اندروید از کلاس ConsumerIrManager استفاده می‌شود :public void transmit (
int carrierFrequency,
int[] pattern
)Parameters:carrierFrequencyint: The IR carrier frequency in Hertz. patternint: The alternating on/off pattern in microseconds to transmit.مثالی از کد و سیگنال خروجی:irEngine.transmit(38000, intArrayOf(
9125,4391,569,569,569,569,569,569,
569,569,569,569,569,569,569,1604,
569,569,569,569,569,569,569,569,
569,569,569,569,569,569,569,1604,
569,569,569,569,569,1604,569,569,
569,1604,569,569,569,569,569,569,
569,569,569,1604,569,569,569,1604,
569,569,569,1604,569,1604,569,1604,
569,1604,569,45518))برخی ابزار کارآمداپلیکیشن irplus برای کار با کنترل طراحی شده است که امکانات خوبی را در اختیار دارندگان گوشی‌های اندرویدی قرار می‌دهد.اپلیکیشن IrScrutinizer نیز امکانات متنوعی را برای کاربران دسکتاپ فراهم کرده است.منابعhttps://www.ti.com/lit/pdf/slaa644https://www.vishay.com/docs/80071/dataform.pdfhttps://www.sbprojects.net/knowledge/ir/index.phphttps://www.youtube.com/watch?v=B6y6Pbr0ENIhttps://www.ti.com/lit/pdf/SLAU598https://www.aparat.com/v/i6428sdhttps://virgool.io/programming/remote-vx2tw4vfezor</description>
                <category>uYSeali</category>
                <author>uYSeali</author>
                <pubDate>Thu, 10 Jul 2025 15:58:11 +0330</pubDate>
            </item>
                    <item>
                <title>کپی کردن کنترل تلویزیون با استفاده از Arduino</title>
                <link>https://virgool.io/@uyseali/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D8%AA%D9%84%D9%88%DB%8C%D8%B2%DB%8C%D9%88%D9%86-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-arduino-peyh91pwsrte</link>
                <description>تلویزیون سینگلبابای من بعد مدت‌ها تصمیم گرفت تلویزیون CTR قدیمی مونو بندازه بیرون و یه تلویزیون جدید بگیره؛ در آخر تلویزیون خریداری شده یک محصول از یک برند گمنام به اسم Single بود.همون موقع‌ها هم من یک گوشی شیائومی خریده بودم که فرستندهٔ مادون قرمز داشت اما هرچی کنترل‌های موجود توی اپلیکیشن Mi Remote رو امتحان میکردم هیچکدوم روی تلویزیون جدیدمون جواب نمی‌داد.دیگه بیخیالش شده بودم تا اینکه این پست آقای خالقی رو توی ویرگول دیدم.ایشون هم به همین مشکل برخورده بودند و با استفاده از برد Arduino و مهارت برنامه نویسی اندروید، کنترل مخصوص تلویزیون خودشونو ساخته بودن.https://virgool.io/programming/remote-vx2tw4vfezorاین شد که منم تصمیم گرفتم طبق مقالهٔ ایشون کنترل مخصوص تلویزیون خودمونو بسازم؛ پس یک برد Arduino UNO به همراه گیرندهٔ مادون قرمز از دیجی‌کالا سفارش دادم. علت اینکه نیاز به داشتن این سخت‌افزار داریم اینه که روی گوشی‌ها فقط فرستندهٔ مادون قرمز وجود داره و خبری از گیرندهٔ مادون قرمز نیست، پس نمی‌تونیم تنها با استفاده از گوشی کدهای کنترل تلویزیون رو کپی کنیم.بعد از اینکه برد Arduino به دستم رسید سعی کردم طبق مقالهٔ آقای خالقی کدهای مربوط به کنترل تلویزیون رو کپی کنم. در ابتدا فقط قصد داشتم کد مربوط به دکمهٔ خاموش و روشن کردن تلویزیون رو کپی کنم و با استفاده از یک اپلیکیشن اندروید اون رو از طریق فرستندهٔ مادون قرمز گوشیم به سمت تلویزیون ارسال کنم تا ببینم درست کار میکنه یا نه؟! (اولین بار پایه‌های گیرندهٔ مادون قرمز رو به شکل اشتباه وصل کردم اما خوشبختانه نسوخت :)برد Arduino UNO به همراه گیرندهٔ مادون قرمز سه‌پایهقبل از خوندن ادامهٔ مقاله بهتره مقالهٔ دیگم که در مورد شیوهٔ کار کنترل‌های مادون قرمز هست رو بخونید:https://vrgl.ir/NW50Xدر ابتدا طبق گفته‌های توی مقاله کد مربوط به دکمه روشن خاموش رو پیدا کردم (البته اون موقع هیچ ایده‌ای در موردش نداشتم و فقط دنبال چیزی بودم که شبیه کدهای توی کد اپلیکیشن اندرویدی که ایشون ساخته بودند باشه)؛ بعد از پیدا کردن کد یک اپلکیشن اندروید بسیار ساده ساختم که تنها یک دکمه داشت و در زمان فشرده شدن اون دکمه چیزی مشابه کد زیر رو اجرا می‌کرد:irEngine.transmit(38000, intArrayOf(
9125,4391,569,569,569,569,569,569,
569,569,569,569,569,569,569,1604,
569,569,569,569,569,569,569,569,
569,569,569,569,569,569,569,1604,
569,569,569,569,569,1604,569,569,
569,1604,569,569,569,569,569,569,
569,569,569,1604,569,569,569,1604,
569,569,569,1604,569,1604,569,1604,
569,1604,569,45518))بعد از کامپایل کردن برنامه و نصب اون روی گوشیم هر چی دکمه رو می‌زدم و گوشی رو به سمت تلویزیون می‌گرفتم، تلویزیون هیچ واکنشی نشون نمی‌داد. چند روش دیگه (مثلا اجرای فایل ReciveDump.ino که توی مثال‌های کتابخونهٔ IRremote در Arduino پیدا کرده بودمش) برای بدست آوردن کدهای مربوط به دکمهٔ خاموش و روشن استفاده کردم؛ اما هیچ کدوم جواب نمی‌دادن. دیگه داشتم ناامید میشدم که یکبار دکمهٔ اپلیکیشن رو چندبار پشت سر هم زدم و تلویزیون خاموش شد. اون موقع فهمیدم که هنوز امیدی هست و باید مشکل کار رو پیدا کنم :)در همین حین با اپلیکیشن irplus که یک اپلیکیشن مخصوص ساختن کنترل با امکان شخصی سازی بالاست آشنا شدم. با استفاده از این اپلیکیشن میشه یک کنترل با ظاهر و کدهای دلخواه ساخت بدون اینکه نیاز به یک خط کدنویسی داشته باشیم. توی قسمت ویرایش کنترل این اپلیکیشن یک گزینه به اسم Repeat دیدم که دوهزاریمو جا انداخت که چرا فقط وقتی چند بار پشت سر هم دکمهٔ اپلیکیشن اندروید رو زده بودم، تلویزیون خاموش شده بود؛ علتش این بود که بعضی تلویزیون‌ها لازم دارن تا کد مربوطه رو بیشتر از یکبار در فاصله‌های زمانی کوتاه (چند میلی ثانیه) برای فرستندشون بفرستی تا عملکرد مربوطه رو انجام بدن.تنظیمات اپلیکیشن irplusخلاصه بعد اینکه مشکل حل شد و از صحت عملکردش مطمئن شدم تمامی کدهای مربوط به دکمه‌های کنترل تلویزیون رو کپی کردم و توی اپلیکیشن irplus وارد کردم.از اینجای مقاله به بعد وارد جزئیات میشم و نحوهٔ دقیق کپی کردن کنترل و کدهایی که استفاده کردم رو توضیح میدم:خواندن سیگنال هر دکمه از کنترلبرای اینکه دکمه‌های کنترل رو کپی کنیم لازم نیست که پروتکلی که استفاده کرده رو بدونیم؛ فقط کافیه عیناً سیگنالی که میفرسته رو کپی کنیم و با یه فرستندهٔ مادون قرمز همون رو بفرستیم.برای این کار کد زیر رو توی آردوینو وارد کردم:https://gist.github.com/337e378e8284b0e4d3568b4bf10b40f6.gitاین کد سیگنال کنترل رو به دو شکل آرایه‌ای از زمان پالس‌ها و Pronto HEX Code خروجی میده؛ برای اینکه با برنامه نویسی در اندروید سیگنال رو بفرستیم نیاز به مورد اول داریم. اما در اپلیکیشن irplus هر دوی اونها پشتیبانی می‌شن.واسه درست کردن کنترل توی اپلیکیشن irplus اول یک کنترل جدید اضافه میکنیم و سعی میکنیم از قسمت ویرایش دکمه‌هاشو شبیه کنترل خودمون کنیم؛ بعد از اینکار از کنترلی که ساختیم خروجی میگیریم (از قسمت Export). بعد از خروجی گرفتن فایل خروجی رو میبریم توی کامپیوتر و کدهایی که با آردینو کپی کردیم رو واردش میکنیم، باید دقت کنیم که فرمت درست رو توی فایل بذاریم، مثلا برای Pronto HEX با در قسمت format بنویسیم PRONTO (این موارد توی مستندات اپلیکیشن توضیح داده شدند). بعد از این کار فایل رو سیو میکنیم و دوباره توی گوشی میریزیم. در انتها لازمه که فایل رو توی اپلیکیشن Import کنیم.</description>
                <category>uYSeali</category>
                <author>uYSeali</author>
                <pubDate>Sun, 06 Jul 2025 00:11:01 +0330</pubDate>
            </item>
                    <item>
                <title>دریافت لینک دانلود آخرین آهنگ‌های منتشر شده در سایت smusic.ir</title>
                <link>https://virgool.io/@uyseali/%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D9%84%DB%8C%D9%86%DA%A9-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D8%A2%D8%AE%D8%B1%DB%8C%D9%86-%D8%A2%D9%87%D9%86%DA%AF-%D9%87%D8%A7%DB%8C-%D9%85%D9%86%D8%AA%D8%B4%D8%B1-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%B3%D8%A7%DB%8C%D8%AA-smusicir-hbmii64laedz</link>
                <description> https://gist.github.com/e7842c05d7351bdbc7af9218db3f83ce.git ابتدا محتوای صفحه اصلی سایت smusic را با استفاده از تابع file_get_contents دریافت میکنیم.سپس با استفاده از تابع preg_match_all و عبارات باقاعده لینک صفحات آهنگهای موجود در صفحه اصلی سایت را بدست می آوریم.در این لحظه با استفاده از یک حلقه محتوای هریک از صفحات را تک به تک استخراج کرده و با کمک عبارات باقاعده لینک مستقیم آهنگ‌ها را استخراج می‌کنیم.</description>
                <category>uYSeali</category>
                <author>uYSeali</author>
                <pubDate>Sat, 31 Aug 2024 22:18:28 +0330</pubDate>
            </item>
            </channel>
</rss>