آموزش راه اندازی ماژول gsm | ماژول GSM SIM800L یک ماژول ارتباطی است که برای ارسال و دریافت دادههای صوتی و متنی از طریق شبکههای GSM طراحی شده است. این ماژول به دلیل ابعاد کوچک، هزینه کم و قابلیتهای متنوع خود، به طور گستردهای در پروژههای مختلف الکترونیکی و IoT (اینترنت اشیاء) مورد استفاده قرار میگیرد.
ویژگیها و مشخصات فنی ماژول gsm
– ابعاد: کوچک و مناسب برای استفاده در پروژههایی با محدودیت فضا.
– ولتاژ کار: عملکرد در محدوده ولتاژ ۳.۴ تا ۴.۴ ولت.
– مصرف برق: مصرف کم در حالتهای آماده به کار و ارسال داده.
– پشتیبانی از شبکهها: این ماژول از شبکههای GSM/GPRS پشتیبانی میکند و قابلیت ارسال پیامک (SMS)، اتصال به اینترنت و انجام تماس صوتی را دارد.
– مدلهای ارتباطی: فراهم کردن پروتکلهای ارتباطی مانند TCP/IP برای اتصال به اینترنت.
کاربردهای ماژول gsm
ماژول SIM800L در پروژههای متنوعی کاربرد دارد، از جمله:
– پروژههای اینترنت اشیاء: نظارت بر تجهیزات از راه دور و ارسال دادهها.
– سیستمهای هشدار و نظارت: ارسال پیامک در صورت رخداد یک رویداد خاص (مانند دما، رطوبت و …).
– اتصالات صوتی: برقراری تماس صوتی از طریق میکروکنترلرها.
– گجتهای حاوی GPS: ارسال موقعیت جغرافیایی به سرور.
راه اندازی ماژول
برای راهاندازی ماژول SIM800L، به موارد زیر توجه کنید:
۱. تأمین ولتاژ: اطمینان حاصل کنید که ماژول به ولتاژ مناسب تأمین میشود؛ ولتاژ نامناسب میتواند منجر به خرابی ماژول شود.
۲. پینهای ارتباطی: ارتباط ماژول با میکروکنترلر (مانند Arduino) معمولاً از طریق پورت سریال (UART) برقرار میشود. پینهای TX و RX برای این ارتباط مورد استفاده قرار میگیرند.
۳. قراردادن سیمکارت: یک سیمکارت فعال را در ماژول قرار دهید و مطمئن شوید که شبکه GSM در منطقه شما در دسترس است.
ماژول GSM SIM800L یک ابزار قدرتمند و کاربردی است که زمینههای وسیعی از کاربردهای ارتباطی را فراهم میکند. با توجه به ویژگیهای آن، میتوان در پروژههای کوچک و بزرگ به راحتی از آن استفاده کرد و قابلیتهای متنوعی را در زمینه ارتباطات بیسیم به پروژههای خود اضافه نمود. با توجه به پیشرفت سریع تکنولوژی، استفاده از ماژولهای GSM مانند SIM800L همچنان در حال گسترش است و نوآوریهای بیشتری در این زمینه صورت میگیرد.
آموزش راه اندازی ماژول gsm با آردوینو
در این مقاله از آموزشگاه خانه رباتیک ایران، به نحوه راهاندازی ماژول GSM SIM800L با استفاده از آردوینو میپردازیم. این راهنما شامل سیمبندی، کد آردوینو و نکات مهم است.
موارد مورد نیاز برای راه اندازی ماژول gsm
۱. ماژول
SIM800L 2. آردوینو UNO (یا هر مدل دیگر)
۳. سیمکارت فعال
۴. سیمهای جامپر
۵. منبع تغذیه ۵V (برای ماژول SIM800L)
۶. مقاومت ۱KΩ (برای اتصال به RX ماژول)
۷. خازن ۱۰۰۰uF
مشخصات پایه های ماژول SIM800L
NET | اتصال آنتن و لحیم کردن آن روی بورد |
VCC | تغذیه بین ۳.۴-۴.۴ ولت |
RST | پین ریست ماژول برای فعال سازی باید LOW شود. |
Rx | گیرنده ارتباط سریال |
Tx | فرستنده ارتباط سریال |
GND | پین منفی تغذیه – این پین باید به GND میکروکنترلر یا رابط سریال نیز متصل شود. |
RING | بیانگر برقرای تماس. از این پایه میتوان بعنوان ایجاد وقفه خارجی نیز استفاده کرد. در حالت معمولی وضعیت این پایه HIGH است و در صورتی که با ماژول تماس گرفته شود، وضعیت آن به مدت ۱۲۰ میلی ثانیه LOW خواهد شد. |
DTR | فعال یا غیر فعال کردن حالت Sleep. اگر HIGH شود ماژول در حالت Sleep قرار گرفته و ارتباط سریال غیر فعال خواهد شد. |
±MIC | پین ورودی میکروفون |
±SPK | پین اتصال بلنگو |
سیمبندی
برای اتصال ماژول SIM800L به آردوینو، از طرح زیر استفاده کنید:
ماژول SIM800L | آردوینو
VCC | 5V
GND | GND
TX | RX (Pin 2)
RX | TX (Pin 3)
نکته مهم: ماژول SIM800L معمولاً در ولتاژ ۴.۲V کار میکند. ممکن است برای عملکرد بهتر، به یک منبع تغذیه جداگانه (۵V) نیاز باشد. دقت کنید که برای ورودی RX، باید ولتاژ ۵V را به ۲.۸V کاهش دهید. برای این کار میتوانید از یک مقاومت ۱KΩ به عنوان تقسیمکننده ولتاژ استفاده کنید.
کد آردوینو برای تماس با ماژول SIM800
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ |
#include "SoftwareSerial.h" // تعریف پایه ها برای ارتباط با ماژول SIM800 SoftwareSerial sim800(۲, ۳); // RX, TX void setup() { // راه اندازی سریال برای ارتباط با کامپیوتر Serial.begin(۹۶۰۰); // راه اندازی سریال برای ارتباط با ماژول SIM800 sim800.begin(۹۶۰۰); delay(۱۰۰۰); // زمان تاخیر برای راه اندازی ماژول Serial.println("Starting GSM Module..."); makeCall(); // فراخوانی تابع برقراری تماس } void loop() { // اینجا میتوان کدهای دیگر را اضافه کرد } // تابع برقراری تماس با شماره مشخص void makeCall() { String phoneNumber = "+۹۸xxxxxxxxxx"; // شماره تلفن مورد نظر // ارسال دستور AT برای برقراری تماس sim800.print("ATD"); sim800.print(phoneNumber); sim800.println(";"); // پایان شماره گیری // خواندن پاسخ از ماژول delay(۵۰۰); // زمان تاخیر برای ارسال دستور while (sim800.available()) { Serial.write(sim800.read()); // ارسال پاسخ به سریال } Serial.println("Call initiated..."); } |
تحلیل خط به خط کد
۱ |
#include "SoftwareSerial.h" |
کتابخانه SoftwareSerial برای ایجاد یک پورت سریال نرمافزاری استفاده میشود که به ما امکان میدهد با دستگاههای سریالی بیشتری ارتباط برقرار کنیم. این کتابخانه اجازه میدهد که پایههای مختلفی به عنوان RX و TX تعیین شوند.
۱ ۲ |
SoftwareSerial sim800(۲, ۳); // RX, TX |
یک نمونه از SoftwareSerial ساخته میشود و پایههای ۳ و ۲ به عنوان TX و RX برای ارتباط با ماژول SIM800 تعریف میشوند. به این معنی که دیتا از ماژول به پایه ۲ و از پایه ۳ ارسال میشود.
۱ ۲ |
Serial.begin(۹۶۰۰); |
راهاندازی ارتباط سریال با سرعت ۹۶۰۰ بیت در ثانیه برای ارسال و دریافت اطلاعات با کامپیوتر (یا مانیتور سریال).
۱ ۲ |
sim800.begin(۹۶۰۰); |
راهاندازی ارتباط سریال برای ماژول GSM با همان سرعت.
۱ |
delay(۱۰۰۰); |
ایجاد یک تاخیر یک ثانیهای برای دادن زمان به ماژول GSM برای راهاندازی.
۱ ۲ |
Serial.println("Starting GSM Module..."); |
چاپ پیام در مانیتور سریال که نشاندهنده شروع ماژول GSM است.
۱ |
makeCall(); |
فراخوانی تابع makeCall برای برقراری تماس.
۱ ۲ |
void makeCall() { |
تابع makeCall برای برقراری تماس ایجاد شده است.
۱ |
String phoneNumber = "+۹۸xxxxxxxxxx"; |
شماره تلفن مورد نظر برای برقراری تماس. (به یاد داشته باشید که باید این شماره را مطابق با شماره واقعی که میخواهید با آن تماس بگیرید اصلاح کنید).
۱ ۲ |
sim800.print("ATD"); |
ارسال دستور AT برای شروع تماس. ATD به معنی “Dial” یا شمارهگیری است.
۱ ۲ |
sim800.print(phoneNumber); |
شماره تلفن به دستور افزوده میشود.
۱ |
sim800.println(";"); |
پایانی به شمارهگیری بر اساس استاندارد AT Commands.
۱ |
delay(۵۰۰); |
ایجاد یک تاخیر نیم ثانیهای بعد از ارسال دستور برای اطمینان از ارسال کامل دادهها.
۱ |
while (sim800.available()) { |
تا زمانی که دادهای از ماژول SIM800 در دسترس باشد، این حلقه اجرا خواهد شد.
۱ |
Serial.write(sim800.read()); |
خواندن دادههای دریافتی از ماژول SIM800 و ارسال آن به مانیتور سریال برای مشاهده.
۱ ۲ |
Serial.println("Call initiated..."); |
چاپ پیامی که نشان میدهد تماس آغاز شده است.
نتیجهگیری
این کد یک نمونه ساده برای برقراری تماس با ماژول SIM800 است. برای استفاده واقعی، اطمینان حاصل کنید که ماژول به درستی متصل شده و سیمکارت فعال در آن قرار داشته باشد.
کد آردوینو برای ارسال پیامک
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ |
#include "SoftwareSerial.h" // تعریف پایهها برای ارتباط با ماژول GSM SoftwareSerial sim800(۲, ۳); // RX, TX void setup() { // راهاندازی سریال برای ارتباط با کامپیوتر Serial.begin(۹۶۰۰); // راهاندازی سریال برای ماژول GSM sim800.begin(۹۶۰۰); delay(۱۰۰۰); // زمان تاخیر برای راهاندازی ماژول sendSMS("تست پیامک از آردوینو"); // فراخوانی تابع ارسال پیامک } void loop() { // در اینجا میتوان کدهای دیگر را اضافه کرد } // تابع ارسال پیامک void sendSMS(String message) { sim800.println("AT"); // ارسال دستور AT برای بررسی ارتباط delay(۱۰۰); sim800.println("AT+CMGF=1"); // تنظیم حالت متن برای ارسال پیام delay(۱۰۰); String phoneNumber = "+۹۸xxxxxxxxxx"; // شماره تلفن گیرنده (آن را تغییر دهید) sim800.print("AT+CMGS=\""); // آغاز دستور ارسال پیامک sim800.print(phoneNumber); // شماره تلفن گیرنده sim800.println("\""); // پایان شماره تلفن delay(۱۰۰); sim800.println(message); // محتوای پیام را ارسال کنید delay(۱۰۰); sim800.println((char)۲۶); // ارسال کاراکتر پایان پیام (CTRL+Z) Serial.println("Message sent!"); // چاپ پیامی مبنی بر ارسال موفقیتآمیز } |