ماژول MT8870 دریافت کدهایDTMF
ماژول MT8870 دریافت کدهایDTMF
ماژول MT8870 یک ماژول دیجیتالی است که برای تشخیص تماس دهنده در شبکه های تلفنی استفاده می شود. این ماژول با شناسایی تماس دهنده با استفاده از سیگنال DTMF که توسط گوشی تلفن تولید می شود، کار می کند. این ماژول می تواند به طور مستقیم به خط تلفن وصل شود و به وسیله آن، می تواند سیگنال های DTMF را دریافت کرده و آنها را به کد دیجیتال تبدیل کند. سپس، کد دیجیتال به میکروکنترلر یا سایر مدارهای الکترونیکی ارسال می شود تا اطلاعات لازم را برای انجام عملیات مورد نظر دریافت کنند. با استفاده از این ماژول، می توان برای کاربردهای مختلفی از جمله خط تلفن های هوشمند، روبات های تلفنی، سامانه های خودکار پاسخگویی تلفنی و سیستم های امنیتی استفاده کرد. کدهای DTMF یک روش انتقال دیتا در بستر تلفن همراه است. به کمک این کدها شما می توانید با شماره گیری اعداد حین تماس تلفنی، دیتا منتقل کنید. به کمک این ماژول می توانید ورودی صدای دریافتی را به اعداد DTMF تبدیل کنید. راه اندازی و کار با این ماژول بسیار ساده است؛ کافیست ورودی صدا متصل شود، سپس در خروجی می توانید عدد DTMF معادل با پالس ورودی را دریافت کنید.
مشخصات فنی ماژول MT8870 دریافت کدهایDTMF
ولتاژ کاری: 2.5 تا 5.5 ولت DC
محدوده فرکانسی: 3.58 مگاهرتز
حداکثر مصرف جریان: 5 میلی آمپر
قابلیت شناسایی تماس دهنده با استفاده از سیگنال DTMF 16 کلیدی
خروجی های دیجیتال با فرمت 4 بیتی
خروجی های تایمر برای سنجش طول پالس های DTMF
قابلیت کار در حالت های مختلف مانند burst و continuous
دارای خروجی های آنالوگ برای شناسایی صدا و تنظیم میزان حساسیت
لازم به ذکر است که این مشخصات فنی به عنوان یک مرجع عمومی ارائه شده اند و ممکن است در مدل های مختلف ماژول MT8870 تفاوت داشته باشند. بنابراین، برای استفاده از این ماژول بهتر است به دیتاشیت مربوطه و یا دفترچه راهنمای استفاده از آن مراجعه کنید.
پایه های pinout ماژول MT8870
ماژول MT8870 با 18 پایه عرضه می شود که هر کدام از آنها نقش مشخصی در عملکرد ماژول دارند. پایه های این ماژول به شرح زیر هستند.
VCC: پایه ورودی تغذیه با ولتاژ DC 2.5 تا 5.5 ولت
GND: پایه زمین
IN1 تا IN4: ورودی های سیگنال DTMF که از طریق گوشی تلفن وارد می شوند
Q1 تا Q4: خروجی های دیجیتال با فرمت 4 بیتی که حاوی کد DTMF تشخیص داده شده هستند
TOE: ورودی کنترل کننده خروجی ها که در صورت فعال بودن، خروجی ها فعال می شوند و در غیر این صورت خاموش می شوند
STQ: خروجی اعلام کننده کد DTMF تشخیص داده شده در حالت آنالوگ
OSC1 و OSC2: پایه های ورودی و خروجی کوارتز اکسیلاتور
INH: ورودی کنترل کننده قطع شدن مداوم شنود DTMF
ACK: خروجی اعلام کننده تشخیص درست کد DTMF
STS: خروجی اعلام کننده تشخیص اشتباه کد DTMF
FLT: خروجی اعلام کننده خطای سیستم
لازم به ذکر است که برخی از پایه ها ممکن است در مدلهای مختلف ماژول MT8870 تفاوت داشته باشند.
به همراه ماژول MT8870 چه اقلامی باید خریداری شود؟
میکروکنترلر یا مدار منطقی: برای پردازش خروجی های دیجیتال ماژول MT8870
الکترولیت های کریستال: برای تولید سیگنال کوارتز اکسیلاتور و روشن شدن ماژول MT8870
مقاومتها: برای حفاظت و تعادل کردن جریان در مدار
کانکتورها: برای اتصال به ورودی و خروجی های ماژول MT8870
منبع تغذیه: برای تامین ولتاژ DC 2.5 تا 5.5 ولت برای ورودی ماژول MT8870
برد پروتوتایپ: برای طراحی و ارتباط بین ماژول MT8870 و سایر اجزای مدار
لازم به ذکر است که برخی از این موارد ممکن است براساس نیازهای مدار مختلف تغییر کنند. بنابراین، قبل از شروع به طراحی و ساخت مدار با ماژول MT8870، بهتر است دیتاشیت مربوطه و یا منابع دیگری که مرتبط با پروژه شما هستند را مطالعه کنید.
راه اندازی ماژول MT8870 با آردوینو
برای راه اندازی ماژول MT8870 با آردوینو، میتوانید از کتابخانهی DTMFDecoder استفاده کنید. این کتابخانه به شما امکان تشخیص کلیدهای DTMF ارسال شده توسط یک گوشی تلفن را میدهد. به طور کلی، برای راه اندازی ماژول MT8870 با آردوینو، مراحل زیر را دنبال میکنیم. اتصال پایههای VCC، GND، STQ، Q4، Q3، Q2 و Q1 به طور مستقیم به پایههای مناسب آردوینو انجام میدهیم. با استفاده از کتابخانهی DTMFDecoder، یک شیء جدید از کلاس DTMF را ایجاد میکنیم. با فراخوانی تابع readDTMF()، دادههای DTMF از ماژول MT8870 دریافت میشوند و در شیء ایجاد شده در مرحله قبل ذخیره میشوند. با فراخوانی تابع getLastDTMF()، آخرین کلید DTMF دریافت شده بازگشت داده میشود. برای مثال، کد زیر نمونهای از راه اندازی ماژول MT8870 با آردوینو با استفاده از کتابخانهی DTMFDecoder است.
#include <DTMFDecoder.h>
DTMF dtmf; // ایجاد یک شیء از کلاس DTMF
void setup() {
Serial.begin(9600); // شروع ارتباط با سریال
}
void loop() {
if (dtmf.readDTMF()) { // دریافت داده DTMF
char key = dtmf.getLastDTMF(); // دریافت آخرین کلید DTMF
Serial.println(key); // چاپ کلید دریافت شده در سریال
}
}
در این کد، با استفاده از تابع readDTMF()، دادههای DTMF دریافت میشوند و با فراخوانی تابع getLastDTMF()، آخرین کلید DTMF دریافت شده بازگشت داده میشود. سپس با استفاده از تابع Serial.println()، کلید دریافت شده در سریال مانیتور نمایش میدهد.
راه اندازی ماژول MT8870 با میکروپایتون و ESP32
برای راه اندازی ماژول MT8870 با میکروپایتون و ESP32، میتوانید از کتابخانهی machine_DTMF استفاده کنید. این کتابخانه به شما امکان تشخیص کلیدهای DTMF ارسال شده توسط یک گوشی تلفن را میدهد. برای استفاده از این کتابخانه، ابتدا باید آن را نصب کنید. برای نصب کتابخانه machine_DTMF، میتوانید از ابزار پایپ (pip) استفاده کنید. برای این کار، دستور pip install machine_DTMF را در ترمینال وارد کنید. سپس با استفاده از مثال کد زیر، میتوانید ماژول MT8870 را با میکروپایتون و ESP32 راهاندازی کنید.
from machine import Pin
from machine import DTMF
# تعریف پایههای ماژول MT8870
STQ_PIN = 15
Q4_PIN = 2
Q3_PIN = 4
Q2_PIN = 16
Q1_PIN = 17
# تعریف پایههای ESP32 برای متصل کردن به ماژول MT8870
stq = Pin(STQ_PIN, Pin.IN)
q4 = Pin(Q4_PIN, Pin.IN)
q3 = Pin(Q3_PIN, Pin.IN)
q2 = Pin(Q2_PIN, Pin.IN)
q1 = Pin(Q1_PIN, Pin.IN)
# ایجاد یک شیء از کلاس DTMF
dtmf = DTMF(stq, q4, q3, q2, q1)
# حلقه اصلی برنامه
while True:
if dtmf.has_key():
key = dtmf.read_key()
print(key)
در این کد، با استفاده از تابع DTMF()، یک شیء جدید از کلاس DTMF ایجاد میشود. سپس با استفاده از تابع has_key()، بررسی میشود که آیا یک کلید DTMF دریافت شده است یا نه. اگر کلیدی دریافت شده باشد، با استفاده از تابع read_key()، آن کلید خوانده شده و چاپ میشود. توجه داشته باشید که پایههای ماژول MT8870 باید به پایههای مناسب ESP32 متصل شوند.
راه اندازی ماژول MT8870 با میکروپایتون و rp2040 و نمایشگر OLED
برای راه اندازی ماژول MT8870 با میکروپایتون و rp2040 و نمایشگر OLED، میتوانید از کتابخانهی machine_DTMF و کتابخانهی ssd1306 استفاده کنید. کتابخانه machine_DTMF به شما امکان تشخیص کلیدهای DTMF ارسال شده توسط یک گوشی تلفن را میدهد و کتابخانه ssd1306 نیز برای نمایش متن و تصاویر روی نمایشگر OLED استفاده میشود. برای استفاده از این کتابخانهها، ابتدا باید آنها را نصب کنید. برای نصب کتابخانههای machine_DTMF و ssd1306، میتوانید از ابزار پایپ (pip) استفاده کنید. برای این کار، دستورات زیر را در ترمینال وارد کنید.
pip install machine_DTMF
pip install ssd1306
سپس با استفاده از مثال کد زیر، میتوانید ماژول MT8870 را با میکروپایتون و rp2040 و نمایشگر OLED راهاندازی کنید.
from machine import Pin, I2C
from machine import DTMF
import ssd1306
# تعریف پایههای ماژول MT8870
STQ_PIN = 15
Q4_PIN = 2
Q3_PIN = 4
Q2_PIN = 16
Q1_PIN = 17
# تعریف پایههای rp2040 برای متصل کردن به ماژول MT8870
stq = Pin(STQ_PIN, Pin.IN)
q4 = Pin(Q4_PIN, Pin.IN)
q3 = Pin(Q3_PIN, Pin.IN)
q2 = Pin(Q2_PIN, Pin.IN)
q1 = Pin(Q1_PIN, Pin.IN)
# ایجاد یک شیء از کلاس DTMF
dtmf = DTMF(stq, q4, q3, q2, q1)
# تعریف پایههای I2C برای نمایشگر OLED
i2c = I2C(0, scl=Pin(9), sda=Pin(8))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
# نمایش متن خوشآمدید روی نمایشگر OLED
oled.fill(0)
oled.text("Welcome!", 0, 0)
oled.show()
# حلقه اصلی برنامه
while True:
if dtmf.has_key():
key
کاربردهای ماژول MT8870 دریافت کدهایDTMF
اتصال به تلفن ثابت جهت دریافت کدهای DTMF
طراحی و پیاده سازی سیستم اپراتور تلفنی
طراحی و پیاده سازی سیستم تلفن گویا
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.