آموزش راه‌اندازی SIM800L با آردوینو؛ ارسال پیامک، تماس و اینترنت GPRS از صفر تا پیشرفته

📡 GSM / GPRS
Arduino UNO
AT Command
SMS + Call
مبتدی تا پیشرفته
SIM800L • COMPLETE STARTUP GUIDE

اگر اولین بار است که ماژول SIM800L را در دست گرفته‌اید، این آموزش قرار است بدون پرش و سردرگمی شما را از اولین اتصال برق تا ساخت یک پروژه واقعی همراهی کند. ابتدا یاد می‌گیریم SIM800L چیست، به چه منبع تغذیه‌ای نیاز دارد و چگونه از اتصال صحیح آن به شبکه موبایل مطمئن شویم؛ سپس ارتباط با کامپیوتر و AT Command را آزمایش می‌کنیم، Arduino UNO را وارد مدار می‌کنیم و بعد به سراغ ارسال و دریافت پیامک، تماس تلفنی، GPRS، ارسال اطلاعات به سرور و عیب‌یابی حرفه‌ای می‌رویم.

هدف این مقاله فقط دادن چند قطعه کد آماده نیست. وقتی آموزش را تمام می‌کنید باید بتوانید تشخیص دهید اگر ماژول کار نکرد، مشکل احتمالاً در تغذیه، سیم‌کارت، پوشش شبکه، UART، Baud Rate، تنظیمات AT یا برنامه شماست و بدون تعویض تصادفی قطعات، مرحله‌به‌مرحله عیب‌یابی کنید.

مسیر درست یادگیری:
تغذیه و شبکه ← تست AT ← اتصال Arduino ← SMS ← تماس ← GPRS ← پروژه واقعی. اگر تازه‌کار هستید، ترتیب مراحل را تغییر ندهید.

آموزش راه‌اندازی SIM800L با آردوینو برای ارسال پیامک تماس تلفنی و اینترنت GPRS

آموزش کامل راه‌اندازی ماژول SIM800L از اتصال اولیه تا SMS، تماس و GPRS

✓ رویکرد این راهنما

در این نسخه، نکات تغذیه، UART، دستورات AT و محدودیت‌های شبکه از دید فنی بازبینی شده‌اند و بخش‌هایی که ممکن بود برای یک کاربر مبتدی برداشت اشتباه ایجاد کنند، دقیق‌تر توضیح داده شده‌اند. هنگام استفاده از بردهای مختلف SIM800L همیشه مشخصات همان برد و مدار تغذیه نصب‌شده روی آن را نیز بررسی کنید.

📌 SIM800L در یک نگاه

GSM / GPRS
نوع ارتباط
2G
شبکه مخابراتی
SMS + Call
پیامک و تماس
UART
ارتباط با MCU

ROAD MAP

فهرست و مسیر یادگیری SIM800L

اگر کاملاً مبتدی هستید، این هشت مرحله را به ترتیب دنبال کنید. هر مرحله پیش‌نیاز منطقی مرحله بعدی است.

01 — شناخت و تغذیه
SIM800L، باتری، سیم‌کارت و شبکه
02 — اولین AT
USB to TTL و تست ماژول
03 — Arduino
UART و SoftwareSerial
04 — پیامک
ارسال، دریافت و مدیریت SMS
05 — تماس
تماس خروجی، ورودی و Caller ID
06 — GPRS
اینترنت و ارسال داده
07 — AT Commands
شبکه، آنتن و عیب‌یابی

 

08 — پروژه واقعی
ایده‌ها، FAQ و جمع‌بندی

TOOLS

وسایل موردنیاز برای راه‌اندازی SIM800L

برای انجام کل آموزش به تجهیزات زیادی نیاز ندارید. پیشنهاد می‌شود حتی اگر قصد استفاده از Arduino را دارید، یک USB to TTL نیز در اختیار داشته باشید؛ چون تست مستقیم AT Command یکی از بهترین روش‌های عیب‌یابی ماژول‌های GSM است.

قطعه تعداد کاربرد دسترسی
ماژول SIM800L 1 مودم GSM/GPRS مشاهده SIM800L
باتری لیتیوم یون 3.7V 1 تغذیه اولیه مشاهده باتری‌ها
USB to TTL 1 تست AT Command مشاهده CP2102
جا باتری 18650 1 اتصال باتری مشاهده جا باتری
Arduino UNO 1 کنترل پروژه مشاهده Arduino UNO
سیم جامپر چند عدد سیم‌کشی مدار مشاهده سیم جامپر

01 / شناخت ماژول

SIM800L چیست و چه کاری انجام می‌دهد؟

SIM800L یک ماژول مخابراتی GSM/GPRS است که پس از قرار گرفتن سیم‌کارت و ثبت شدن روی شبکه 2G می‌تواند قابلیت‌هایی شبیه بخش مخابراتی یک تلفن همراه را در اختیار مدار الکترونیکی شما قرار دهد. آردوینو یا هر میکروکنترلر دیگری از طریق ارتباط UART و دستورات AT به ماژول فرمان می‌دهد.

بنابراین پروژه شما بدون Wi-Fi می‌تواند پیامک بفرستد، پیامک دریافت کند، تماس برقرار کند، تماس ورودی را تشخیص دهد و از GPRS برای انتقال داده‌های کم‌حجم استفاده کند.

✉️ ارسال SMS
📥 دریافت SMS
📞 تماس خروجی
☎️ تشخیص تماس
🌐 اینترنت GPRS
☁️ ارسال داده به سرور
🔌 کنترل تجهیزات
🚨 سیستم هشدار

POWER WARNING

مهم‌ترین بخش راه‌اندازی SIM800L: منبع تغذیه

بخش بزرگی از مشکلات SIM800L از تغذیه شروع می‌شود. خود ماژول خام SIM800L برای تغذیه حدود 3.4 تا 4.4 ولت طراحی شده و مقدار نزدیک 4 ولت محدوده معمول طراحی است. همچنین هنگام ارسال روی شبکه GSM، مصرف جریان ثابت نیست و پیک لحظه‌ای می‌تواند به حدود 2 آمپر برسد.

به همین دلیل منبعی که روی مولتی‌متر 4 ولت نشان می‌دهد الزاماً منبع خوبی نیست؛ باید در لحظه افزایش مصرف نیز افت ولتاژ شدید نداشته باشد.

علائم رایج تغذیه نامناسب:

  • ماژول روشن می‌شود اما روی شبکه ثبت نمی‌شود.
  • هنگام SMS یا تماس ناگهان ریست می‌شود.
  • GPRS پس از چند ثانیه قطع می‌شود.
  • AT Command گاهی پاسخ می‌دهد و گاهی پاسخ نمی‌دهد.
  • LED وضعیت دوباره به الگوی شروع کار برمی‌گردد.

POWER INPUT

آیا باتری 18650 برای SIM800L مناسب است؟

برای بسیاری از بردهای خام SIM800L، یک سلول لیتیوم یون سالم گزینه ساده‌ای برای تست اولیه است. یک سلول لیتیومی در حالت شارژ کامل حدود 4.2V و در محدوده نامی حدود 3.7V دارد. با این حال، اگر برد SIM800L شما دارای رگولاتور یا مدار تغذیه مخصوص است، قبل از اتصال باتری مشخصات همان برد را بررسی کنید.

Battery +  ---->  VCC / VBAT
Battery -  ---->  GND
قاعده مهم:
هدف، رساندن بیشترین ولتاژ ممکن به ماژول نیست؛ هدف یک تغذیه پایدار، کم‌افت و سازگار با برد است.

🔌 آیا می‌توان از آداپتور استفاده کرد؟

بله، اما خروجی آداپتور یا مبدل DC-DC باید برای برد شما ولتاژ صحیح و در پیک‌های مصرف جریان کافی داشته باشد. آداپتورهای ضعیف یا سیم‌های تغذیه نازک می‌توانند باعث افت ولتاژ لحظه‌ای شوند. اگر از مبدل قابل تنظیم استفاده می‌کنید، ولتاژ آن را قبل از اتصال ماژول با مولتی‌متر تنظیم کنید.

SIM CARD CHECK

قبل از روشن کردن ماژول، سیم‌کارت را بررسی کنید

سیم‌کارت را قبل از روشن کردن ماژول در جهت صحیح داخل خشاب قرار دهید. SIM800L مودم 2G است؛ بنابراین صرف اینکه سیم‌کارت شما «4G» یا «5G» نامیده می‌شود مهم نیست، بلکه اپراتور و سیم‌کارت باید امکان اتصال به شبکه 2G را در محل پروژه داشته باشند.

✓ سیم‌کارت فعال
✓ PIN غیرفعال
✓ آنتن متصل
✓ پوشش شبکه 2G
✓ اعتبار برای تماس/SMS
✓ دیتا برای GPRS

LED وضعیت شبکه چه چیزی به ما می‌گوید؟

بسیاری از بردهای SIM800L یک LED وضعیت شبکه دارند. الگوی دقیق LED می‌تواند بین بردها متفاوت باشد، بنابراین LED را نشانه کمکی بدانید و برای تشخیص قطعی وضعیت شبکه از دستور AT+CREG? استفاده کنید.

الگوی رایج برداشت معمول
چشمک سریع جست‌وجوی شبکه یا ثبت‌نشده
چشمک با فاصله چند ثانیه در بسیاری از بردها نشانه ثبت روی شبکه

02 / FIRST AT COMMAND

اتصال SIM800L به کامپیوتر با USB to TTL

قبل از اینکه Arduino را به مدار اضافه کنیم، خود ماژول را مستقیماً با کامپیوتر تست می‌کنیم. این مرحله بسیار مهم است، چون اگر SIM800L مستقل درست کار کند ولی بعد از اضافه کردن Arduino مشکل ایجاد شود، محدوده عیب‌یابی بسیار کوچک‌تر خواهد شد.

USB to TTL چیست؟

کامپیوتر از طریق USB مستقیماً با UART ماژول ارتباط برقرار نمی‌کند؛ بنابراین از یک مبدل USB به TTL Serial استفاده می‌کنیم. CP2102، CH340، FT232RL و PL2303 از تراشه‌های رایج این مبدل‌ها هستند.

پس از نصب درایور باید یک COM Port جدید در Device Manager ظاهر شود. اگر پورت جدید دیده نمی‌شود، ابتدا درایور مبدل را بررسی کنید.

پایه‌های مهم SIM800L

پایه وظیفه
VCC / VBAT تغذیه اصلی ماژول
GND زمین مدار
TXD ارسال داده از SIM800L
RXD دریافت داده توسط SIM800L

UART CONNECTION

اتصال RX و TX

در UART پایه ارسال دستگاه اول به پایه دریافت دستگاه دوم متصل می‌شود؛ بنابراین TX و RX ضربدری هستند. علاوه بر آن، GND دو مدار باید مشترک باشد.

USB-TTL TX  ----> SIM800L RXD
USB-TTL RX  <---- SIM800L TXD
USB-TTL GND ----> SIM800L GND
هشدار:
تغذیه اصلی SIM800L را از پایه 5V یا 3.3V یک مبدل USB-TTL معمولی نگیرید مگر اینکه مشخصات سخت‌افزار صراحتاً نشان دهد جریان موردنیاز را تأمین می‌کند.

تنظیم Serial Monitor

  1. USB to TTL را به کامپیوتر وصل کنید.
  2. COM Port مربوط به مبدل را انتخاب کنید.
  3. Serial Monitor یا یک Terminal سریال را باز کنید.
  4. برای شروع Baud Rate را روی 9600 قرار دهید.
  5. Line Ending را روی Both NL & CR تنظیم کنید.
اگر پاسخ دریافت نشد:
علاوه بر RX/TX، Baud Rate را نیز بررسی کنید؛ بعضی بردها ممکن است تنظیم متفاوتی داشته باشند.

اولین دستور AT

فرمان زیر را ارسال کنید:

AT

پاسخ صحیح:

OK
✓ اگر OK دریافت کردید:
ماژول روشن است و ارتباط سریال در این مرحله درست کار می‌کند.

دستورات مناسب برای تست اولیه

دستور کاربرد
AT تست ارتباط
ATI اطلاعات ماژول
AT+CSQ قدرت سیگنال
AT+CCID ICCID یا شناسه سیم‌کارت
AT+CPIN? وضعیت PIN و آماده بودن SIM
AT+CREG? وضعیت ثبت روی شبکه

03 / ARDUINO

اتصال SIM800L به Arduino UNO

حالا که خود SIM800L را مستقل آزمایش کرده‌ایم، Arduino UNO را وارد مدار می‌کنیم. در این مثال از SoftwareSerial استفاده می‌کنیم تا پین‌های D10 و D11 به‌عنوان یک پورت سریال نرم‌افزاری عمل کنند.

نکته حیاتی:
پایه 5V آردوینو را به‌عنوان منبع اصلی تغذیه SIM800L خام در نظر نگیرید. پیک مصرف GSM می‌تواند باعث افت ولتاژ و ریست شود.

اتصالات Arduino UNO و SIM800L

Arduino SIM800L توضیح
D10 TXD دریافت داده توسط Arduino
D11 RXD ارسال داده با تطبیق سطح منطقی مناسب
GND GND زمین مشترک
سطح منطقی UART:
Arduino UNO منطق 5V دارد، در حالی که UART خود SIM800L برای 5V مستقیم طراحی نشده است. برای مسیر Arduino TX → SIM800L RX از Level Shifter یا مدار تطبیق سطح مناسب استفاده کنید.

🔗 شماتیک متنی اتصال

SIM800L TXD --------> Arduino D10 (RX)

Arduino D11 (TX)
        |
        +--- Level Matching ---> SIM800L RXD

Arduino GND --------> SIM800L GND
Battery -   --------> SIM800L GND
Battery +   --------> SIM800L VCC/VBAT

ARDUINO CODE

اولین برنامه: پل ارتباطی بین Serial Monitor و SIM800L

کد زیر هر چیزی را که در Serial Monitor تایپ می‌کنید برای SIM800L می‌فرستد و پاسخ ماژول را دوباره روی کامپیوتر نمایش می‌دهد. این کد برای یادگیری و عیب‌یابی بسیار مفید است.

#include <SoftwareSerial.h>

SoftwareSerial sim800(10, 11); // RX, TX

void setup()
{
  Serial.begin(9600);
  sim800.begin(9600);

  Serial.println("SIM800L Ready...");
}

void loop()
{
  if (sim800.available())
  {
    Serial.write(sim800.read());
  }

  if (Serial.available())
  {
    sim800.write(Serial.read());
  }
}

برنامه چه کاری انجام می‌دهد؟

  • Serial ارتباط با کامپیوتر را برقرار می‌کند.
  • SoftwareSerial ارتباط با SIM800L را ایجاد می‌کند.
  • فرمان‌های شما را از کامپیوتر به ماژول می‌فرستد.
  • پاسخ SIM800L را روی Serial Monitor نمایش می‌دهد.

04 / SMS

ارسال و دریافت پیامک با SIM800L

SMS یکی از کاربردی‌ترین بخش‌های SIM800L است. دزدگیر پیامکی، هشدار قطع برق، کنترل رله، گزارش وضعیت دستگاه، کنترل پمپ و بسیاری از سیستم‌های مانیتورینگ ساده را می‌توان بر پایه SMS ساخت.

✓ SIM آماده
✓ ثبت روی شبکه
✓ سیگنال مناسب
✓ اعتبار کافی

کد ارسال اولین پیامک

شماره مقصد را جایگزین کنید. برای اولین تست، عمداً از متن انگلیسی استفاده شده است؛ چون متن فارسی نیازمند تنظیم Encoding مانند UCS2 است و بهتر است ابتدا مطمئن شویم مسیر پایه ارسال SMS سالم است.

#include <SoftwareSerial.h>

SoftwareSerial sim800(10, 11);

void setup()
{
  Serial.begin(9600);
  sim800.begin(9600);

  delay(3000);

  sim800.println("AT");
  delay(1000);

  sim800.println("AT+CMGF=1");
  delay(1000);

  sim800.println("AT+CMGS=\"09123456789\"");
  delay(1000);

  sim800.print("Hello from SIM800L");

  sim800.write(26); // CTRL+Z
}

void loop()
{
}

فرآیند ارسال SMS چه مراحلی دارد؟

دستور کاربرد
AT تست ارتباط
AT+CMGF=1 فعال کردن SMS Text Mode
AT+CMGS=”number” تعیین شماره مقصد
CTRL+Z ارسال نهایی پیام
CTRL+Z:
مقدار ASCII آن 26 است. بدون ارسال این کاراکتر، ماژول هنوز منتظر ادامه متن می‌ماند.
پیامک فارسی:
برای ارسال متن فارسی باید Encoding مناسب، معمولاً UCS2 یا روش PDU، در نظر گرفته شود. قرار دادن مستقیم متن UTF-8 فارسی در مثال ساده ممکن است روی همه Firmwareها درست کار نکند.

RECEIVE SMS

دریافت و خواندن پیامک

پس از دریافت یک پیامک، بسته به تنظیمات ماژول ممکن است اعلانی شبیه زیر ببینید:

+CMTI: "SM",3

در این مثال پیامک در خانه شماره 3 حافظه قرار گرفته است. برای خواندن:

AT+CMGR=3

برای حذف پیامک شماره 3:

AT+CMGD=3

برای حذف همه پیامک‌ها:

AT+CMGDA="DEL ALL"

چرا پیامک ارسال نمی‌شود؟

مشکل اول چه چیزی را بررسی کنیم؟
SMS ارسال نمی‌شود ثبت روی شبکه، سیگنال، اعتبار و شماره مقصد
ERROR ساختار دستور یا وضعیت سیم‌کارت
ریست هنگام ارسال تغذیه و افت ولتاژ
پیام جدید دریافت نمی‌شود حافظه SMS، تنظیمات و شبکه

05 / VOICE CALL

برقراری تماس تلفنی با SIM800L

SIM800L می‌تواند تماس خروجی برقرار کند، تماس ورودی را تشخیص دهد، تماس را پاسخ دهد و با فعال کردن Caller ID شماره تماس‌گیرنده را گزارش کند. این قابلیت برای سیستم‌های هشدار، کنترل دسترسی و کنترل رله از طریق تماس کاربردی است.

برقراری اولین تماس

ATD09123456789;
علامت ; مهم است:
برای تماس صوتی، سمی‌کالن انتهای دستور ATD را فراموش نکنید.

برنامه Arduino برای تماس

#include <SoftwareSerial.h>

SoftwareSerial sim800(10, 11);

void setup()
{
  sim800.begin(9600);

  delay(5000);

  sim800.println("ATD09123456789;");
}

void loop()
{
}

قطع تماس

ATH

پاسخ به تماس

ATA

اعلان تماس ورودی

RING

CALLER ID

خواندن شماره تماس‌گیرنده

AT+CLIP=1

بعد از فعال شدن CLIP، هنگام تماس ورودی شماره تماس‌گیرنده در خروجی UART ظاهر می‌شود. برنامه می‌تواند شماره را با فهرست شماره‌های مجاز مقایسه کند و فقط برای کاربران مجاز فرمانی مانند روشن کردن رله اجرا کند.

پیغام‌های مهم وضعیت تماس

پیغام معنی
RING تماس ورودی
NO CARRIER تماس پایان یافته یا برقرار نشده
BUSY مقصد اشغال
NO ANSWER پاسخی داده نشده
ERROR خطا در فرمان یا شرایط شبکه

🎤 میکروفون و بلندگو

بسته به نوع برد، پایه‌های صوتی مانند MIC+، MIC-، SPK+ و SPK- ممکن است در دسترس باشند. اتصال میکروفون و بلندگو باید مطابق مدار صوتی پیشنهادی همان برد انجام شود.

برای تنظیم سطح صدای خروجی می‌توان از فرمانی مانند زیر استفاده کرد:

AT+CLVL=80

06 / GPRS & INTERNET

اتصال SIM800L به اینترنت GPRS

GPRS نسبت به اینترنت LTE بسیار کندتر است، اما برای انتقال داده‌های کم‌حجم مانند دما، رطوبت، سطح مخزن، وضعیت رله، هشدارها و مختصات GPS می‌تواند کافی باشد.

محدودیت شبکه:
SIM800L فقط از شبکه 2G استفاده می‌کند؛ بنابراین پیش از طراحی محصول نهایی، وجود و پایداری پوشش 2G اپراتور در محل نصب را بررسی کنید.

APN چیست؟

APN یا Access Point Name نام نقطه دسترسی اپراتور برای اتصال دیتا است. مقادیر زیر تنظیمات رایج هستند، اما در پروژه نهایی بهتر است تنظیم فعلی اپراتور را بررسی کنید.

اپراتور APN رایج
همراه اول mcinet
ایرانسل mtnirancell
رایتل RighTel

راه‌اندازی Bearer برای GPRS

مثال با APN همراه اول:

AT
AT+SAPBR=3,1,"Contype","GPRS"
AT+SAPBR=3,1,"APN","mcinet"
AT+SAPBR=1,1
AT+SAPBR=2,1

اگر Bearer با موفقیت باز شود و یک IP معتبر دریافت کنید، ارتباط دیتای GPRS برقرار شده است.

HTTP REQUEST

ارسال اطلاعات SIM800L به سرور

فرض کنید یک سنسور دما مقدار 28 درجه را اندازه‌گیری کرده و می‌خواهیم آن را به یک Endpoint آزمایشی ارسال کنیم:

http://example.com/data.php?temp=28
AT+HTTPINIT
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","http://example.com/data.php?temp=28"
AT+HTTPACTION=0
AT+HTTPREAD
AT+HTTPTERM
HTTP ساده رمزگذاری نشده است:
برای اطلاعات حساس از HTTP ساده استفاده نکنید. برخی Firmwareهای سری SIM800 قابلیت SSL/HTTPS دارند، اما به‌دلیل قدیمی بودن پشته TLS ممکن است با بعضی سرورهای مدرن سازگار نباشند؛ این موضوع باید با Firmware و سرور واقعی تست شود.

REAL PROJECT

مثال واقعی: مانیتورینگ گلخانه

در یک گلخانه می‌توان Arduino را به سنسور دما و رطوبت متصل کرد. میکروکنترلر هر چند دقیقه یک‌بار سنسورها را می‌خواند و از طریق SIM800L داده را به سرور می‌فرستد. سمت سرور اطلاعات در دیتابیس ذخیره می‌شود و کاربر می‌تواند نمودار دما، رطوبت و وضعیت تجهیزات را مشاهده کند.

🌡 دما
💧 رطوبت
🔋 ولتاژ باتری
⚙️ وضعیت پمپ
🚨 هشدار
☁️ ذخیره روی سرور

🧠 نکته برای پروژه حرفه‌ای

مثال‌های این مقاله برای آموزش از Delay استفاده می‌کنند، اما در محصول واقعی بهتر است برنامه پاسخ هر AT Command را بخواند، Timeout داشته باشد، خطا را تشخیص دهد، تعداد Retry محدود تعریف کند و وضعیت مودم را با State Machine مدیریت کند. این تفاوت میان «کدی که در آزمایشگاه کار می‌کند» و «سیستمی که ماه‌ها بدون حضور کاربر کار می‌کند» بسیار مهم است.

07 / AT COMMANDS

مهم‌ترین دستورات AT برای SIM800L

وقتی این دستورات پایه را بشناسید، برای بسیاری از مشکلات نیازی به حدس زدن ندارید؛ از خود مودم می‌پرسید آیا سیم‌کارت آماده است، روی شبکه ثبت شده، قدرت سیگنال چقدر است و چه اپراتوری انتخاب شده است.

AT Command کاربرد
AT تست ارتباط
ATI مدل و Firmware
AT+CSQ قدرت سیگنال
AT+CREG? وضعیت ثبت GSM
AT+CPIN? وضعیت سیم‌کارت و PIN
AT+CCID شناسه ICCID سیم‌کارت، نه شماره موبایل
AT+COPS? اپراتور شبکه
AT+CBC اطلاعات باتری/تغذیه
AT+CCLK? ساعت داخلی
AT+CMGF=1 SMS Text Mode
AT+CMGR=n خواندن پیامک
AT+CMGD=n حذف پیامک
AT+CLIP=1 فعال کردن Caller ID
ATH قطع تماس
AT+CFUN=1,1 Restart نرم‌افزاری
AT&F بازگرداندن تنظیمات کارخانه

بررسی کیفیت سیگنال با AT+CSQ

AT+CSQ

نمونه خروجی:

+CSQ: 23,0
CSQ وضعیت تقریبی
0 تا 9 ضعیف
10 تا 14 قابل استفاده ولی نه ایده‌آل
15 تا 19 مناسب
20 تا 31 خوب تا بسیار خوب
99 نامشخص / قابل اندازه‌گیری نیست

آیا ماژول روی شبکه ثبت شده است؟

AT+CREG?
  • +CREG: 0,1 → ثبت روی شبکه خانگی
  • +CREG: 0,5 → ثبت در حالت رومینگ
  • +CREG: 0,2 → در حال جست‌وجوی شبکه

آماده بودن سیم‌کارت

AT+CPIN?

پاسخ مطلوب: +CPIN: READY

ICCID سیم‌کارت

AT+CCID

این مقدار شناسه سیم‌کارت است، نه شماره تلفن.

نام اپراتور

AT+COPS?

اپراتور ثبت‌شده را نمایش می‌دهد.

ساعت داخلی

AT+CCLK?

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

بررسی وضعیت باتری با AT+CBC

AT+CBC

نمونه پاسخ:

+CBC: 0,87,4080

در این مثال عدد 87 سطح تقریبی شارژ و مقدار 4080 ولتاژ گزارش‌شده بر حسب میلی‌ولت، یعنی حدود 4.080 ولت است.

08 / PROJECT ZONE

با SIM800L چه پروژه‌هایی می‌توان ساخت؟

بعد از یادگیری بخش‌های پایه، بهترین راه برای تثبیت دانش ساخت یک پروژه واقعی است. در انتخاب پروژه به محدودیت 2G، منبع تغذیه و امنیت فرمان‌های دریافتی نیز توجه کنید.

🏠 دزدگیر پیامکی
🚗 ردیاب GPS + GSM
🌱 گلخانه هوشمند
⚡ هشدار قطع برق
🚰 کنترل پمپ آب
🔥 اعلام حریق
🐔 جوجه‌کشی هوشمند
🏭 مانیتورینگ تجهیزات
💧 کنترل سطح مخزن
🏡 خانه هوشمند
🔋 گزارش وضعیت باتری
📡 تله‌متری ساده

چرا SIM800L هنوز محبوب است؟

با وجود ماژول‌های LTE جدیدتر، SIM800L هنوز برای آموزش، نمونه‌سازی و پروژه‌هایی که پوشش 2G در آن‌ها وجود دارد جذاب است؛ چون کوچک، نسبتاً اقتصادی و از نظر AT Command بسیار شناخته‌شده است.

قیمت مناسببرای آموزش و نمونه اولیه
AT Commandکنترل نسبتاً ساده
ابعاد کوچکمناسب پروژه‌های فشرده
SMS + Callبدون نیاز به Wi-Fi

مزایا و محدودیت‌های SIM800L

✓ مزایا

  • ابعاد کوچک
  • قیمت مناسب
  • SMS و تماس صوتی
  • GPRS
  • UART و AT Command
  • سازگاری با بسیاری از میکروکنترلرها
  • منابع آموزشی فراوان

✕ محدودیت‌ها

  • فقط 2G
  • حساسیت به تغذیه
  • سرعت پایین GPRS
  • مناسب نبودن برای داده حجیم
  • محدودیت‌های TLS در برخی Firmwareها
  • نیاز به طراحی اصولی UART و EMI در محصول نهایی

FINAL CHECK

چک‌لیست قبل از شروع پروژه واقعی

  • ولتاژ تغذیه با برد SIM800L سازگار است.
  • منبع توانایی تحمل پیک جریان را دارد.
  • سیم‌های تغذیه کوتاه و مناسب هستند.
  • GND تمام قسمت‌های لازم مشترک است.
  • UART از نظر Level Logic درست طراحی شده است.
  • سیم‌کارت PIN فعال ندارد.
  • آنتن به‌درستی نصب شده است.
  • AT+CPIN? پاسخ READY می‌دهد.
  • AT+CREG? ثبت روی شبکه را تأیید می‌کند.
  • AT+CSQ سیگنال قابل قبول نشان می‌دهد.
  • قبل از اجرای SMS یا GPRS، AT ساده پاسخ OK می‌دهد.

TROUBLESHOOTING

اگر SIM800L کار نکرد، از کجا شروع کنیم؟

  1. تغذیه: ولتاژ را هنگام تلاش برای اتصال به شبکه بررسی کنید، نه فقط در حالت Idle.
  2. SIM: با AT+CPIN? مطمئن شوید سیم‌کارت آماده است.
  3. شبکه: AT+CREG? را بخوانید.
  4. سیگنال: AT+CSQ را بررسی کنید.
  5. UART: RX/TX، GND و Baud Rate را بررسی کنید.
  6. Arduino: اگر شک دارید، Arduino را حذف و با USB-TTL مستقیم تست کنید.
  7. SMS/GPRS: فقط بعد از سالم بودن مراحل قبلی سراغ فرمان‌های سطح بالاتر بروید.

اشتباهات رایج کاربران SIM800L

  • تغذیه ماژول خام با 5V بدون بررسی مشخصات برد
  • استفاده از منبع ضعیف
  • استفاده از سیم بلند و نازک در مسیر تغذیه
  • فراموش کردن GND مشترک
  • اتصال اشتباه RX و TX
  • اتصال مستقیم منطق 5V Arduino به RX بدون بررسی Level
  • فعال بودن PIN سیم‌کارت
  • نبود پوشش 2G
  • انتظار اتصال SIM800L به LTE/4G
  • ارسال فارسی بدون Encoding مناسب
  • شروع مستقیم با کد پیچیده بدون تست AT

FAQ

سؤالات متداول درباره راه‌اندازی SIM800L

آیا SIM800L با Arduino UNO کار می‌کند؟

بله. ارتباط از طریق UART انجام می‌شود. باید تغذیه و سطح منطقی ارتباط سریال به‌درستی رعایت شوند.

آیا SIM800L را می‌توان مستقیم به 5 ولت وصل کرد؟

برای خود ماژول خام SIM800L خیر؛ محدوده تغذیه آن پایین‌تر است. اما بعضی Breakout Boardها مدار تغذیه اضافی دارند، بنابراین مشخصات دقیق برد خودتان را بررسی کنید.

چرا SIM800L هنگام ارسال پیامک ریست می‌شود؟

یکی از شایع‌ترین علت‌ها افت ولتاژ در لحظه افزایش مصرف GSM است. منبع تغذیه، سیم‌ها و اتصالات را بررسی کنید.

آیا SIM800L بدون آنتن کار می‌کند؟

ممکن است روشن شود و حتی AT Command پاسخ دهد، اما برای ارتباط مطمئن با شبکه باید آنتن مناسب نصب شود.

آیا سیم‌کارت 4G در SIM800L کار می‌کند؟

SIM800L خود مودم 2G است. اگر سیم‌کارت و اپراتور امکان اتصال به شبکه 2G داشته باشند، نسل تجاری نوشته‌شده روی سیم‌کارت به‌تنهایی مانع استفاده نیست.

چرا ماژول روی شبکه ثبت نمی‌شود؟

ابتدا تغذیه، آنتن، SIM و پوشش 2G را بررسی کنید. سپس AT+CPIN?، AT+CSQ و AT+CREG? را بخوانید.

آیا SIM800L با ESP32 و STM32 کار می‌کند؟

بله، مادامی که UART و سطح منطقی مناسب در دسترس باشد. در بردهای 3.3V معمولاً تطبیق سطح ساده‌تر از Arduino UNO پنج‌ولتی است، ولی مشخصات دقیق باید بررسی شود.

چرا پیامک فارسی ناخوانا ارسال می‌شود؟

حروف فارسی در ASCII ساده قرار ندارند. برای ارسال فارسی باید Encoding مانند UCS2 یا روش PDU را به‌درستی پیاده‌سازی کنید.

چرا GPRS وصل می‌شود ولی HTTP کار نمی‌کند؟

ابتدا Bearer و IP را بررسی کنید. سپس URL، DNS، دسترسی سرور و نوع HTTP/HTTPS را کنترل کنید. در HTTPS ممکن است محدودیت TLS Firmware قدیمی نیز مطرح باشد.

بهترین روش عیب‌یابی SIM800L چیست؟

مدار را ساده کنید. Arduino و سنسورها را موقتاً کنار بگذارید، SIM800L را با تغذیه مطمئن و USB-TTL راه‌اندازی کنید و AT، AT+CPIN?، AT+CSQ و AT+CREG? را به‌ترتیب آزمایش کنید.

NEXT STEP

برای تمرین، از کدام پروژه شروع کنیم؟

اگر تازه SIM800L را یاد گرفته‌اید، پروژه‌ها را نیز مرحله‌ای انتخاب کنید. کنترل یک رله با SMS بسیار ساده‌تر از ساخت یک ردیاب کامل GPS/GPRS است.

  1. ارسال SMS با فشار یک کلید
  2. کنترل LED یا رله با پیامک
  3. هشدار قطع برق
  4. تماس خودکار هنگام فعال شدن سنسور
  5. ارسال دمای محیط با SMS
  6. ارسال دما به سرور با GPRS
  7. ترکیب GPS و SIM800L برای ردیاب

📡 مشاهده ماژول SIM800L در تسلا شاپبرای مشاهده مشخصات، تصاویر، موجودی و اطلاعات خرید ماژول SIM800L وارد صفحه محصول شوید.

جمع‌بندی

راه‌اندازی SIM800L زمانی ساده می‌شود که مرحله‌ای جلو بروید

SIM800L در ظاهر ماژول ساده‌ای است، اما چون هم‌زمان با منبع تغذیه پالسی، شبکه موبایل، UART، سیم‌کارت و نرم‌افزار سروکار دارد، عیب‌یابی تصادفی آن می‌تواند زمان زیادی بگیرد. روش حرفه‌ای این است که مسئله را لایه‌لایه حل کنید: ابتدا Power، سپس SIM و Network، بعد UART، سپس SMS/Call و در آخر GPRS.

اگر تمام مراحل این آموزش را انجام داده باشید، اکنون نه‌فقط می‌توانید SIM800L را روشن و کنترل کنید، بلکه می‌دانید برای پیدا کردن مشکل از کدام AT Command استفاده کنید، چه زمانی به منبع تغذیه شک کنید و چگونه یک نمونه آزمایشی را به سمت یک پروژه واقعی و قابل اعتماد ببرید.

2 thoughts on “آموزش راه اندازی SIM800L با آردوینو؛ راهنمای کامل از صفر تا صد + ارسال پیامک، تماس و اینترنت GPRS

  1. کتایون گفت:

    آیا این توضیحات و کد ها برای sim800c هم صدق میکنه؟

    1. admin گفت:

      بله یکسانه کد و دستور عمل ها

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