آردوینو سیم کارت GSM - GPRS پروژه های آردوینو

کنترل وسایل برقی با تماس تلفنی Sim800c پرومیک Promake و آردوینو

create-relay-voice-control-dtmf-arduino-and-promake-shield-easy-iot-digispark

کنترل وسایل برقی به روش‌های مختلفی قابل اجرا است. یکی از روش‌های حرفه‌ای و منحصر به فرد از طریق تماس تلفنی است. در مجموعه آموزش های شیلدهای PROMAKE، این قسمت را به DTMF اختصاص دادیم. DTMF یک سیستم ارتباط بیسیم جهت تبادل داده در تماس تلفنی است. به کمک این فناوری می‌توانید وسایل برقی را از راه دور کنترل کنیم. در این آموزش قصد داریم به کمک این فناوری و با ارسال اعداد در تماس تلفنی، به رله فرمان دهیم. جهت پیاده سازی این پروژه، از شیلد PROMAKE استفاده می کنیم. این شیلد به ما این امکان را می دهد تا بدون نیاز به سیم کشی، به سادگی ارتباط بین برد آردوینو و واحدهای مختلف نظیر سنسورها را برقرار کنیم. در پروژه کنترل وسایل برقی با تماس تلفنی از شیلد آردوینو، شیلد GSM و شیلد رله کنترل استفاده می کنیم. در ادامه با مرجع تخصصی ماژول سیم کارت به زبان فارسی، دیجی اسپارک همراه باشید.

 


کنترل وسایل برقی با تماس تلفنی و DTMF


DTMF (Dual-Tone Multi-Frequency) یک سیستم کنترل صوتی است که از طریق تماس تلفنی و با استفاده از ماژول‌های سیم کارتی قابل استفاده است. این سیستم برای ارسال دستورات صوتی از طریق تماس تلفنی استفاده می‌شود. در سیستم DTMF، هر کلید تلفنی به یک ترکیبی از دو فرکانس صوتی اختصاص داده شده است. این دو فرکانس به صورت همزمان ارسال می‌شوند و با یکدیگر تداخل ندارند. این ترکیب‌های دو فرکانس صوتی برای نشان دادن هر کلید تلفنی مورد استفاده قرار می‌گیرند. برای مثال، در دیجیت ۱، دو فرکانس ۶۹۷ هرتز و ۱۲۰۹ هرتز همزمان ارسال می‌شوند. برای دیجیت ۲، دو فرکانس ۶۹۷ هرتز و ۱۳۳۶ هرتز به صورت همزمان استفاده می‌شوند و به همین ترتیب برای سایر دیجیت‌ها ترکیب‌های دو فرکانس متفاوتی استفاده می‌شوند. ماژول‌های سیم کارتی می‌توانند این سیستم را برای کنترل دستگاه‌ها یا سیستم‌های مختلف استفاده کنند. وقتی کاربر یک تماس تلفنی برقرار می‌کند و دستگاهی که به ماژول سیم کارتی متصل است، سیگنال DTMF را تشخیص می‌دهد، می‌تواند بر اساس آن دستورات مختلف را اجرا کند. به عنوان مثال، با فشردن یک دکمه روی تلفن همراه، سیگنال DTMF متناظر با آن دکمه ارسال می‌شود. ماژول سیم کارتی، این سیگنال را تشخیص می‌دهد و می‌تواند بر اساس آن عملیات مشخصی را انجام دهد. این عملیات می‌تواند شامل روشن یا خاموش کردن دستگاه، تنظیمات صدا، کنترل دستگاه‌های الکترونیکی و غیره باشد. از دیگر کاربردهای DTMF، کنترل از راه دور است. با استفاده از سیگنال DTMF در یک تماس تلفنی، می‌توان دستوراتی را به یک سیستم دیگر ارسال کرد و آن را کنترل کرد، مانند باز و بسته کردن درب‌ها، کنترل سیستم‌های امنیتی و سایر سیستم‌های هوشمند. در کل، سیستم کنترل از طریق تماس تلفنی با ماژول‌های سیم کارتی DTMF یک روش ساده و موثر برای ارسال دستورات صوتی و کنترل سیستم‌ها است.

 


هشت سناریو کاربردی با DTMF


سیستم DTMF در محدوده‌های مختلفی از پروژه‌ها و کاربردها استفاده می‌شود. تعدادی از پروژه‌هایی که به DTMF نیاز خواهند داشت را در ادامه بررسی می‌کنیم.

۱- سیستم‌های خانه هوشمند: در یک سیستم خانه هوشمند، می‌توان با استفاده از DTMF، از راه دور دستگاه‌ها را کنترل کرد، از جمله روشن و خاموش کردن روشنایی، تنظیم دما، کنترل سیستم امنیتی و سایر ویژگی‌ها

۲- درهای خودکار و سیستم‌های تحت فشار: کنترل با تماس تلفنی DTMF می‌تواند در کنترل درهای خودکار استفاده شود. با فرستادن سیگنال DTMF مناسب، می‌توان درها را باز و بسته کرد. همچنین، در سیستم‌های تحت فشار مانند ایستگاه‌های پمپ بنزین، می‌توان با استفاده از DTMF، تراکم و آزادسازی مخزن‌ها را کنترل کرد.

۳- سیستم‌های امنیتی: DTMF در سیستم‌های امنیتی مانند آژانس‌های امنیتی و سیستم‌های نظارتی مورد استفاده قرار می‌گیرد. با استفاده از دستورات DTMF، می‌توان مدارکی را بررسی کرد، دستگاه‌های امنیتی را فعال یا غیرفعال کرد و دستورات دیگری را برای مدیریت امنیت اجرا کرد.

۴- سیستم‌های کنترل روشنایی و صوت: DTMF می‌تواند در سیستم‌های کنترل روشنایی و صوت مورد استفاده قرار گیرد. مثلا در یک تئاتر یا سالن کنفرانس، با استفاده از DTMF می‌توان سیستم روشنایی و صوت را کنترل کرد و عملیات مختلفی مانند روشن و خاموش کردن نورها، تنظیم صدا و تغییر ورودی صوتی را انجام داد.

۵- سیستم کنترل خودرو: DTMF می‌تواند در سیستم‌های کنترل خودرو مورد استفاده قرار گیرد. با استفاده از تماس تلفنی و ارسال سیگنال DTMF، می‌توان ویژگی‌هایی مانند قفل/باز کردن خودرو، روشن/خاموش کردن موتور، کنترل ترمز و سایر عملیات را انجام داد.

۶- سیستم کنترل صوتی: DTMF می‌تواند در سیستم‌های کنترل صوتی مانند سیستم‌های صوتی خانگی، سیستم‌های هوشمند صوتی در خودرو و سیستم‌های پخش صوت در مکان‌های عمومی مورد استفاده قرار گیرد. با استفاده از دستورات DTMF، می‌توان تغییر حجم صدا، تغییر آهنگ و پخش موسیقی، کنترل پاسخ‌دهی به تماس‌ها و سایر عملیات را انجام داد.

۷- سیستم کنترل اتوماسیون صنعتی: در بخش اتوماسیون صنعتی، DTMF می‌تواند برای کنترل و مدیریت دستگاه‌ها و فرآیندهای صنعتی مورد استفاده قرار گیرد. با استفاده از دستورات DTMF، می‌توان تغییر وضعیت دستگاه‌ها، کنترل خروجی‌ها، انجام عملیات تعمیر و نگهداری و سایر کنترل‌های مربوطه را انجام داد.

۸- سیستم‌های پیام‌رسان و خدمات بانکی: DTMF در سیستم‌های پیام‌رسان و خدمات بانکی از طریق تماس تلفنی مورد استفاده قرار می‌گیرد. با فشردن دکمه‌های تلفن همراه و ارسال سیگنال مانند پرداخت قبض تلفن از طریق شماره ۹۹۹۰ برای همراه اول، یا دیگر روش‌های به کار رفته در تلفن بانک، همگی از کاربردهای DTMF هستند.

این موارد فقط چند مثال از پروژه‌هایی هستند که ممکن است نیاز به DTMF داشته باشند. در واقع، هر پروژه‌ای که نیازمند کنترل و ارتباط صوتی از راه دور باشد، می‌تواند از DTMF بهره ببرد.


شیلد PROMAKE برد آردوینو


در پست‌های قبلی به وفور در خصوص این شیلدها صحبت کرده‌ایم. اما اگر هنوز با شیلدهای پرومیک آشنایی ندارید. شیلدهای ProMake یکسری از شیلدهای مخصوص آردوینو بوده که کار طراحی نمونه اولیه و حتی در بعضی موارد محصولات خاص را بسیار بسیار ساده می‌کند. شیلدهای پرومیک که ساخت ایران هستند، برای انواع مختلفی از بردهای آردوینو طراحی و توسعه داده‌اند. به کمک این شیلدها می توان به سادگی و بدون نیاز به هیچ سیم کشی اضافه، ارتباط بین بردهای آردوینو و ماژول های مختلف را برقرار نمود. این شیلد که به سادگی روی برد آردوینو UNO قرار می گیرد، دارای امکانات جانبی بسیاری است. به عنوان مثال دارای پورت USB از نوع TYPEC یا تقسیم بندی انواع پروتکل‌ها، و افزودن پروتکل QWIIC است. در کنار این، وجود LED ها و کلید، به عنوان خروجی و ورودی تعبیه شده است. به تصویر زیر دقت کنید.

شیلد ProMake آردوینو uno - دیجی اسپارک

 

شیلد PROMAKE مخصوص آردوینو، دارای دو اسلات جداگانه است. هر اسلات دارای پایه هایی جهت اتصال شیلدهاست. بر روی این اسلات ها می‌توان شیلدهای مختلف PROMAKE نظیر GSM، GPS، رله و….. را قرار داد. در این آموزش هم ما قصد داریم تا از شیلد GSM جهت دریافت فرامین پیامک استفاده کنیم. پس بدون هیچ نگرانی کافیست ماژول‌ها را در محل مشخص شده قرار دهید و پروژه را راه اندازی کنید.

 


ماژول SIM800C سیم کارت پرومیک


پس از بررسی شیلد رله، نوبت به ماژول Sim800C پرومیک می‌رسد. ماژول GSM ماژول SIM800C یک شیلد بسیار کاربردی است. ماژول SIM800C یک ماژول ارتباطی GSM/GPRS است که توسط شرکت SIMCom تولید شده است. این ماژول قابلیت اتصال به شبکه‌های GSM و GPRS را داراست. همچنین قادر است ارتباطات صوتی و داده را بین دستگاه‌ها و سیستم‌های مختلف برقرار کند. ماژول SIM800C از نمونه‌های بسیار کوچکی از ماژول‌های ارتباطی است و دارای ابعاد کوچک و مصرف انرژی پایینی است. این ماژول از پروتکل‌های ارتباطی مختلفی مانند TCP/IP، HTTP، FTP و MQTT پشتیبانی می‌کند و قابلیت برقراری اتصالات اینترنتی را فراهم می‌کند. از کاربردهای رایج ماژول SIM800C می توان به سیستم‌های ردیابی خودرو، دستگاه‌های ارسال پیامک، سیستم های ارسال اطلاعات حسگری و برقراری ارتباط با اینترنت در مناطقی که پوشش شبکه ثابت موجود نیست اشاره کرد. به کمک این شیلد می توان ارتباط بی سیم در بستر شبکه موبایلی کشور برقرار کند. به کمک این شیلد می توان دقیقا همانند یک تلفن همراه، به شبکه موبایلی کشور متصل شد و به ارسال و دریافت پیامک، پرداخت.

ماژول سیم کارت sim800c پرومیک promake - دیجی اسپارک

 

شیلد GSM ماژول SIM800C، یک شیلد کاربردی است. به کمک این شیلد به سادگی و بدون نیاز به هیچ سیم کشی، می توانید ماژول را راه اندازی کنید. کافیست برای راه اندازی این شیلد، یک سیم کارت به ماژول متصل کنید. توجه داشته باشید که در این پروژه، شیلد ماژول سیم کارت به اسلات شماره ۱ متصل می شود. اسلات شماره ۱، بر روی شیلد آردوینو با عبارت Promake Module1 متصل می گردد.  در هنگام اتصال شیلد دقت داشته باشید که شیلد GSM به پایه های متناظر با شیلد آردوینو متصل گردد.

 


ماژول رله کنترل دو کاناله پرومیک


شیلدهای PROMAKE، بسیاری کاربردی هستند. به کمک این شیلدها می توانید بدون نیاز به سیم کشی، ارتباط بین بردها و سنسور/عملگر را فراهم کنید. یکی از شیلدهای بسیار کاربردی، شیلد رله دو کانال است. این شیلد از دو رله با جریان خروجی ۵ آمپر و ولتاژ ۲۵۰ ولت AC تشکیل شده است. این شیلد به سادگی می تواند بر روی شیلد آردوینو شرکت PROMAKE قرار گیرد.

ماژول رله دو کاناله promake - دیجی اسپارک

 

شیلد رله دو کانال بر روی شیلد آردوینو UNO ساخت PROMAKE قرار می گیرد. این شیلد باید در اسلات شماره ۲ قرار گیرد. بر روی شیلد آردوینو UNO، عبارت Promake Module 2 درج شده است. همچنین این شیلد، دقت کنید که پایه RLY2 باید در پایه D6 قرار گیرد.

 


کدهای پروژه کنترل وسایل برقی با تماس تلفنی


پس از آشنایی با قطعات، نوبت به آپلود کدها می رسد. در هنگام آپلود کدها، دقت داشته باشید که سوییچ S1 روی شیلد آردوینو UNO در حالت PROGRAM قرار گیرد. در خصوص این کلید دقت داشته باشید که بردهای آردوینو دارای رابط سریال هستند. بنابراین اگر این رابط در یک پروژه درگیر باشد، امکان آپلود کدها فراهم نیست. مگر اینکه ارتباط سریالی را قطع کنید. در شیلدهای پرومیک توسط کلید پروگرام، این قابلیت فراهم شده است و بدون نیاز به جدا سازی ماژول‌ها میتوانید روند پروگرام کردن را اجرا کنید.

#define relay_pin 6  //انتخاب پایه شماره ۴ آردویینو برای ارسال فرمان به رله
#define relay_pin2 9  //انتخاب پایه شماره ۴ آردویینو برای ارسال فرمان به رله
bool relay_state = false;   //تعیین وضعیت پایه رله، صفر برابر با false و یک برابر با true
void setup() {
  Serial.begin(115200);  //تنظیم باودریت برای اتصال به ماژول sim800l، نکته مهم اینکه در این پروژه از سریال سخت افزاری برای اتصال به ماژول سیم کارت استفاده شده
  //سریال سخت افزاری بر خلاف نرم افزاری، دارای سرعت به مراتب بیشتری بوده و دریافت فرمان از کاربر جهت فعال و یا غیر فعال سازی رله سریعتر اجرا می شود.
  pinMode(relay_pin, OUTPUT);   //تنظیم پایه ۴ به عنوان خروجی جهت فرمان به رله
  pinMode(relay_pin2, OUTPUT);
  digitalWrite(relay_pin, LOW);  //تنظیم پایه خروجی به صورت
  digitalWrite(relay_pin2, LOW);  //تنظیم پایه خروجی به صورت صفر
  check_connect();   //تابع کنتررل اتصال به شبکه GSM
  Serial.print("AT+DDET=1\r\n");   //فعال سازی DTMF جهت دریافت کلید
  Serial.flush();
  delay(500);
}
void loop() {
  char RING[] = {"RING"};
  if (Serial.find(RING) == true) { //زمانیکه تماس با ماژول گرفته شود، ماژول عبارت RING را بر می گرداند
    Serial.readString();//پایک کردن داده های موجوددر بافر
    Serial.println("ATA\r\n");        //قبول تماس
    Serial.flush();
    delay(100);
    Serial.readString();
    call_handler();   //مدیریت تماس، دریافت رمز و باز نمودن قفل در صورت صحت رمز وارد شده
  }
}
void check_connect() {
  char ccalr[] = {"+CCALR: 1"};
  Serial.println("WAITING TO CONNECT TO NETWORK");
  Serial.flush();
  while (true) {
    Serial.print("AT+CCALR?\r\n"); // ارسال دستور AT+CCALR به ماژول، در صورتیکه ماژول به شبکه متصل گردد ماژول عبارت CCALR: 1 را بر میگرداند
    if (Serial.find(ccalr) == true) // نتیجه تابع find در صورتی true می شود که عبارت مورد نظر یافت شده باشد، در غیر اینصورت درون حلقه تا زمانیکه نتیجه مورد نظر یافت نشود، باقی خواهد ماند
      break; // خروج از حلقه با یافتن پیام مورد نظر
  }
  Serial.println("CONNECTED TO NETWORK");
  Serial.flush();
}
void call_handler() {
  String data = "";
  unsigned long  tm = millis();   //به کمک این متغیر زمان را اندازه می گیریم.
  while ((millis() - tm ) < 8000) {
    if (Serial.available() > 0)
      data = Serial.readString();
    //در کد فوق پس از برقراری تماس تلفنی برای ۸ ثانیه صبر کرده تا داده ها را از طریق DTMF دریافت کنیم.
    //****************************************************************************************************
    if (data.indexOf("+DTMF: 1") > 0) {
      digitalWrite(relay_pin, HIGH);
      break;
    }
    //****************************************************************************************************
    else if (data.indexOf("+DTMF: 0") > 0) {
      digitalWrite(relay_pin, LOW);
      break;
    }
    //****************************************************************************************************
    else if (data.indexOf("+DTMF: 2") > 0) {
      digitalWrite(relay_pin2, HIGH);
      break;
    }
    //****************************************************************************************************
    else if (data.indexOf("+DTMF: 3") > 0) {
      digitalWrite(relay_pin2, LOW);
      break;
    }
  }
  Serial.print("ATH\r\n");  //قطع تماس تلفنی
  Serial.flush();
}

 


 اجرای پروژه کنترل وسایل برقی با تماس تلفنی


پس از آپلود کدها، نوبت به اجرای پروژه کنترل وسایل برقی با تماس تلفنی می‌رسد. برای اجرای پروژه موارد زیر را دقت داشته باشید. جرای پروژه مرحله‌ای است که همه چیز آماده شده و بایست تغذیه برقرار شود. با توجه به اینکه پروژه را با تجهیزات پرومیک Promake که با عنوان Easy IoT در بازار ایران یافت می‌شوند، اجرا شده است. بسیار سریع و بدون نگرانی از خطاهای اتصالاتی آن را اجرا کنید. جهت اجرای پروژه، موارد زیر را باید رعایت کنید.

۱- سوییچ S1 روی وضعیت UART باشد.

۲- برد حتما باید آداپتور ۱۲ ولت با جریان حداقل ۲ آمپر تغذیه شود.

۳- برای فعال سازی ماژول SIM800C، دکمه PWRKEY را چند ثانیه نگه داشته و سپس رها کنید. پس از این چراغ چشمک زن روشن شده و پس از اتصال به شبکه، هر سه ثانیه یکبار چشمک می زند. پس از اتصال به شبکه، می بایست به ماژول سیم کارت زنگ بزنید. زمانیکه زنگ زدید، تماس پذیرفته می شود. با فشردن کلیدها، وضعیت رله ها به صورت زیر تنظیم می شوند.

کلید شرح عملکرد
رله شماره ۱ قطع ۰

 رله شماره ۱ وصل

۱
رله شماره ۲ قطع ۲
رله شماره ۲ وصل ۳

 


 لوازم مورد نیاز


لینک خرید برد آردوینو، کلیک کنید

لینک خرید شیلد PROMAKE ماژول SIM800، کلیک کنید

لینک خرید شیلد آردوینو PROMAKE، کلیک کنید

لینک خرید شیلد رله دو کانال PROMAKE، کلیک کنید

 


جمع بندی


کنترل رله ها از راه دور از جمله پروژه هایی است که کاربردی زیادی دارد. یکی از روش های کنترل رله ها، استفاده از ماژول های مخابراتی سیم کارت است. به کمک این ماژول ها می توان وضعیت رله ها را بدون محدودیت فاصله، از هر جایی!!!!! کنترل نمود. یکی از روش های کنترل رله، استفاده از پیامک است. با ارسال پیامک می توان رله ها را کنترل نمود. اما یک روش، استفاده از DTMF است. این فناوری به ما کمک می کند تا از کلیدهای صفحه کلید، داده ها را ارسال نمود. در این آموزش، به کمک شیلدهای PROMAKE پروژه را اجرا نمودیم. به کمک شیلدهای آردوینو PROMAKE بدون نیاز به سیم کشی، می توان ماژول های مختلف را به برد آردوینو، متصل نمود. بدین ترتیب پروژه به شکلی ساده و البته منظم، اجرا خواهد شد.

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

درباره نویسنده

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

هرچه می آموزم میبینم که خیلی کم آموختم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲ دیدگاه