برد فرستنده و گیرندهی صدا با SIM800 و بلوتوث؛ کنترل تماس از MATLAB
برد کوچکی با SIM800L و ماژول بلوتوث که از MATLAB تماس میگیرد و فایل صوتی را در تماس پخش میکند، و تماس ورودی را خودکار جواب میدهد و ضبط میکند؛ بخشی از یک پروژهی بزرگتر.
معرفی
این برد با یک ماژول SIM800 و یک ماژول بلوتوث، یک تماس تلفنی را از روی کامپیوتر کنترل میکند. برنامههایی که با MATLAB نوشتم از طریق این برد میتوانند یک فایل صوتی را پخش کنند، شمارهای را بگیرند، فایل صوتی را در طول تماس پخش کنند و بعد تماس را قطع کنند. برد همچنین میتواند منتظر تماس ورودی بماند، خودکار پاسخ بدهد، صدای دریافتی را ضبط کند و در یک فایل ذخیره کند.
این برد بخشی از یک پروژهی بزرگتر برای یک کاربرد خاص است و اینجا فقط خود برد و ابزار آن توضیح داده میشود. هم سختافزار (شماتیک و PCB) و هم نرمافزار را خودم ساختم.
برد چه کاری میکند
تماسگیرنده (ارسال صدا): شماره را میگیرد، منتظر میماند تا طرف مقابل جواب بدهد، فایل صوتی را پخش میکند و تماس را قطع میکند.
دریافتکننده: منتظر تماس ورودی میماند، خودکار جواب میدهد، تا پایان تماس صدا را ضبط میکند و با نام شامل تاریخ و ساعت ذخیره میکند.
کنترل از کامپیوتر: فرمانها (دستورهای AT) از درگاه سریال USB میروند و صدا از ماژول بلوتوث عبور میکند.
نمودار زیر اجزای برد و مسیر کنترل و صدا را نشان میدهد.
بخشهای سختافزار
SIM800L: ماژول GSM که تماس را برقرار میکند و صدا را به شبکه میفرستد و میگیرد.
JDY-67: ماژول بلوتوث صوتی. صدای کامپیوتر از راه بلوتوث وارد برد میشود و صدای دریافتی هم از همان راه به کامپیوتر برمیگردد.
USB به سریال: تراشهی CH340N با کانکتور micro-USB، برای فرستادن فرمانها به ماژول از کامپیوتر.
تغذیه: ورودی جک DC و مبدل کاهندهی LM2596 با سلف و دیود، که ولتاژ تمیز و جریان کافی برای SIM800L میدهد. SIM800L در لحظهی ارسال جریان زیادی میکشد و باید تغذیهی پایدار داشته باشد.
کلید و LED: یک کلید کشویی و چند LED نشانگر.
PCB
برد را در Altium Designer طراحی کردم و دو نسخه ساختم؛ نسخهی دوم اصلاحشدهی اولی است و در عکسها میبینید. ماژولهای SIM800L و JDY-67 روی برد نصب میشوند و مبدل تغذیه و کانکتورها دور آنها قرار دارند. سطح مس بزرگ برای مسیر تغذیه و ماژول GSM در تصویر چیدمان دیده میشود. برد دوتایی ساخته و مونتاژ شد.
نرمافزار (MATLAB)
همهی برنامههای MATLAB را خودم نوشتم. دو دستهاند: ابزار کنترل تماس، و ابزار اندازهگیری کیفیت صدا.
کنترل تماس:
callAndPlayVoice: درگاه سریال را باز میکند، شماره را با دستور AT میگیرد، وضعیت تماس را مرتب بررسی میکند تا طرف مقابل جواب بدهد، بعد فایل صوتی را پخش میکند و با پایان آن تماس را قطع میکند.
autoAnswerAndRecord: پیامهای ماژول را دائم میخواند. با دیدن «RING» تماس را جواب میدهد و ضبط را شروع میکند، و با «NO CARRIER» ضبط را متوقف میکند و فایل WAV را با نامی شامل تاریخ و ساعت ذخیره میکند. ضبط از کارت صدای بلوتوث انجام میشود.
playAudioGUI: پخشکنندهی کوچک با شکل موج، خط پیشرفت، نمایش زمان و دکمهی توقف.
send_command: فرستادن دستور به ماژول، گرفتن پاسخ و حذف خطهای خالی.
ابزارهای کمکی: فهرست کارتهای صدا و درگاههای سریال برای پیداکردن دستگاه درست، و ضبط صدا با ۸ کیلوهرتز، ۱۶ بیت و تککاناله.
اندازهگیری کیفیت: مجموعهای از برنامهها که یک سیگنال آزمون را از مسیر تماس میفرستند و سیگنال دریافتی را با ارسالی مقایسه میکنند. دریافتی را با همبستگی متقابل با ارسالی همتراز میکنند (چون تأخیر مسیر هر بار فرق میکند) و بعد MSE و SNR را حساب میکنند و نمودار میکشند. فایلها هم برای ماژول به ۸ کیلوهرتز، تککاناله و ۱۶ بیت تبدیل میشوند.
چارچوب شبیهسازی: یک چارچوب MATLAB هم نوشتم که مسیر صدای یک تماس GSM را شبیهسازی میکند و چند اسکریپت پردازش سیگنال برای آزمایش ایدهها. با آن میشود هر ایده را اول در شبیهسازی امتحان کرد و بعد روی برد اجرا کرد.
پیش از MATLAB، ماژولها را با چند اسکریپت پایتون هم آزمایش کردم (تماس و پیامک با SIM800 و فرمان به ماژول بلوتوث).
مشخصات
ماژول GSM: SIM800L، ماژول بلوتوث صوتی: JDY-67
USB به سریال: CH340N با micro-USB
تغذیه: جک DC با مبدل کاهندهی LM2596
کنترل: MATLAB، با دستورهای AT روی درگاه سریال، همراه با ابزار اندازهگیری SNR و MSE
طراحی سختافزار: Altium Designer، دو نسخهی PCB
نتیجه
یک برد کوچک که از روی کامپیوتر تماس میگیرد و فایل صوتی پخش میکند، و تماسهای ورودی را خودکار جواب میدهد و ضبط میکند؛ ابزاری که برای یک پروژهی بزرگتر ساخته شد.
از من حمایت کنید
اگر این نوشتهها به کارتان آمد، با یک حمایت کوچک به ادامهی آنها کمک کنید.
گالری
وبلاگ
مطالب مرتبط
دربارهی این پروژه سوالی دارید؟
اگر دربارهی این پروژه سوالی دارید یا پروژهای مشابه در دست دارید، خوشحال میشوم با من در ارتباط باشید.