سلام به همه دوستان متخصص،
من در حال کار روی یک پروژه برای کنترل کولر گازیام با استفاده از یک برد ESP32-S3 و MicroPython هستم و در مرحله نهایی به یک مشکل برخوردهام که امیدوارم بتوانید در حل آن به من کمک کنید.
**## هدف پروژه:**
ساخت یک فرستنده مادون قرمز برای شبیهسازی دقیق سیگنال کنترل اصلی کولر گازی و کنترل آن از راه دور.
**## تجهیزات و نرمافزار:**
-
فرستنده: برد ESP32-S3-WROOM-1 با آخرین فریمور رسمی MicroPython (v1.26.1).
-
قطعات فرستنده: یک LED مادون قرمز قدرتمند (TSAL6200) که با یک ترانزیستور 2N2222 و منبع تغذیه ۵ ولت جداگانه تقویت شده است.
-
گیرنده (برای ضبط و عیبیابی): یک برد Raspberry Pi Pico W به همراه یک ماژول گیرنده استاندارد TSOP1138.
-
نرمافزار: از کتابخانه معتبر micropython-ir (کلاس Player) برای ارسال سیگنال استفاده میکنم.
**## مراحلی که تا الان طی کردهام:**
-
ضبط اولیه: ابتدا سیگنال را با یک دیود نوری ساده ضبط کردم که متوجه شدم به دلیل نویز و عدم حذف موج حامل، دادهها غیرقابل اطمینان هستند.
-
ارتقا گیرنده: یک گیرنده استاندارد TSOP1138 تهیه کردم و با آن موفق به ضبط یک سیگنال بسیار تمیز، پایدار و تکرارپذیر از کنترل اصلی شدم.
-
تحلیل پروتکل: با تحلیل سیگنال تمیز، مشخصات پروتکل را به دست آوردم. این یک پروتکل اختصاصی (شبیه به NEC) با مشخصات زیر است:
-
هدر: پالس روشن ~3030µs و پالس خاموش ~1500µs.
-
کدگذاری: پالس روشن ثابت ~570µs و پالس خاموش متغیر (~400µs برای بیت ۰ و ~1200µs برای بیت ۱).
-
طول داده: متغیر (بستههایی با طولهای مختلف برای دستورات متفاوت ضبط شده است).
-
-
تأیید سیگنال ارسالی: برای اطمینان از صحت عملکرد فرستندهام، یک تست حلقه بسته انجام دادم. سیگنال تولید شده توسط ESP32 را با گیرنده Pico+TSOP دریافت کردم. نتیجه عالی بود و تأیید شد که فرستنده من در حال تولید یک سیگنال کاملاً تمیز، بدون نویز و با ساختار صحیح است.
**## مشکل فعلی من کجاست؟**
با وجود اینکه تأیید کردهام سیگنال ارسالی کاملاً تمیز و صحیح است، کولر گازی هیچگونه واکنشی (حتی یک صدای بیپ) به آن نشان نمیدهد.
-
تمام فرکانسهای حامل رایج (30, 33, 36, 38, 40, 56 کیلوهرتز) را به صورت سیستماتیک تست کردهام.
-
کنترل اصلی خود کولر به درستی و بدون هیچ مشکلی کار میکند.
**## سوال اصلی من:**
با توجه به اینکه دادهها، سختافزار فرستنده و کدنویسی به نظر صحیح میرسند، چه عامل ناشناخته دیگری میتواند باعث شود که گیرنده کولر گازی سیگنال را نادیده بگیرد؟
آیا ممکن است مشکل از موارد بسیار ظریفی مانند «دیوتی سایکل» (Duty Cycle) موج حامل (که من روی ۳۳٪ و ۵۰٪ تست کردهام) یا ویژگی خاصی در پروتکل باشد که من از آن بیخبرم؟
از هرگونه ایده یا راهنمایی شما بسیار سپاسگزار خواهم بود.