در مطلب قبلی راه اندازی SIM800 به بررسی و نحوه دریافت و ارسال ایمیل پیوست دار پرداخته شد. در این مطلب نحوه دریافت، تشخیص و فعال سازی کد های DTMF توسط ماژول SIM800 بررسی خواهد شد. پس با من تا انتهای مطلب همراه باشید. همچنین شما میتونید سایر مطلب من رو از این قسمت مطالعه کنید.
معرفی DTMF
DTMF مخفف عبارت Dual-Tone Multi-Frequency و یکی از روش های ارسال سیگنال میباشد. DTMF توسط شرکت Bell Labs معرفی شده است.
اگر دقت کرده باشید وقتی که قصد تماس با شماره ای را داشته باشیم و اعداد رو از روی صفحه کلید تلفن بزنید، یک سری صداهایی تولید میشود که هر کدام دارای یک فرکانس مشخص هستند. پس صدایی هم که ایجاد میشه با صدای کلید های دیگر متفاوت هست. به این حالت شماره گیری در حالت تُن گفته میشود. در تلفن های قدیمی بجای استفاده از این روش از روش پالس استفاده میکردند. در این حالت با زدن هر کلید متناسب با اون یک تعداد پالس تولید و ارسال میشد. در تصویر زیر، فرکانس ایجاد شده توسط هر کلید رو قابل مشاهده است.
در مداراتی که قابلیت تشخیص DTMF بصورت اتوماتیک وجود ندارد، نیاز به رمزگشایی کد های DTMF ارسالی با استفاده از تراشه MT8870 میباشد که آموزش آن را میتوانید در این مطلب مطالعه کنید. ماژول های SIM800 دارای این قابلیت هستند و به محض زدن یک کلید از طرف کاربر، این کد ها شناسایی خواهد شد. برای اینکار باید قابلیت شناسایی DTMF در ماژول را فعال کنیم.
قطعات مورد نیاز
- برد راه انداز ماژول SIM800L
- LM2596 Buck DC-DC Convertor
- آداپتور 12V
- آنتن GSM با سوکت IPEX
- مبدل سریال
فعال کردن قابلیت شناسایی DTMF در ماژول SIM800
برای اینکه از این قابلیت استفاده کنیم و به محض برقرای تماس با SIM800، اگر کلیدی زدی شد متوحه بشیم باید این قابلیت رو فعال کنیم. برای فعال کردن از دستور زیر استفاده میکنیم.
AT+DDET=1 OK
عبارت OK به معنی این هست که با موفقیت فعال شد. حال در صورتی که با SIM800 تماس برقرار بشه و کلیدی زده بشه، ماژول اون رو شناسایی و به شما نمایش خواهد داد.
بررسی دستور AT+DDET=1 در ماژول SIM800
در این بخش به بررسی پارامتر های این دستور پرداخته میشود.
دستور ?=AT+DDET
با ارسال این دستور، حالات مختلفی که این دستور میتواند داشته باشد را بدست خواهیم آورد.
AT+DDET=? +DDET: (0,1),(0-10000),(0,1),(0,1) OK
دستور ?AT+DDET
با استفاده از این دستور، وضعیت فعلی تنظیم شده با این دستور را متوجه خواهیم شد. در صوتی که از قبل شناسایی DTMF فعال نشده باشد، بصورت پیشفرض برابر “DDET: 0,0,0,0+” خواهد بود.
AT+DDET? +DDET: 1,0,0,0 OK
پارامتر های قابل تنظیم این دستور در زیر آمده است.
<DDET: <mode>,<interval>,<reportMode>,<ssdet+
برای تنظیم این پارامتر ها از دستور زیر استفاده میشود.
AT+DDET=<mode>,[<interval>][,<reportMode>][,<ssdet>]
- در صورتی که <reportMode> برابر 0 تنظیم شده باشد، پاسخ ماژول در هنگام تشخیص DTMF مشابه زیر خواهد بود.
+DTMF: <key>
پارامتر <key>: کلیدی (1-9,*,#,A,B,C,D) که شناسایی شده است.
- در صورتی که <reportMode> برابر 1 تنظیم شده باشد، پاسخ ماژول در هنگام تشخیص DTMF مشابه زیر خواهد بود.
+DTMF: <key>,<last time>
پارامتر <key>: کلیدی (1-9,*,#,A,B,C,D) که شناسایی شده است.
پارامتر <last time>: مدت زمانی که کلید در حال شناسایی/پخش است. برحسب میلی ثانیه.
پارامتر <ssdet>: فعال یا غیر فعال بودن شناسایی سیگنال فرکانس صوتی. صفر به منزله غیر فعال کردن و 1 به منزله فعال کردن است.
بررسی پارامتر های دیگر:
- <mode> برای فعال یا غیر فعال کردن تشخیص و رمزگشایی DTMF. صفر برای غیر فعال کردن و 1 برای فعال کردن
- <interval> حداقل زمان شناسایی بین دو کلید مشابه. محدوده قابل تنظیم بین 0 تا 10000 میلی ثانیه میباشد. بصورت پیشفرض مقدار این پارارمتر برابر 0 است.
- <reportMode> حالت گزارش URC یا Unsolicited Result Codes. در صورت تنظیم این پارامتر با 0 فقط کلید یا کد DTMF شناسایی خواهد شد. در صورت تنظیم پارامتر با 1، علاوه بر این مورد آخرین زمانی که نیز گزارش داده شده است بر حسب میلی ثانیه نیز بیان خواهد شد.
توضیح:
URC پیام ها یا دیتایی هست که ماژول برای شما ارسال میکند تا اطلاعات یک رویداد را در اخیتار شما قرار دهد. مثلا “CDS+” یا “CDSI+”.
شناسایی DTMF در ماژول SIM800
بعد از فعال کردن قابلیت DTMF در ماژول، به سیم کارت روی ماژول تماس بگیرید. برروی سریال مانیتور عبارت RING مشاهده میشود. برای قبول کردن تماس ATA را ارسال نمایید. در این حالت اگر کلیدی را بزنید، روی سریال مانیتور عدد مورد نظر نمایش داده خواهد شد. اگر پشت سر هم یک کلید را بزنید، ماژول به ازای هر بار که زده باشید آن را شناسایی و نمایش خواهد داد. مثلا در کادر مشخص شده تصویر زیر، من دو بار پشت هم کلید ستاره و 7 رو زدم که درست شناسایی شده است.
نکته: بعد از فعال کردن قابلیت شناسایی DTMF، این تظنیمات ذخیره نمیشود. یعنی بعد از راه اندازی ماژول این قابلیت غیر فعال میشود. برای رفع این مورد بعد از دستور فعال سازی، دستور زیر را برای ذخیره کردن این تنظیمات ارسال کنید.
AT&W OK
نتیجه گیری
در این مطلب به معرفی کد های DTMF و شماره گیری به روش تن پرداخته شد و همچنین نحوه فعال سازی قابلیت شناسایی DTMF معرفی گردید.
امیدوارم از این آموزش کمال بهره را برده باشید. در صورتی که هرگونه نظر یا سوال داشتید درباره این آموزش لطفا اون رو در انتهای همین صفحه در قسمت دیدگاه ها قرار بدید. در کوتاه ترین زمان ممکن به اون ها پاسخ خواهم داد. اگر این مطلب براتون مفید بود، اون رو حتما به اشتراک بگذارید. همینطور میتونید این آموزش را پس از اجرای عملی توی اینستاگرام با هشتگ microelecom# به اشتراک بگذارید و پیج مایکروالکام (microelecom@) رو هم منشن کنید.
درود بر شما
من میخوام از اعدادی که وارد میکنم بتونم به صورت شرط در میکرو استفاده کنم. باید چه کنم. در واقع داخل شرط باید چی را بررسی کنم.؟
باید دیتا دریافتی را دخل متغیر ذخیره کنید بعد داخل شرط بررسی کنید آیا متغیر برابر با عدد مورد نظرتون هستش یا خیر.
سپاسگزارم
درود بر شما
این را میدانم، فقط بگویید که این دینا آیا از طریق اینترانت یوزارت میاید،؟ یعنی همانند است ام اس هست. ؟
متوجه منظورتون نشدم!
توضیحات بسیار عالی . ممنون از زحمات شما جناب رشیدیانفر