آموزش آردوینو

راه اندازی Sim800L با آردوینو (تماس و پیامک SMS)

ماژول SIM800L یکی از ارزان ترین ماژول های GSM/GPRS است که در ایران بسیار محبوب است. پروژه های مرتبط با این ماژول بسیار زیاد هستند و در اکثر کاربرد هایی که ما به ارسال و دریافت اس ام اس یا برقراری تماس نیاز داریم، این ماژول را استفاده میکنیم.

مدار اتصال Sim800l به آردوینو

مهم ترین مسئله در مورد راه اندازی سیم 800 با آردوینو، داشتن اطلاعات کافی در مورد ماژول است. بنابراین من به شما توصیه میکنیم ابتدا مقاله معرفی Sim800l را بخوانید.

آنتن را به ماژول متصل کنید. سیم کارت فعال را در سوکت ماژول قرار دهید. حالا پین Tx را به پین دیجیتال شماره 3 آردوینو متصل کنید.

ما نمی‌توانیم پین Rx روی ماژول را مستقیماً به پین ​​دیجیتال آردوینو وصل کنیم زیرا Arduino Uno دارای ولتاژ عملکرد 5 ولت است در حالی که ماژول SIM800L از منطق سطح 3.3 ولت استفاده می‌کند و توان تحمل 5 ولت ندارد. ما باید سیگنال Tx که از آردوینو می آید را از 5 ولت به 3.3 ولت کاهش دهیم تا به ماژول SIM800L آسیبی وارد نشود. راه های مختلفی برای انجام این کار وجود دارد اما ساده ترین راه استفاده از یک تقسیم ولتاژ مقاومتی ساده است. قرار دادن مقاومت 10K بین پین Rx ماژول و پین D2 آردوینو و مقاومت 20K بین پین Rx ماژول و GND به خوبی کار می کند.

اکنون فقط پین هایی که برای تامین برق ماژول استفاده می شوند باقی می مانند. از آنجایی که چندین گزینه برای روشن کردن ماژول دارید، ما دو نمونه شماتیک را ارائه کرده ایم. یکی از باتری 1200 میلی آمپر ساعتی لیتیوم پلیمری و دیگری از مبدل DC به DC مدل LM2596 استفاده می کند.

اتصال آردوینو به ماژول SIM800L با باتری
اتصال آردوینو به ماژول SIM800L با باتری لیتیوم پلیمری 3.7 ولتی
اتصال آردوینو به ماژول SIM800L با LM2596
اتصال آردوینو به ماژول SIM800L با LM2596

نکته: به یاد داشته باشید که باید GND ماژول به GND آردوینو متصل باشد.

کد آردوینو برای تست AT Command

برای ارسال دستورات AT و ارتباط با ماژول SIM800L از سریال مانیتور استفاده می کنیم. کد زیر آردوینو را قادر می سازد تا با ماژول SIM800L در سریال مانیتور ارتباط برقرار کند. قبل از اینکه به تفکیک کدها ادامه دهیم، آردوینو خود را به کامپیوتر متصل کنید، کد زیر را کامپایل کرده و در آردوینو آپلود کنید.

#include <SoftwareSerial.h>

//ایجاد یک آبجکت از کتابخانه سریال نرم افزاری
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx = Arduino #3 & #2

void setup()
{
  //پیکربندی سریال مانیتور
  Serial.begin(9600);
  
  //پیکربندی ارتباط سریال ماژول
  mySerial.begin(9600);

  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //اگر همه چیز درست باشد اوکی را برمیگرداند
  updateSerial();
  mySerial.println("AT+CSQ"); //کیفیت سیگنال بین 0 تا 31 را برمیگرداند
  updateSerial();
  mySerial.println("AT+CCID"); //اطلاعات سیم کارت را میخواند
  updateSerial();
  mySerial.println("AT+CREG?"); //وضعیت اتصال به شبکه را بررسی میکند
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//هرچه در سریال مانیتور نوشته شود به ماژول ارسال میشود
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//هرچه از ماژول دریافت شود در سریال مانیتور نوشته میشود
  }
}

هنگامی که سریال مانیتور را باز کردید، مطمئن شوید که گزینه Both NL & CR انتخاب شده است. بعد از آپلود کد بالا، شما باید خروجی زیر را روی مانیتور سریال ببینید.

دستورات AT آردوینو و ماژول Sim800l

شما می‌توانید هر دستوری را از طریق مانیتور سریال ارسال کنید، برخی از دستورات که در زیر نوشته شده اند اطلاعات بیشتری در مورد اتصال شبکه و وضعیت باتری می‌ دهند:

  • ATI – نام ماژول را دریافت میکند .
  • AT+COPS؟ – بررسی میکند که به شبکه متصل هستید یا نه.
  • AT+COPS=؟ – لیست اپراتورهای موجود در شبکه را برمیگرداند.
  • AT+CBC – وضعیت باتری لیتیوم پلیمری را برمی‌گرداند. عدد دوم % (در این مورد 93%) و عدد سوم ولتاژ واقعی بر حسب میلی ولت (3.877 ولت) است.

دستورات اتصال شبکه AT در ماژول GSM SIM800L

کد آردوینو ارسال SMS با ماژول Sim800l

بریم سراغ مطالب جالب بیایید آردوینو خود را طوری برنامه ریزی کنیم که به هر شماره تلفنی که می خواهید پیامک ارسال کند. قبل از آپلود کردن کد، باید شماره تلفن را وارد کنید. رشته ZZxxxxxxxxxx را جستجو کنید و ZZ را با کد کشور و xxxxxxxxxx را با شماره تلفن 10 رقمی جایگزین کنید.

به طور مثال برای ایران ZZ برابر 98 و شماره ده رقمی بدون صفر 9123456789 میشود.

#include <SoftwareSerial.h> 

//ایجاد یک آبجکت از کتابخانه سریال نرم افزاری
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx = Arduino #3 & #2 

void setup() { 
  //پیکربندی سریال مانیتور 
  Serial.begin(9600); 

  //پیکربندی ارتباط سریال ماژول 
  mySerial.begin(9600); 

  Serial.println("Initializing..."); 
  delay(1000); 

  mySerial.println("AT"); //اگر همه چیز درست باشد اوکی را برمیگرداند 
  updateSerial();

  mySerial.println("AT+CMGF=1"); // ارسال در حالت متنی
  updateSerial();
  mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\"");//تعیین شماره با +98
  updateSerial();
  mySerial.print("Last Minute Engineers | lastminuteengineers.com"); //محتوای ارسالی
  updateSerial();
  mySerial.write(26);
}

void loop()
{
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//هرچه در سریال مانیتور نوشته شود به ماژول ارسال میشود
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//هرچه از ماژول دریافت شود در سریال مانیتور نوشته میشود
  }
}

loop خالی می ماند زیرا می خواهیم فقط یک بار پیامک ارسال کنیم. اگر می خواهید یک بار دیگر پیامک بفرستید، فقط کلید RESET را در آردوینو خود فشار دهید. تصویر زیر پیامک های ارسال شده از ماژول SIM800L GSM را نشان می دهد.

ارسال پیامک با ماژول آردوینو Sim800l

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

کد آردوینو دریافت پیامک با Sim800l

حالا بیایید آردوینو خود را برای خواندن اس ام اس های دریافتی برنامه ریزی کنیم. این طرح زمانی بسیار مفید است که هنگام دریافت پیامک خاص، اقدامی را فعال کنید. به عنوان مثال، هنگامی که آردوینو پیامک دریافت می کند، می توانید به آن دستور دهید که یک رله را روشن یا خاموش کند.

#include <SoftwareSerial.h>

//ایجاد یک آبجکت از کتابخانه سریال نرم افزاری
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx = Arduino #3 & #2

void setup() {
  //پیکربندی سریال مانیتور
  Serial.begin(9600);

  //پیکربندی ارتباط سریال ماژول
  mySerial.begin(9600);

  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //اگر همه چیز درست باشد اوکی را برمیگرداند 
  updateSerial();
  
  mySerial.println("AT+CMGF=1"); // پیکربندی حالت متنی
  updateSerial();
  mySerial.println("AT+CNMI=1,2,0,0,0"); // خواندن پیام ها
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//هرچه در سریال مانیتور نوشته شود به ماژول ارسال میشود
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//هرچه از ماژول دریافت شود در سریال مانیتور نوشته میشود
  }
}
}

طرح مشابه قبلی است به جز قطعه کد زیر. هنگامی که اتصال برقرار شد، دستورات AT زیر را ارسال می کنیم:

  • AT+CMGF=1 – قالب پیامک را به عنوان متن انتخاب می کند. فرمت پیش فرض پروتکل (PDU) است
  • AT+CNMI=1,2,0,0,0 – نحوه مدیریت پیامک های تازه را مشخص می کند. به این ترتیب می‌توانید به ماژول SIM800L بگویید پیام‌های SMS تازه دریافت شده را مستقیماً به رایانه شخصی ارسال کند یا آنها را ذخیره کند.

پاسخ با +CMT شروع می شود: تمام فیلدهای پاسخ با کاما از هم جدا می شوند و اولین فیلد شماره تلفن است. قسمت دوم نام شخص ارسال کننده پیامک است. فیلد سوم زمان است و فیلد چهارم محتوای پیام است.

توجه داشته باشید که این بار ما تابع loop را خالی نگه نداشته ایم زیرا در حال بررسی برای پیامک های تازه هستیم. هنگامی که پیامک را به ماژول SIM800L GSM ارسال کردید، خروجی زیر را روی نمایشگر سریال خواهید دید.

خواندن و دریافت اس ام اس با سیم 800

افزایش حجم بافر سریال نرم افزار آردوینو

اگر پیام دریافتی شما طولانی باشد، احتمالا چند کاراکتر آن گم میشود و دریافت نمیشود. این به معنی مشکل داشتن کد نیست، مشکل از اندازه بافر در کتابخانه SoftwareSerial است. ساده ترین راه حل برای این مشکل این است که اندازه بافر SoftwareSerial را از اندازه پیش فرض 64 بایت به 256 بایت (یا کوچکتر، بسته به آنچه برای شما کار می کند) افزایش دهید.

در رایانه ویندوز، به C:\Program Files (x86) -> Arduino -> hardware -> Arduino -> avr -> libraries -> SoftwareSerial بروید. SoftwareSerial.h را باز کنید و مورد زیر را تغییر دهید.

// RX buffer size 
#define _SS_MAX_RX_BUFF 64

به

// RX buffer size 
#define _SS_MAX_RX_BUFF 256

کد آردوینو برای برقراری تماس با Sim800l

حالا بیایید آردوینو خود را برای برقراری تماس برنامه ریزی کنیم. این طرح زمانی بسیار مفید است که می‌خواهید آردوینو در مواقع اضطراری مانند افزایش دما یا نفوذ شخصی به خانه شما، یک تماس SOS/اضطراری برقرار کند.

قبل از آپلود کردن کد، باید شماره تلفن را وارد کنید. رشته ZZxxxxxxxxxx را جستجو کنید و ZZ را با کد کشور و xxxxxxxxxx را با شماره تلفن 10 رقمی جایگزین کنید.

#include <SoftwareSerial.h>

//ایجاد یک آبجکت از کتابخانه سریال نرم افزاری
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx = Arduino #3 & #2

void setup() {
  //پیکربندی سریال مانیتور
  Serial.begin(9600);

  //پیکربندی ارتباط سریال ماژول
  mySerial.begin(9600);

  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //اگر همه چیز درست باشد اوکی را برمیگرداند 
  updateSerial();
  
  mySerial.println("ATD+ +ZZxxxxxxxxxx;"); //تعیین شماره
  updateSerial();
  delay(20000); // 20 ثانیه صبر
  mySerial.println("ATH"); //قطع کردن تماس
  updateSerial();
}

void loop()
{
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//هرچه در سریال مانیتور نوشته شود به ماژول ارسال میشود
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//هرچه از ماژول دریافت شود در سریال مانیتور نوشته میشود
  }
}
}

برای برقراری تماس از دستورات AT زیر استفاده می شود:

  • ATD+ +ZZxxxxxxxxxx; – شماره مشخصی را شماره گیری می کند. حتما ; را در انتهای دستور قرار دهید.
  • ATH – تماس را قطع می کند.

تصویر زیر تماس برقرار شده از ماژول SIM800L GSM را نشان می دهد.

دستور AT برای برقراری تماس با آردوینو

دریافت تماس با ماژول سیم 800 و آردوینو

دریافت تماس نیازی به کد خاصی ندارد. فقط باید وضعیت ماژول SIM800L را بخوانید. از دریافت تماس زمانی استفاده میشود که میخواهید با زنگ زدن به ماژول Sim800 یک عملیات را در آردوینو انجام دهید.

#include <SoftwareSerial.h>

//ایجاد یک آبجکت از کتابخانه سریال نرم افزاری
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx = Arduino #3 & #2

void setup() {
  //پیکربندی سریال مانیتور
  Serial.begin(9600);

  //پیکربندی ارتباط سریال ماژول
  mySerial.begin(9600);

  Serial.println("Initializing...");
}

void loop()
{
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//هرچه در سریال مانیتور نوشته شود به ماژول ارسال میشود
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//هرچه از ماژول دریافت شود در سریال مانیتور نوشته میشود
  }
}
}

تماس ورودی معمولاً با «RING» در سریال مانیتور و سپس شماره تلفن و شناسه تماس‌گیرنده نشان داده می‌شود. برای پذیرش/قطع تماس از دستورات AT زیر استفاده می شود:

  • ATA – تماس دریافتی را می پذیرد.
  • ATH – تماس را قطع می کند. با قطع تماس، NO CARRIER بر روی مانیتور سریال ارسال می شود که نشان می دهد تماس نمی تواند وصل شود.

خروجی زیر در سریال مانیتور تماس دریافت شده توسط ماژول SIM800L GSM را نشان می دهد.

دریافت تماس با ماژول سیم 800 و آردوینو

این مطلب تمام شد امیدوارم برای شما مفید باشد. اگر سوالی دارید میتوانید در قسمت نظرات اعلام کنید.

4.6 (41 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

136 نظر

  1. و سوال دیگه اینکه ماژول رو باید ریجستر کرد تا کار کنه؟ چون در تست دستور ریجستر عدد 2 رو میزنه که فکر کنم یعنی ریجستر نشده +CREG: 0,2

  2. سلام ممنون از آموزشتون . سیم کارت شناسایی میشه و این مراحل اوکی هست:
    Initializing…
    AT
    OK
    AT+CSQ
    +CSQ: 0,0
    OK
    Call Ready
    AT+CCID
    89984320001516432440
    OK
    SMS Ready
    AT+CREG?
    +CREG: 0,2
    OK

    اما با دستور زیر که شماره گیری میکنم تماسی نمیگیره و این پیام میاد:
    ATD+ +98XXXXXXXXXX;
    OK
    NO DIALTONE
    Call Ready
    وقتی هم به همین سیم کارتی که تو ماژول هست تماس میگیرم میگه خاموشه ، میشه لطفا راهنمایی کنین؟

    1. سلام عزیز
      لطفا بفرمایید که از کدام نوع ماژول استفاده میکنید و همچنین آیا با سیم کارت اپراتور های مختلف تست کرده اید؟

    2. از ماژول SIM800L استفاده میکنم و روی اپراتور ایرانسل و همراه اول تست کردم . دقیقا مثل هم هستند و AT+CREG?
      +CREG: 0,2
      OK رو میبینم

  3. سلام مهندس خسته نباشید
    ببخشید دوباره مزاحم میشم
    اگر بنده بخواهم وقتی که به ماژول پیام on را میفرستم چراغ ال ای دی رو روشن کمه و وقتی که پیام off را میفرستم چراغ را خاموش کنه باید چه تغیری در کد ایجاد کنم ممنون میشم راهنماییم کنید

  4. سلام خسته نباشید
    من ما ماژول SIM800L کار میکنم ماژول پیام ارسال میکند ولی پس از یک ماه روشن بودن ماژول داعما دیگر پیامی ارسال نمی کند

  5. سلام
    ممنون از دوره خوبتون دارم یاد میگیرم.
    مشکلی که با ماژول سیم 800 دارم اینه که بعد از چند ثانیه خاموش و روشن میشه . با آداپتورهای مختلف با ولتاژ و جریان کافی هم امتحان کردم باز اوکی نشد. در انجمن هم طبق راهکاری که دادن خازن 1000 میکرو رو لحیم کردم باز اوکی نشد.
    ماژول را از سایتتون گرفتم و تست شده فرستادین
    لطفا بگید چکار کنم
    ممنون

    1. سلام عزیز
      یک تصویر از ماژول و نحوه اتصال خازن در تیکت ارسال کنید

  6. سلام. اگر بخوام به‌جای پین های 2 و 3 آردوینو از پین های RX و TX استفاده کنم، چه تغییری باید در کد اعمال بشه ؟

  7. سلام مهندس
    ممنون از سایت خوبتون
    بنده کاری را که گفتید انجام دادم مشکلم حل شد دیگه هر ۳ثانیه چشمک میزنه تماس هم با هاش برقرار کردم پیام هم میده ممنونم از شما که راهنماییم کردید با سپاس

  8. سلام مهندس خسته نباشید
    ممنون از سایت خوبتون
    من وقتی که کد را در اردوینو آپلود میکنم و بعد سریال مانیتور را باز میکنم همه دستورا برام اوکی هست ولی تماس وپیامک نمیفرسته چراغ ماژول هم هر ۱ثانیه چشمک میزنه و هر چند ثانیه ماژول کامل خاموش میشه و دوباره روشن میشه ولی وقتی سیم کارت را که از ماژول بر میدارم دیگه ماژول خاموش نمیشه فقط سریع چشمک میزنه باتری را هم بررسی کردم ۴ولت بود آمپر هم خوب بود ممنون میشم راهنماییم کنید

  9. سلام و وقت بخیر دوستان چرا وقتی دستور AT+COPS? را ارسال میکنم عدد 0 را بر میگردونه وبه هیچ شبکه ای وصل نمیشه .تغذیه روی چهار ولته

  10. دورد وقتتون بخیر
    من میخوام یک پیام ارسالی به sim800l رو که به ضورت یک رشته است را به توست indexOF تجزیه کنم ولی پیام ارسالی رو نمیتونم بگیرم و فقط ok که برای بخش های AT است رو میگیره چیکار کنم که فقط اخرین پیام رو درنظر بگیره این پایین هم کدمو میزارم
    خیلی ممنون

  11. سلام و خسته نباشید
    برای من
    Initializing…
    AT

    OK
    AT+CSQ

    +CSQ: 16,0

    OK
    AT+CCID

    ERROR
    AT+CREG?

    +CREG: 0,0

    OK

    چندتا سیمکارت هم عوض کردم و کار نمیکنه

  12. سلام میشه بگین چگونه به چند تا شماره پیامک بفرسته و زنگ بزنه

  13. با سلام خدمت شما مهندس عزیز
    در حالت دریافت پیام ، من زمانی که پیام برای ماژول ارسال میکنم توی سریال مانیتور فقط یک مربع برای من نمایش میده
    سیمکارت هم عوض کردم ولی فایده نداشت
    ممنون میشم راهنماییم کنید

    1. سلام دوست عزیز باندریت سریال مانیتور خود را درست تنظیم کرده اید؟

  14. سلام من این پروژه را با آردواینو مگا انجام دادم ولی پیامک ارسال
    نمی شو.
    بجای سریال مجازی از سریال حقیقی استفاده کردم و وقتی دستور ها به سمت ماژول sim800l ارسال می‌ شود پاسخ
    Ok برای من ارسال می شود ولی
    پیامکی دریافت نمی کنم

  15. سلام. ماژول من تماس میگیره، تماس دریافت میکنه و به اینترنت هم متصل میشه و پیام هم دریافت میکنه اما هر کار میکنم SMS نمیفرسته نمیدونم چرا

    1. سلام عزیز
      از روش های گفته شده در دوره اردوینو هم میتوانید استفاده کنید

  16. سلام خسته نباشید
    وقتی کد رو روی اردوینو میریزم و پیام میدم دستوری که میخوامو اجرا نمیکنه چیکار کنم مشکل رفع بشه؟

    1. سلام عزیز
      از دستورات AT پاسخی دریافت میکنید؟

    2. تصویر اتصالاتتون رو در انجمن ارسال کنید

  17. سلام چطور ماژول سیم کارت را به برد آردوينو مگا متصل کنم

  18. سلام برای من تماس میگیره اما تک زنگ میزنه و زود قطع میشه مشکل کجاست ؟

    1. سلام عزیز
      ماژول خاموش میشود قطع میشود؟

  19. سلام
    ببخشید این قسمت67 : CMGS+ رو نمیاره مشکل چی هستش؟؟

  20. سلام
    با sim 800 چطور میشه وسایل برقی رو کنترول کرد؟
    یعنی با گوشی یک پیام به sim 800 ارسال کنم و یک رله رو روشن یا خاموش کنه
    با تشکر

    1. سلام عزیز
      دوره پیکو را مشاهده کنید آموزش داده شده

  21. سلام.من وقتی سیمکارت رایتل یا همراه اول میندازم ماژول در ارسال و دریافت پیامک هیچ مشکلی ندارد اما ایرانسل پیامک دریافت میکند اما ارسال نمیکند، سیمکارت را هم عوض کردم اما دقیقا همین مشکل هست، آنتن دهی ایرانسل هم در آن منطقه عالیست و همان سیمکارتها را وقتی داخل گوشی میذارم در همان منطقه به راحتی ویامک دریافت و ارسال میکند و غفط در ماژول مشکل دارد، مشکل چیست؟ برای ایرانسل تنظیماتی باید انجام داد؟

  22. سلام
    داخل قسمت مانیتورینگ کد های دستوری رو وارد میکنم اتفاقی نمی افته یعنی نه پیام خودم زیر (Initializing)
    میاد نه جوابی میگیرم
    با MEGA 2560
    و SIM 800L مازول سیم کار به صورت کامل کار میکنه تست شده

    1. داداش اگه شیفت و ز رو با هم فشار بدی میشه ژ
      باخودم نیم ساعت فکر میکردم مازول دیکه چیه

  23. خیر خاموش نمی‌شود ومن از باتری لیتیومی استفاده میکنم که ۴ ولت ۲ امپر است ممنون میشم راهنماییم کنید

    1. از سیم کارت های دیگر استفاده کنید و آنتن مناسب هم تست کنید

  24. سلام مهندس
    وقتی کد برقراری تماس رو آپلود میکنم وبعد به سریال مانیتور میرم این میاد
    ;ATD+ +98915***0000
    ERROR
    وچراغ ماژول هر یک ثانیه چشمک میزنه ممنون میشم راهنماییم کنید

    1. سلام عزیز
      دلایل مختلفی میتواند داشته باشد یک دلیل مرسوم درست نبودن تغذیه شما هست
      آیا بعد از چند چشمک، ماژول خاموش میشود و دوباره روشن شود؟

  25. با سلام جناب مهندس رحیمی
    در مورد ارسال نکردن sms در سیم کارت ایرانسل , آیا چند کد میبایست اضافه گردد ؟

    1. سلام عزیز
      اپراتور سیم کارت به ارسال شدن یا نشدن اس ام اس ربطی ندارد مشکل احتمالا در مدار شما هست.

    2. مهندس با تشکر از شما
      با همراه اول و رایتل هیچ مشکلی ندارم ولی در ایرانسل تماس گرفته میشود و sms هم دریافت میشه ولی در ارسال sms مشکل دارد

    3. ممکن هست مربوط به آنتن دهی این اپراتور در منطقه شما باشد. از یک آنتن قوی استفاده کنید.

  26. با سلام
    من از ماژول sim800l استفاده می کنم و پایه Rx را به صورت مستقیم به آردوینو متصل کردم حالا هر بار که کد رو در آردوینو آپلود می کنم در سریال مانیتور هیچ اتفاقی نمی افتد. الان هم آن را با تقسیم ولتاژ مقاومتی و مدار بالا انجام دادم ولی فرقی نکرد. ولی ماژول عملکرد خودشو داره و درست عمل می کنه و هر سه ثانیه چشمک میزنه به نظرتون مشکل چیه؟

  27. سلام خدمت شما
    من سیم 800 رو الان به آردوینو متصل کردم ولی دستورات در سریال مانیتور نمی آیند و من هر چه مینویسم دستور داخل سریال مانیتور قرار نمیگیرد و سی800 هم به گفته خودتون هر سه ثانیه چشمک میزنه مشکل از کجاست؟

    1. سلام عزیز
      از کدام ماژول SIM800 استفاده میکنید؟ تصویر اتصالات را در انجمن قرار بدهید

    2. در منوی سایت روی انجمن کلیک کنید.

    3. سلام مهندس
      من الان تست کردم هیچ دستوری حتی با وارد کردن دستور به سیم 800 در سریال مانیتور ظاهر نمیشه و با نوشتن دستور و زدن اینتر دستور در سریال مانیتور نمی مونه و محو میشه
      به نظرتون مشکل کجا می تونه باشه؟

    4. الان من هم همین مشکل رو دارم و زمانی که به tx و rx آردوینو هم متصل میکنم پایه های txوrx ماژول رو به صورت مخالف پایه های آردوینو باز پاسخ دستورات نیز ارسال نمیشود.
      مهندس راهنمایی کنید لطفا

    5. سلام GND ها باید یکی باشند اگر به هم متصل نیستند با یک سیم وصل کنید

  28. سلام و خسته نباشید
    می خواستم بدونم از سیم کارت خاصی باید در ماژول استفاده بشه؟
    چون من هر اپراتوری داخل آن قرار دادم عمل نمیکند و با 7 چشمک همراه است.
    منبع آن هم سوییچینگ 10 آمپر و ولتاژ آن هم 4 ولت گذاشتم ولی عمل نمی کند.
    تشکر از سایت خوبتون

    1. سلام عزیز
      از چه نوع ماژولی استفاده میکنید؟
      اگر از ماژول EVB استفاده کنید راه اندازی آن بسیار ساده تر هست. در فروشگاه موجود داریم.

    2. سلام علی اقا این مشکل من هم بود فقط با گذاشتن به خازن 4700 میکرو فاراد نزدیک ماژول 800 یعنی دقیقا پایه های زمین و vcc مشکل کاملا حل میشه

  29. سلام وقتتون بخیر
    اگه از usb to serial برای بارگذاری کد استفاده کنم آیا نیاز به مقاومت خواهم

    1. سلام عزیز
      اگر از ماژول معمولی Sim800l استفاده میکنید بله و اگر از نسخه EVB استفاده میکنید نیازی نیست.

  30. سلام بنده همه کارها در یافت پیامک ارسال پیامک همه چیز اوکیه هست وقتی آردینو از پورت یو آس بی به لپ تاب جدا میکنم و یک منبع تغذیه جدا گانه داخل پروژه می‌زارم دیگه به من پیامی ارسال نمیکند مشکل چیست چون ماژول باز هم به شبکه متصل و پیام دریافت می‌کنند اما سند نمیکنه میگم چون ارتباط سریال قطع میشه این مشکل بر میخوره دستورات atیا دستورات دیگه سیم ۸۰۰کار نمیکند (
    وقتی شما یک منبع تغذیه جدا را به آردوینو وصل می‌کنید، آردوینو دیگر از پورت USB لپتاپ برای تغذیه و ارتباط با کامپیوتر استفاده نمی‌کند. به همین دلیل، دستورات `Serial.print` که برای ارسال پیام‌ها از پورت سریال استفاده می‌کنند، کار نخواهند کرد زیرا ارتباط سریال بین آردوینو و لپتاپ برقرار نیست.)

    لطفاً کمک کنید

    1. سلام عزیز
      در این کد ها ما نیازی به پورت یو اس بی لپتاپ نداریم چون یک ارتباط سریال نرم افزاری به نام mySerial ایجاد کرده ایم که در آن از پایه های 2 و 3 برای برقراری ارتباط سریال استفاده میشود.
      احتمالا مشکل در مدار شما هست بهتر هست توضیحات کامل و تصویر مدار را در انجمن قرار بدهید بهتر میتوانیم بررسی کنیم.

  31. سلام من مشکل عدم دریافت پیامک را دارم که ماژول سیمکارت رو شناسایی میکند ولی پیام بک را ارسال نمیکنه و کار نمیکند

    1. سلام عزیز
      ال ای دی ماژول شما هر چند ثانیه یک بار چشمک میزند؟

  32. سلام وقت بخیر تو قسمت ارسال پیامک تو مانیتور سریال قسمت CMGS=67 رو نمیاره

  33. سلام وقت بخیر من عین مدار شمارو بستم و از برنامه ها کپی کردم ، تست دستورات AT انجام میشه کددریافت پیام هم درست انجام میشه فقط کد ارسال پیام انجام نمیشه به هیچ شماره ای ، با اینکه تو سریال مینویسه که عینا ارسال شد ولی پیامکی نمیاد، من دستورات AT+CPIN & AT+CPOS & AT+CREG رو اضافه کردم ولی ارور میاره با اینکه دستور قدرت انتن رو 27 نشون میده

  34. سلام خسته نباشید یه سوال در قسمت ارسال پیامک برنامه رو اپلود کردم در سریال مانیتورینگ تا > Last Minute Engineers | lastminuteengineers.com اینجا اومده اما پیامی ارسال نکرده … اعتبار از سیم کارت کم میشه و به دستورات at هم پاسخ میده

    1. سلام عزیز
      شماره را چک کنید درست وارد کرده باشید و به شماره های دیگر هم ارسال کنید.

  35. در آردوینو چرا SoftwareSerial.h رو نمی‌شناسه و می‌گه وجود نداره؟ از جایی هم دانلود و اضافه می‌کنم باز ارور می‌ده، مشکل چیه؟ مگه این کتابخونه نباید به طور پیش فرض در آردوینو موجود باشه؟

    1. سلام عزیز
      ارور دریافتی را ارسال کنید

    1. سلام عزیز
      اتصالات کاملا در تصویر شماتیک رسم شده است

  36. سلام میخواستم اگه پیام به سیم 800 ال “Hi” دریافت شد پین 4 روشن بشه.
    چه کدی باید توی کاندیشن بنویسم تا به پیام دریافتی اشار کنه؟

    1. سلام عزیز
      باید پیام دریافتی را قطعه قطعه کنید یا قسمتی از آن را برش بزنید سپس بررسی کنید که قسمت دریافتی برابر با پیام تعیین شده هست یا خیر
      در دوره پیکو به خوبی اجرا و آموزش داده شده است

  37. سلام
    داخل قسمت مانیتورینگ کد های دستوری رو وارد میکنم اتفاقی نمی افته یعنی نه پیام خودم زیر (Initializing)
    میاد نه جوابی میگیرم

    1. سلام عزیز
      احتمالا ارتباط با ماژول برقرار نیست، از کدام ماژول استفاده میکنید؟ تصویر مدار را ارسال کنید.

  38. Initializing…
    AT

    OK

    +CPIN: READY
    AT+CMGF=1

    OK
    AT+CMGS=”+989000000000″

    > hello

    سلام . تا این قسمت میاد ولی دیگه ادامه نمیده. مشکل از کجاست؟ممنون

    1. سلام عزیز
      شماره تماس را درست وارد کردید؟
      در دوره آردوینو روش ساده برای ارسال اس ام اس آموزش داده شده است میتوانید مشاهده کنید

    2. دلیل های مختلفی میتونه داشته باشه، تماس تونستید بگیرید؟

  39. Initializing…
    AT

    OK
    AT+CSQ

    +CSQ: 17,0

    OK
    AT+CCID

    ERROR
    AT+CREG?

    +CREG: 0,0

    OK
    AT+CBC

    +CBC: 0,81,4049

    OK
    این رو به من برمیگردونه مشکل از کجاست. ممنون

    1. سلام عزیز
      بنظر میرسه مشکل از سیم کارت هست چون در ccid ارور دریافت کردید
      با یک سیم کارت دیگر تست کنید.

  40. سلام من از برد WEMOS D1 MINI استفاده کردم
    بعد از پروگرم برد هیچ اتفاقی نمیوفته
    RX به D2 وصله TX به D3
    به نظرتون مشکل از کجاست

  41. سلام خسته نباشید ممنون از اموزش خوبتون
    یه سوال داشتم
    میخواستم بدونم ایا میشه با برد اردواینو انتن سیمکارت رو افزایش داد برای جایی که انتن نداره
    خیلی برام مهمه و خیلی لازم دارم ممنون میشم کمکم کنید
    لطفا لطفا لطفا به من پیام بدید ممنون

    1. سلام عزیز
      ربطی به برد آردوینو نداره، برای افزایش آنتن دهی باید از یک آنتن قوی و ارتفاع بالا با توجه به مکانی که هستید استفاده کنید.
      میتونید از دستگاه های تقویت آنتن هم استفاده کنید

    2. سلام من استاد رحیمی یک پروژه میخوام بسازم با اردیونو و در محیط پروتئوسی شبیه سازی ارسال و دریافت اس ام اس بسازم . میتونید برام اگر پروژه اماده دارید بفرستید تا با محیل اشنا بشم .

  42. سلام چطور میشه یک رله یا یک لامپ رو با این ماژول با استفاده از sms روشن کرد؟

    1. سلام عزیز
      سعی میکنیم به زودی یک آموزش کامل در این زمینه منتشر کنیم

    1. سلام عزیز
      فقط باید ارتباط سریال را بین سیم ۸۰۰ و میکروکنترلر برقرار کنید و At command هارا بفرستید
      در دوره avr ما ارسال داده ها از طریق ارتباط سریال را آموزش داده ایم

  43. سلام دستور ساده تری برای برقراری تماس نیست؟؟ مثلا توی دوره دستور SendSms خیلی راحت میفرستاد.

    1. سلام عزیز
      با توجه به روش های گفته شده میتونید یک تابع ایجاد کنید و دستور برقراری تماس را در اون قرار بدهید تا ساده تر شود.

  44. در واقع به جای arduino uno میخوام از nodemcu استفاده کنم!
    توی مطلبی که نوشته شده گفته شده چون arduino uno ولتاژ پین هاش 5 ولت هستش باید از مقاومت استفاده کرد، ولی من درحال حاضر میخوام از nodemcu به جای arduino unoاستفاده کنم و وقتی با مولتی متر ولتاژ پین های دیجیتال بورد nodemcu رو اندازه گرفتم 3.3 ولت بود، آیا با اینکه ولتاژ پین هاش 3.3 ولت هست نیازه از مقاومت استفاده کنم؟

    1. درسته، بله نیازی نیست از مقاومت استفاده کنید.

  45. سلام وقتتون به خیر باشه
    من از nodemcu میخوام استفاده کنم و ولتاژ پین های دیجیتال نود ام سی یو رو که اندازه گرفتم 3.3 ولت بودش، دیگه نیازی به استفاده از مقاومت که ندارم؟

    1. سلام عزیز
      منظورتون رو متوجه نشدم، به جای sim800 میخواهید از node mcu استفاده کنید؟ node mcu قابلیت ارتباط پیامک یا اس ام اس رو نداره، در کل اگر بخواهید استفاده کنید در سیم TX آردوینو و RX نود ام سی یو باید از تقسیم ولتاژ استفاده کنید و 5 ولت آردوینو رو به 3.3 ولت تبدیل کنید

  46. سلام وقتتون بخیر
    در رابطه با ماژول سیم800 ،ماژول بنده به شبکه وصل شد اما زمانی که gnd دو مدار را مشترک میکنم ماژول سیم کارت از کار می افتد و چشمک نمیزند و در همان زمان وقتی که آداپتور lm2596 را از برق میکشم چراغ ماژول کاهنده به صورت ضعیف روشن است که مقدار یک ولت در خروجی ماژول برق دارد علت این برگشتی چیست؟
    با تشکر

    1. سلام عزیز
      تصویر شماتیک مداری که بستید را در انجمن ارسال نمایید

  47. سلام مجدد
    استاد البته یادم رفت بگم .از lm2596 قراره استفاده کنم ،منظورم این بود که آداپتور رووصل کنم به lm2596 ولتاژ رو روی 4.2 تنظیم کنم .
    و اینکه من دو تا ویدیو دیدم که ماژول sim800l رو با esp8266 راه مینداختن ولی از هیچ مقاومتی استفاده نمیکردن.

    1. مشابه ویدئو که مشاهده کردید عمل کنید

  48. سلام
    استاد چندتا سوال داشتم،
    1.اگر از یک اداپتور 12 ولت 2امپر استفاده کنیم مشکلی پیش نمیاد؟
    2. من میخوام از esp8266 استفاده کنم آیا ولتاژ پین های این بورد هم 5 ولت هستش؟لازمه از مقاومت استفاده کنم؟

    1. سلام عزیز
      از 12 ولت نباید برای ماژول سیم 800 استفاده کنید !!!! قطعا میسوزه
      برای برقراری ارتباط بین Esp و sim800 باید ولتاژ رو در حد قابل قبول برای هردو تنظیم کنید

  49. سلام میخواستم بدونم چرا باید مشترک باشن باهم

    نکته: به یاد داشته باشید که باید GND ماژول به GND آردوینو متصل باشد.؟؟؟؟؟؟؟؟؟؟؟؟؟؟

    1. سلام عزیز
      برای اینکه منبع تغذیه ها به هم متصل باشند و وضعیت زمین (gnd) در هر دو مدار یکسان باشه تا در ارتباط سریال بین دو مدار مشکلی به وجود نیاد.

  50. سلام خسته نباشید ، سومین برنامه‌ای که نوشتین که مربوط به دریافت پیامک و دستور به رله هست لطفا اون قسمت دستور به رله رو تو برنامه بیارید که چطور به رله باید دستور بدیم

    1. سلام عزیز
      باید یک شرط تعیین کنید که مقدار ورودی رو بخونه و در بدنه شرط دستور فعال شدن رله رو بنویسید.
      اگر در برنامه نویسی آردوینو تازه وارد هستید میتونید دوره آموزش آردوینو رو مشاهده کنید.

  51. سلام تو قسمت دستورات command همه تنظیمات ok هست اما سرعت چشمک زن تغییر نکرده و پیام هم ارسال نمیکنه لطفا راهنمایی کنید

    1. سلام عزیز
      با سیم کارت های دیگه امتحان کنید و آنتن نصب کنید

  52. سلام خسته نباشید آقا مهندس عزیز ، تنها فقط در تست CREG ارور دارم باید چیکار کنم ممنون..

  53. با عرض سلام و وقت بخیر.

    آیا این ماژول یا دیگر ماژول های هم خانواده ی آن قابلیت پروگرام شدن دارن؟ به این معنی که آیا میشه بدون اینکه از یک میکروی خارجی استفاده کنیم، صرفا با برنامه ریزی خود ماژول اون رو راه اندازی کرد؟

    1. سلام عزیز
      شرکت سازنده از این مورد رسما پشتیبانی نمیکنه چون معتقده اینکار باعث تداخل عملکرد ماژول میشه. از طریق AT کامند ها قابل کنترل هستند اما داده های زیادی در باره کنترل از این طریق موجود نیست.

  54. سلام روش تست سالم بودن ماژول چیه ؟
    ۱) بین پایه Rx و GND تست دیود کردم بی‌نهایت نشون داد..
    ۲) ماژول رو به باتری لیتیومی قلمی ۴ ولتی ۸۸۰۰ میلی آمپری متصل کردم
    ۳) از مقاومت ۱۰ کیلو برای اتصال Rx ماژول و پین آردوئینو و از مقاومت ۲۰ کیلو برای RX ماژول و GND استفاده کردم
    لطفا بگید مشکل از کجاست که روشن نمیشه..؟

    1. اگر در راه اندازی ماژول تنها مشکل دارید، نوع EVB رو تهیه کنید.
      سیم 800 EVB به صورت مسقتیم به آردوینو وصل میشه و برای تغذیه اش هم میتونید از آداپتور 5 ولت 2 آمپر استفاده کنید آسان تر هست

  55. آقای مهندس من همه اتصالات رو درست انجام دادم ولی چراغ چشمک زن روشن نشده باید چیکار کنم؟

    1. احتمالا جریان کم دارید. جریان حداقل 2 آمپری بدید به ماژول میتونید با مولتی متر چک کنید

  56. باتری لیتیومی قلمی ۴.۴_۳.۷ ولت با جریان خروجی 8800 میلی آمپر به ماژول sim800L آسیب میزنه؟

  57. سلام ، چندتا سئوال دارم ، اول اینکه از باتری لیتیومی ۳.۷ ولت ۸۸۰۰ میلی آمپر استفاده کردم آیا مشکلی نداره؟
    دوم اینکه چرا باید پایه‌‌های RX ماژول با 20K اهم به GND وصل کنیم ؟

    سوم اینکه آیا چراغ ماژول Sim800L تا قبل از وصل شدن ارتباط سریال روشن میشه؟

    1. سلام عزیز
      جریان خروجی باتری چقدر هست؟
      مقاومت ها برای ایجاد مدار تقسیم ولتاژ هستند که 5 ولت آردوینو کاهش پیدا کنه و ماژول آسیب نبینه
      بله چشمک میزنه

  58. سلام وقتی روی برد خروجی 3.3 V وجود داره چرا باید این مدل مدار رو بچینیم ؟

    1. سلام عزیز
      3.3 ولت برد آردوینو جریان خروجی کمی داره در صورتی که سیم 800 به جریان بالایی نیاز داره همچنین ولتاژ ورودی باید 3.4V تا 4.4V باشه و تفاوت سطح منطقی برای برقراری ارتباط سریال نیازمند مدار ارائه شده هست.

  59. سلام خسته نباشید یه سوال در قسمت ارسال پیامک برنامه رو اپلود کردم در سریال مانیتورینگ تا > Last Minute Engineers | lastminuteengineers.com اینجا اومده اما پیامی ارسال نکرده … مشکل از کجاست؟

    1. سلام عزیز
      احتمالا ارتباط بین آردوینو و sim800l به خوبی برقرار نشده، وقتی دستوری به سمت sim800l ارسال میکنید بهتون پاسخ میده؟

  60. با سلام و ممنون از محتوای خوبتون
    بنده با استفاده از دستورات AT اول AT+CMGF=1 رو میزنم بعد از اون دستور AT+CMGS=”+98xxxxxx” رو میزنم که پیامک رو ارسال کنه بعد از اون علامت < ظاهر میشه و ازم میخواد پیام رو وارد کنم بعد از اینکه پیام رو وارد میکنم، ماژول، اس ام اس رو ارسال نمیکنه و پیام تایید ارسال نمیاد. میتونید راهنمایی کنید که مشکل چی هست؟

    1. سلام عزیز
      یک روش دیگر در دوره آموزش آردوینو توضیح داده شده میتونید از اون هم استفاده کنید

  61. سلام
    حتما باید یک خازن 1000 مبکرو حداقل 10 ولتی موازی باتری بذارید و گرنه ماژول کار نمیکند.

    1. سلام در رابطه با اینکه اگر بخواهیم یک ماژول 5ولت دو کاناله را به مدار وصل کنیم و با ماژول پیامک کنترل کنیم هم قسمت اتصال و هم برنامه نویسی چه تغیراتی باید اعمال کنیم ممنون میشم راهنمایی کنید

    2. سلام عزیز
      میتونید مقاله کنترل رله با آردوینو رو مشاهده کنید و همچنین برای یادگیری برنامه نویسی آردوینو میتونید دوره آموزش آردوینو رو مشاهده کنید براتون مفید هست

  62. سلام استاد. ممنون از راهنمایی شما. همانطور که فرمودید با استفاده از دستور AT وضعیت اتصال به شبکه قابل بررسی است. اما مطلب این است که ما آردوینو و sim800l را بعنوان بخشی از یک پروژه در یک مکان قرار داده ایم و لازم است برای ارسال اطلاعات از برد به مرکز ابتدا توسط آردوینو چک کنیم که sim800l به شبکه متصل هست یا نه. و اگر متصل است اطلاعات را ارسال کنیم. در وااقع این چک کردن نیاز به یک تابع دارد که در سایت آردوینو دستور getFunctionalityMode معرفی شده است. اما متاسفانه من نتوانستم از آن استفاده کنم و همانطور که در پیام قبلی عرض کردم پیام خطا میدهد. ممنون میشوم راهنمایی بفرمایید.

    1. سلام عزیز
      در برنامه کدی رو بنویسید که دستور At رو ارسال کنه و بعد از اون جواب رو بررسی کنه که آیا متصل هست یا خیر

    2. سلام دلیلش چیه
      نکته: به یاد داشته باشید که باید GND ماژول به GND آردوینو متصل باشد

  63. سلام استاد. من میخواستم قبل از ارسال پیامک وضعیت اتصال به شبکه ماژول sim800l را کنترل کنم. در اسناد گفته شده که که از دستور getFunctionalityMode استفاده شود ولی در هنگام compile برنامه این اشکال را اعلام میکند Error compiling for board Arduino Uno.
    لطفا راهنمایی فرمایید.

    1. سلام عزیز
      بجای تابع بهتر هست دستور AT رو خودتون ارسال کنید و وضعیت رو بررسی کنید

  64. سلام. یه بار از شما سوال کردم که آیا میشه داخل sendSms متغیر قرار داد؟ (برای محتوای پیام نه شماره تلفن) که فرمودید بله
    ولی وقتی من یک int تعریف میکنم و به صورت متغیر به sendSms میدهم دریافت کننده sms اون عددی که من دادم رو دریافت نمیکنه یه کاراکترهایی مثل @ رو جاش دریافت میکنه! ممنون میشم راهنمایی کنید

    #include

    Sim800l Sim800l;
    int t;
    void setup() {
    t=95;
    Sim800l.begin();
    Sim800l.sendSms(“+989021330111”,t);
    //t=;
    }
    void loop() {
    }

    1. سلام عزیز
      داده رو از نوع char یا string در نظر بگیرید و امتحان کنید

  65. چجوری یه صدای ضبط شده روی مموری رو برای شماره ای که با آن تماس گرفته ام بفرستم؟

    1. سلام مهندس خسته نباشی من وقتی کد را آپلود میکنم و بعد به سریال مانیتور میرم ارور میده چیکار کنم ممنون میشم راهنماییم کنید

    2. سلام عزیز
      چه اروری دریافت میکنید؟

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *