آموزش راهاندازی SIM800L با آردوینو؛ ارسال پیامک، تماس و اینترنت GPRS از صفر تا پیشرفته
Arduino UNO
AT Command
SMS + Call
مبتدی تا پیشرفته
اگر اولین بار است که ماژول SIM800L را در دست گرفتهاید، این آموزش قرار است بدون پرش و سردرگمی شما را از اولین اتصال برق تا ساخت یک پروژه واقعی همراهی کند. ابتدا یاد میگیریم SIM800L چیست، به چه منبع تغذیهای نیاز دارد و چگونه از اتصال صحیح آن به شبکه موبایل مطمئن شویم؛ سپس ارتباط با کامپیوتر و AT Command را آزمایش میکنیم، Arduino UNO را وارد مدار میکنیم و بعد به سراغ ارسال و دریافت پیامک، تماس تلفنی، GPRS، ارسال اطلاعات به سرور و عیبیابی حرفهای میرویم.
هدف این مقاله فقط دادن چند قطعه کد آماده نیست. وقتی آموزش را تمام میکنید باید بتوانید تشخیص دهید اگر ماژول کار نکرد، مشکل احتمالاً در تغذیه، سیمکارت، پوشش شبکه، UART، Baud Rate، تنظیمات AT یا برنامه شماست و بدون تعویض تصادفی قطعات، مرحلهبهمرحله عیبیابی کنید.
تغذیه و شبکه ← تست AT ← اتصال Arduino ← SMS ← تماس ← GPRS ← پروژه واقعی. اگر تازهکار هستید، ترتیب مراحل را تغییر ندهید.

✓ رویکرد این راهنما
در این نسخه، نکات تغذیه، UART، دستورات AT و محدودیتهای شبکه از دید فنی بازبینی شدهاند و بخشهایی که ممکن بود برای یک کاربر مبتدی برداشت اشتباه ایجاد کنند، دقیقتر توضیح داده شدهاند. هنگام استفاده از بردهای مختلف SIM800L همیشه مشخصات همان برد و مدار تغذیه نصبشده روی آن را نیز بررسی کنید.
📌 SIM800L در یک نگاه
نوع ارتباط
شبکه مخابراتی
پیامک و تماس
ارتباط با MCU
فهرست و مسیر یادگیری SIM800L
اگر کاملاً مبتدی هستید، این هشت مرحله را به ترتیب دنبال کنید. هر مرحله پیشنیاز منطقی مرحله بعدی است.
SIM800L، باتری، سیمکارت و شبکه
USB to TTL و تست ماژول
UART و SoftwareSerial
ارسال، دریافت و مدیریت SMS
تماس خروجی، ورودی و Caller ID
اینترنت و ارسال داده
شبکه، آنتن و عیبیابی
ایدهها، FAQ و جمعبندی
وسایل موردنیاز برای راهاندازی 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 |
| سیم جامپر | چند عدد | سیمکشی مدار | مشاهده سیم جامپر |
SIM800L چیست و چه کاری انجام میدهد؟
SIM800L یک ماژول مخابراتی GSM/GPRS است که پس از قرار گرفتن سیمکارت و ثبت شدن روی شبکه 2G میتواند قابلیتهایی شبیه بخش مخابراتی یک تلفن همراه را در اختیار مدار الکترونیکی شما قرار دهد. آردوینو یا هر میکروکنترلر دیگری از طریق ارتباط UART و دستورات AT به ماژول فرمان میدهد.
بنابراین پروژه شما بدون Wi-Fi میتواند پیامک بفرستد، پیامک دریافت کند، تماس برقرار کند، تماس ورودی را تشخیص دهد و از GPRS برای انتقال دادههای کمحجم استفاده کند.
مهمترین بخش راهاندازی SIM800L: منبع تغذیه
بخش بزرگی از مشکلات SIM800L از تغذیه شروع میشود. خود ماژول خام SIM800L برای تغذیه حدود 3.4 تا 4.4 ولت طراحی شده و مقدار نزدیک 4 ولت محدوده معمول طراحی است. همچنین هنگام ارسال روی شبکه GSM، مصرف جریان ثابت نیست و پیک لحظهای میتواند به حدود 2 آمپر برسد.
به همین دلیل منبعی که روی مولتیمتر 4 ولت نشان میدهد الزاماً منبع خوبی نیست؛ باید در لحظه افزایش مصرف نیز افت ولتاژ شدید نداشته باشد.
علائم رایج تغذیه نامناسب:
- ماژول روشن میشود اما روی شبکه ثبت نمیشود.
- هنگام SMS یا تماس ناگهان ریست میشود.
- GPRS پس از چند ثانیه قطع میشود.
- AT Command گاهی پاسخ میدهد و گاهی پاسخ نمیدهد.
- LED وضعیت دوباره به الگوی شروع کار برمیگردد.
آیا باتری 18650 برای SIM800L مناسب است؟
برای بسیاری از بردهای خام SIM800L، یک سلول لیتیوم یون سالم گزینه سادهای برای تست اولیه است. یک سلول لیتیومی در حالت شارژ کامل حدود 4.2V و در محدوده نامی حدود 3.7V دارد. با این حال، اگر برد SIM800L شما دارای رگولاتور یا مدار تغذیه مخصوص است، قبل از اتصال باتری مشخصات همان برد را بررسی کنید.
Battery + ----> VCC / VBAT
Battery - ----> GND
هدف، رساندن بیشترین ولتاژ ممکن به ماژول نیست؛ هدف یک تغذیه پایدار، کمافت و سازگار با برد است.
🔌 آیا میتوان از آداپتور استفاده کرد؟
بله، اما خروجی آداپتور یا مبدل DC-DC باید برای برد شما ولتاژ صحیح و در پیکهای مصرف جریان کافی داشته باشد. آداپتورهای ضعیف یا سیمهای تغذیه نازک میتوانند باعث افت ولتاژ لحظهای شوند. اگر از مبدل قابل تنظیم استفاده میکنید، ولتاژ آن را قبل از اتصال ماژول با مولتیمتر تنظیم کنید.
قبل از روشن کردن ماژول، سیمکارت را بررسی کنید
سیمکارت را قبل از روشن کردن ماژول در جهت صحیح داخل خشاب قرار دهید. SIM800L مودم 2G است؛ بنابراین صرف اینکه سیمکارت شما «4G» یا «5G» نامیده میشود مهم نیست، بلکه اپراتور و سیمکارت باید امکان اتصال به شبکه 2G را در محل پروژه داشته باشند.
LED وضعیت شبکه چه چیزی به ما میگوید؟
بسیاری از بردهای SIM800L یک LED وضعیت شبکه دارند. الگوی دقیق LED میتواند بین بردها متفاوت باشد، بنابراین LED را نشانه کمکی بدانید و برای تشخیص قطعی وضعیت شبکه از دستور AT+CREG? استفاده کنید.
| الگوی رایج | برداشت معمول |
| چشمک سریع | جستوجوی شبکه یا ثبتنشده |
| چشمک با فاصله چند ثانیه | در بسیاری از بردها نشانه ثبت روی شبکه |
اتصال 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 |
اتصال 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
- USB to TTL را به کامپیوتر وصل کنید.
- COM Port مربوط به مبدل را انتخاب کنید.
- Serial Monitor یا یک Terminal سریال را باز کنید.
- برای شروع Baud Rate را روی 9600 قرار دهید.
- Line Ending را روی Both NL & CR تنظیم کنید.
علاوه بر RX/TX، Baud Rate را نیز بررسی کنید؛ بعضی بردها ممکن است تنظیم متفاوتی داشته باشند.
اولین دستور AT
فرمان زیر را ارسال کنید:
AT
پاسخ صحیح:
OK
ماژول روشن است و ارتباط سریال در این مرحله درست کار میکند.
دستورات مناسب برای تست اولیه
| دستور | کاربرد |
| AT | تست ارتباط |
| ATI | اطلاعات ماژول |
| AT+CSQ | قدرت سیگنال |
| AT+CCID | ICCID یا شناسه سیمکارت |
| AT+CPIN? | وضعیت PIN و آماده بودن SIM |
| AT+CREG? | وضعیت ثبت روی شبکه |
اتصال SIM800L به Arduino UNO
حالا که خود SIM800L را مستقل آزمایش کردهایم، Arduino UNO را وارد مدار میکنیم. در این مثال از SoftwareSerial استفاده میکنیم تا پینهای D10 و D11 بهعنوان یک پورت سریال نرمافزاری عمل کنند.
پایه 5V آردوینو را بهعنوان منبع اصلی تغذیه SIM800L خام در نظر نگیرید. پیک مصرف GSM میتواند باعث افت ولتاژ و ریست شود.
اتصالات Arduino UNO و SIM800L
| Arduino | SIM800L | توضیح |
| D10 | TXD | دریافت داده توسط Arduino |
| D11 | RXD | ارسال داده با تطبیق سطح منطقی مناسب |
| GND | GND | زمین مشترک |
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
اولین برنامه: پل ارتباطی بین 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 نمایش میدهد.
ارسال و دریافت پیامک با SIM800L
SMS یکی از کاربردیترین بخشهای SIM800L است. دزدگیر پیامکی، هشدار قطع برق، کنترل رله، گزارش وضعیت دستگاه، کنترل پمپ و بسیاری از سیستمهای مانیتورینگ ساده را میتوان بر پایه SMS ساخت.
کد ارسال اولین پیامک
شماره مقصد را جایگزین کنید. برای اولین تست، عمداً از متن انگلیسی استفاده شده است؛ چون متن فارسی نیازمند تنظیم 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 | ارسال نهایی پیام |
مقدار ASCII آن 26 است. بدون ارسال این کاراکتر، ماژول هنوز منتظر ادامه متن میماند.
برای ارسال متن فارسی باید Encoding مناسب، معمولاً UCS2 یا روش PDU، در نظر گرفته شود. قرار دادن مستقیم متن UTF-8 فارسی در مثال ساده ممکن است روی همه Firmwareها درست کار نکند.
دریافت و خواندن پیامک
پس از دریافت یک پیامک، بسته به تنظیمات ماژول ممکن است اعلانی شبیه زیر ببینید:
+CMTI: "SM",3
در این مثال پیامک در خانه شماره 3 حافظه قرار گرفته است. برای خواندن:
AT+CMGR=3
برای حذف پیامک شماره 3:
AT+CMGD=3
برای حذف همه پیامکها:
AT+CMGDA="DEL ALL"
چرا پیامک ارسال نمیشود؟
| مشکل | اول چه چیزی را بررسی کنیم؟ |
| SMS ارسال نمیشود | ثبت روی شبکه، سیگنال، اعتبار و شماره مقصد |
| ERROR | ساختار دستور یا وضعیت سیمکارت |
| ریست هنگام ارسال | تغذیه و افت ولتاژ |
| پیام جدید دریافت نمیشود | حافظه SMS، تنظیمات و شبکه |
برقراری تماس تلفنی با 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
خواندن شماره تماسگیرنده
AT+CLIP=1
بعد از فعال شدن CLIP، هنگام تماس ورودی شماره تماسگیرنده در خروجی UART ظاهر میشود. برنامه میتواند شماره را با فهرست شمارههای مجاز مقایسه کند و فقط برای کاربران مجاز فرمانی مانند روشن کردن رله اجرا کند.
پیغامهای مهم وضعیت تماس
| پیغام | معنی |
| RING | تماس ورودی |
| NO CARRIER | تماس پایان یافته یا برقرار نشده |
| BUSY | مقصد اشغال |
| NO ANSWER | پاسخی داده نشده |
| ERROR | خطا در فرمان یا شرایط شبکه |
🎤 میکروفون و بلندگو
بسته به نوع برد، پایههای صوتی مانند MIC+، MIC-، SPK+ و SPK- ممکن است در دسترس باشند. اتصال میکروفون و بلندگو باید مطابق مدار صوتی پیشنهادی همان برد انجام شود.
برای تنظیم سطح صدای خروجی میتوان از فرمانی مانند زیر استفاده کرد:
AT+CLVL=80
اتصال 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 برقرار شده است.
ارسال اطلاعات 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 ساده استفاده نکنید. برخی Firmwareهای سری SIM800 قابلیت SSL/HTTPS دارند، اما بهدلیل قدیمی بودن پشته TLS ممکن است با بعضی سرورهای مدرن سازگار نباشند؛ این موضوع باید با Firmware و سرور واقعی تست شود.
مثال واقعی: مانیتورینگ گلخانه
در یک گلخانه میتوان Arduino را به سنسور دما و رطوبت متصل کرد. میکروکنترلر هر چند دقیقه یکبار سنسورها را میخواند و از طریق SIM800L داده را به سرور میفرستد. سمت سرور اطلاعات در دیتابیس ذخیره میشود و کاربر میتواند نمودار دما، رطوبت و وضعیت تجهیزات را مشاهده کند.
🧠 نکته برای پروژه حرفهای
مثالهای این مقاله برای آموزش از Delay استفاده میکنند، اما در محصول واقعی بهتر است برنامه پاسخ هر AT Command را بخواند، Timeout داشته باشد، خطا را تشخیص دهد، تعداد Retry محدود تعریف کند و وضعیت مودم را با State Machine مدیریت کند. این تفاوت میان «کدی که در آزمایشگاه کار میکند» و «سیستمی که ماهها بدون حضور کاربر کار میکند» بسیار مهم است.
مهمترین دستورات 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 ولت است.
با SIM800L چه پروژههایی میتوان ساخت؟
بعد از یادگیری بخشهای پایه، بهترین راه برای تثبیت دانش ساخت یک پروژه واقعی است. در انتخاب پروژه به محدودیت 2G، منبع تغذیه و امنیت فرمانهای دریافتی نیز توجه کنید.
چرا SIM800L هنوز محبوب است؟
با وجود ماژولهای LTE جدیدتر، SIM800L هنوز برای آموزش، نمونهسازی و پروژههایی که پوشش 2G در آنها وجود دارد جذاب است؛ چون کوچک، نسبتاً اقتصادی و از نظر AT Command بسیار شناختهشده است.
مزایا و محدودیتهای SIM800L
✓ مزایا
- ابعاد کوچک
- قیمت مناسب
- SMS و تماس صوتی
- GPRS
- UART و AT Command
- سازگاری با بسیاری از میکروکنترلرها
- منابع آموزشی فراوان
✕ محدودیتها
- فقط 2G
- حساسیت به تغذیه
- سرعت پایین GPRS
- مناسب نبودن برای داده حجیم
- محدودیتهای TLS در برخی Firmwareها
- نیاز به طراحی اصولی UART و EMI در محصول نهایی
چکلیست قبل از شروع پروژه واقعی
- ولتاژ تغذیه با برد SIM800L سازگار است.
- منبع توانایی تحمل پیک جریان را دارد.
- سیمهای تغذیه کوتاه و مناسب هستند.
- GND تمام قسمتهای لازم مشترک است.
- UART از نظر Level Logic درست طراحی شده است.
- سیمکارت PIN فعال ندارد.
- آنتن بهدرستی نصب شده است.
- AT+CPIN? پاسخ READY میدهد.
- AT+CREG? ثبت روی شبکه را تأیید میکند.
- AT+CSQ سیگنال قابل قبول نشان میدهد.
- قبل از اجرای SMS یا GPRS، AT ساده پاسخ OK میدهد.
اگر SIM800L کار نکرد، از کجا شروع کنیم؟
- تغذیه: ولتاژ را هنگام تلاش برای اتصال به شبکه بررسی کنید، نه فقط در حالت Idle.
- SIM: با AT+CPIN? مطمئن شوید سیمکارت آماده است.
- شبکه: AT+CREG? را بخوانید.
- سیگنال: AT+CSQ را بررسی کنید.
- UART: RX/TX، GND و Baud Rate را بررسی کنید.
- Arduino: اگر شک دارید، Arduino را حذف و با USB-TTL مستقیم تست کنید.
- SMS/GPRS: فقط بعد از سالم بودن مراحل قبلی سراغ فرمانهای سطح بالاتر بروید.
اشتباهات رایج کاربران SIM800L
- تغذیه ماژول خام با 5V بدون بررسی مشخصات برد
- استفاده از منبع ضعیف
- استفاده از سیم بلند و نازک در مسیر تغذیه
- فراموش کردن GND مشترک
- اتصال اشتباه RX و TX
- اتصال مستقیم منطق 5V Arduino به RX بدون بررسی Level
- فعال بودن PIN سیمکارت
- نبود پوشش 2G
- انتظار اتصال SIM800L به LTE/4G
- ارسال فارسی بدون Encoding مناسب
- شروع مستقیم با کد پیچیده بدون تست AT
سؤالات متداول درباره راهاندازی 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? را بهترتیب آزمایش کنید.
برای تمرین، از کدام پروژه شروع کنیم؟
اگر تازه SIM800L را یاد گرفتهاید، پروژهها را نیز مرحلهای انتخاب کنید. کنترل یک رله با SMS بسیار سادهتر از ساخت یک ردیاب کامل GPS/GPRS است.
- ارسال SMS با فشار یک کلید
- کنترل LED یا رله با پیامک
- هشدار قطع برق
- تماس خودکار هنگام فعال شدن سنسور
- ارسال دمای محیط با SMS
- ارسال دما به سرور با GPRS
- ترکیب GPS و SIM800L برای ردیاب
📡 مشاهده ماژول SIM800L در تسلا شاپبرای مشاهده مشخصات، تصاویر، موجودی و اطلاعات خرید ماژول SIM800L وارد صفحه محصول شوید.
راهاندازی SIM800L زمانی ساده میشود که مرحلهای جلو بروید
SIM800L در ظاهر ماژول سادهای است، اما چون همزمان با منبع تغذیه پالسی، شبکه موبایل، UART، سیمکارت و نرمافزار سروکار دارد، عیبیابی تصادفی آن میتواند زمان زیادی بگیرد. روش حرفهای این است که مسئله را لایهلایه حل کنید: ابتدا Power، سپس SIM و Network، بعد UART، سپس SMS/Call و در آخر GPRS.
اگر تمام مراحل این آموزش را انجام داده باشید، اکنون نهفقط میتوانید SIM800L را روشن و کنترل کنید، بلکه میدانید برای پیدا کردن مشکل از کدام AT Command استفاده کنید، چه زمانی به منبع تغذیه شک کنید و چگونه یک نمونه آزمایشی را به سمت یک پروژه واقعی و قابل اعتماد ببرید.
آیا این توضیحات و کد ها برای sim800c هم صدق میکنه؟
بله یکسانه کد و دستور عمل ها