ماژول sim800l چیست ؟

ماژول SIM800L نوعی ماژول سیم کارت است که می تواند در تعداد زیادی از پروژه های اینترنت اشیا ادغام شود. شما می توانید از این ماژول برای انجام تقریباً هر کاری که یک تلفن همراه معمولی می تواند انجام دهد مانند ارسال پیام کوتاه، برقراری تماس تلفنی، اتصال به اینترنت از طریق GPRS و بسیاری موارد دیگر استفاده کنید. ضمنا، این ماژول از شبکه های چهار باند GSM/GPRS پشتیبانی می کند، به این معنی که تقریباً در هر نقطه از جهان کار می کند. ماژول SIM800L از 4 باند 850/900/1800/1900 مگاهرتز پشتیبانی می کند که میتواند صدا ، پیام و دیتا را با توان بسیار پایین انتقال بدهد. این ماژول در سایز کوچک 15.8*17.8*2.4 mm میتواند در بسیاری از برد های مورد نظر مشتریان با طراحی دلخواه جا داده شود. برای خرید ماژول سیم 800L با قیمتی مناسب و کیفیتی عالی به فروشگاه اینترنتی دیجی قطعه مراجعه کنید.

مدار دیاگرام ماژول SIM800L GSM/GPRS

تصویر مدار ماژول سیم 800L

بررسی سخت افزار ماژول سیم 800L

در قلب این ماژول یک تراشه SIM800L GSM از Simcom قرار دارد. ولتاژ کاری تراشه از 3.4 تا 4.4 ولت است که آن را به یک گزینه ایده آل برای تامین مستقیم باتری LiPo تبدیل می کند. این باعث می شود که گزینه خوبی برای تعبیه در پروژه هایی باشد که فضای کمی ندارند.

سخت افزار ماژول sim800L

یک آنتن خارجی برای اتصال ماژول به شبکه مورد نیاز است. این ماژول معمولاً دارای یک آنتن مارپیچ است که می تواند روی ماژول لحیم شود. این برد همچنین دارای یک کانکتور U.FL در صورتی که بخواهید آنتن را از برد دور نگه دارید.

سخت افزار ماژول sim800L بخش دوم

یک سوکت سیم کارت در پشت ماژول وجود دارد، هر سیم کارت 2G Micro به خوبی کار می کند. جهت صحیح قرار دادن سیم کارت معمولاً روی سطح سوکت سیم کارت حک می شود.

امکانات ماژول sim800l چیست ؟

ماژول سیم 800L که در رده ماژول های سیم 800 قرار می گیرد، با اندازه بسیار کوچکش که تنها 1 اینچ 2 است، مقدار شگفت انگیزی از ویژگی ها و امکانات را در قاب کوچک خود گنجانده است. برخی از امکانات ماژول سیم 800L به شرح زیر است:

  • پشتیبانی از چهار باند: GSM850، EGSM900، DCS1800 و PCS1900
  • با هر سیم کارت 2G به هر شبکه جهانی GSM متصل شوید
  • با استفاده از بلندگوی خارجی 8Ω و میکروفون الکترت تماس صوتی برقرار و دریافت کنید
  • ارسال و دریافت پیامک ارسال
  • ارسال و دریافت داده های GPRS (TCP/IP، HTTP و غیره)
  • ارسال و دریافت پخش رادیو FM

نشانگرهای وضعیت LED :

گیف نشانگر led ماژول sim800L

هر 1 ثانیه چشمک می زند

 ماژول در حال اجرا است اما هنوز اتصال به شبکه تلفن همراه برقرار نشده است.

گیف نشانگر led ماژول sim800L بخش دوم

هر 2 ثانیه چشمک می زند

اتصال داده GPRS که درخواست کردید فعال است.

گیف نشانگر led ماژول sim800L بخش سوم
هر 3 ثانیه چشمک می زند

ماژول با شبکه تلفن همراه ارتباط برقرار کرده است و می تواند صدا و پیامک ارسال/دریافت کند.                

پین اوت ماژول GSM SIM800L

پین اوت ماژول سیم 800L

NET: یک پین است که در آن می توانید آنتن مارپیچ ارائه شده با ماژول را لحیم کنید.

VCC: برق ماژول را تامین می کند. می تواند از 3.4 ولت تا 4.4 ولت باشد. به یاد داشته باشید که اتصال آن به 5 ولت احتمالاً به ماژول شما آسیب می رساند! حتی روی 3.3 ولت هم اجرا نمیشه! بنابراین سعی کنید از یک منبع تغذیه خارجی با رتبه 3.7 ولت 2 آمپری مانند باتری Li-Po یا مبدل باک DC-DC استفاده کنید.

تصویر Li-Po Battery

Li-Po Battery

تصویر LM2596 - DC-DC Buck Converter

 LM2596 – DC-DC Buck Converter

RST (Reset) : یک پین ریست است. اگر ماژول را در فضای کاملاً بدی قرار داده اید، این پین LOW را به مدت 100 میلی ثانیه بکشید تا یک هارد ریست انجام شود.

RxD (Receiver): این پین برای ارسال دستورات به ماژول استفاده می شود. این پین باود خودکار است، بنابراین نرخ بادی که در آن فرمان «AT» را پس از تنظیم مجدد ارسال می‌کنید، نرخ بادی استفاده شده است.

TxD (Transmitter): پین داده ها را از ماژول به میکروکنترلر منتقل می کند.

GND: پین گراند ( زمین )

RING: این پین به عنوان یک نشانگر حلقه عمل می کند. این اساساً پین «وقفه‌ای» از ماژول است. به طور پیش‌فرض HIGH است و هنگام دریافت تماس، 120 میلی‌ثانیه پالس آن پایین است. همچنین می توان آن را به گونه ای تنظیم کرد که هنگام دریافت پیامک، پالس کند.

DTR: پین حالت SLEEP را فعال/غیرفعال می کند. با قرار دادن آن بر روی Hight ، ماژول در حالت خواب قرار می گیرد و ارتباط سریال غیرفعال می شود. با قرار دادن آن بر روی LOW، ماژول از حالت SLEEP غیر فعال می شود.

MIC±: ورودی میکروفون دیفرانسیل است. یک میکروفون می تواند مستقیماً به این دو پین متصل شود.

SPK±: یک رابط بلندگوی دیفرانسیل است. یک اسپیکر می تواند مستقیماً به این دو پایه متصل شود.

راه اندازی ماژول sim800l با آردوینو

نمی‌توانیم پایه Rx ماژول را مستقیماً به پین ​​دیجیتال آردوینو وصل کنیم زیرا Arduino UNO از سطح منطقی 5 ولت استفاده می‌کند در حالی که ماژول SIM800L از سطح منطقی 3.3 ولت استفاده می‌کند. به زبان ساده، پین Rx ماژول SIM800L  ولتاژ 5 ولت را تحمل نمی کند. بنابراین سیگنال Tx که از آردوینو می آید باید به 3.3 ولت کاهش یابد. راه های زیادی برای انجام این کار وجود دارد اما ساده ترین راه استفاده از یک تقسیم کننده مقاومت ساده است. مقاومت 10K بین Rx SIM800L و D2 آردوینو و 20K بین Rx و GND SIM800L خوب کار خواهد کرد. اکنون با پین هایی که برای تامین برق ماژول استفاده می شوند، مانده ایم. از آنجایی که چندین گزینه برای تغذیه ماژول دارید، ما دو نمونه شماتیک را برای شما ارائه کرده ایم. اولی از باتری 1200 میلی آمپر ساعتی Li-Po استفاده می کند.

نمودار شماتیک سیم 800L با باتری

و دومی از مبدل باک DC-DC LM2596 استفاده می کند.

نمودار شماتیک سیم 800L با مبدل LM2596

باید بسیار مراقب باشید که GND را قبل از VCC قطع نکنید و همیشه GND را قبل از VCC وصل کنید. در غیر این صورت ممکن است ماژول از پین های سریال ولتاژ پایین به عنوان زمین استفاده کند که باعث آسیب به ماژول شود.

و مطمئن شوید که مدار شما و آردوینو یک نقطه مشترک دارند!

دستورات ماژول sim800l

کد آردوینو برای SIM800L در 3 قسمت ساخته شده است:

  1. تست دستورات AT
  2. دریافت پیام با استفاده از sim800l
  3. ارسال پیام با استفاده از sim800l

تست دستورات AT

#include <SoftwareSerial.h>
/* Tutorial link:  https://pijaeducation.com/arduino/gsm/send-receive-messages-using-sim800l-with-arduino/
   Create software serial pins: pin 2 as RX & 3 as TX
   Connect SIM800L module Rx to Pin 3 (Tx) of Arduino & Tx to Pin 2 (Rx) of Arduino
*/
SoftwareSerial mySerial(2, 3);

void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
  Serial.println("Initializing...");
  delay(1000);

  // Send attention command to check if all fine, it returns OK
  mySerial.println("AT");
  updateSerial();

  // Signal quality test, value range is 0 - 31 , 31 is the Excellent
  mySerial.println("AT+CSQ");
  updateSerial();

  // Used to read the ICCID from the SIM, if returns means SIM is plugged
  mySerial.println("AT+CCID");
  updateSerial();

  // Check whether it has registered on the network
  mySerial.println("AT+CREG?");
  updateSerial();
}

void loop() {
  updateSerial();
}

// For data transmission from Serial to Software Serial port & vice versa
void updateSerial() {
  delay(500);
  while (Serial.available()) {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }

  while (mySerial.available()) {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

دریافت پیام با استفاده از sim800l

#include <SoftwareSerial.h>
/* Tutorial link: https://pijaeducation.com/arduino/gsm/send-receive-messages-using-sim800l-with-arduino/
   Create software serial pins: pin 2 as RX & 3 as TX
   Connect SIM800L module Rx to Pin 3 (Tx) of Arduino & Tx to Pin 2 (Rx) of Arduino
*/
SoftwareSerial mySerial(2, 3);

void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
  Serial.println("Initializing...");
  delay(1000);

  // Send attention command to check if all fine, it returns OK
  mySerial.println("AT");
  updateSerial();
  // Configuring module in TEXT mode
  mySerial.println("AT+CMGF=1");
  updateSerial();

  // Decides how newly arrived SMS messages should be handled
  mySerial.println("AT+CNMI=1,2,0,0,0");   
  updateSerial();
}

void loop() {
  updateSerial();
}

// For data transmission from Serial to Software Serial port & vice versa
void updateSerial() {
  delay(500);
  while (Serial.available()) {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  
  while (mySerial.available()) {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

ارسال پیام با استفاده از sim800l

#include <SoftwareSerial.h>
/* Tutorial link: https://pijaeducation.com/arduino/gsm/send-receive-messages-using-sim800l-with-arduino/
   Create software serial pins: pin 2 as RX & 3 as TX
   Connect SIM800L module Rx to Pin 3 (Tx) of Arduino & Tx to Pin 2 (Rx) of Arduino
*/
SoftwareSerial mySerial(2, 3);

void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
  Serial.println("Initializing...");
  delay(1000);

  // Send attention command to check if all fine, it returns OK
  mySerial.println("AT");
  updateSerial();

  // Configuring module in TEXT mode
  mySerial.println("AT+CMGF=1");
  updateSerial();

  // to send message use these 3 statements, upto write(26)
  // change ZZ with country code and xxxxxxxxxxx with phone number to sms
  mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\""); // 1)
  updateSerial();
  mySerial.print("https://Shoolinlabs.com/tutorial"); // 2) text content 
  updateSerial();
  mySerial.write(26); // 3)
}

void loop() {
  updateSerial();
}

// For data transmission from Serial to Software Serial port & vice versa
void updateSerial() {
  delay(500);
  while (Serial.available()) {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }

  while (mySerial.available()) {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

راه اندازی ماژول sim800l با ESP32

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

 راه اندازی ماژول sim800l با ESP32

کد ارتباط با ماژول SIM800L GSM/GPRS بسیار ساده و قابل درک است. کد از UART2 میکروکنترلر ESP32 برای ارتباط با ماژول SIM800 استفاده می کند و UART0 برای دیباگینگ استفاده می شود.

مشکلات راه اندازی sim800l

شاید برای شما هم پیش آمده باشد که از خود سوال کنید چرا SIM800L کار نمی کند؟ در این حالت به نظر می رسد منبع تغذیه شما قادر به تامین جریان کافی نیست. منبع تغذیه 5 ولت شما باید بتواند جریان 4 ولت @ 2 آمپر را تامین کند. از رگولاتورهایی مانند LM39302 یا LM2596 استفاده کنید. با این حال این یکی از مشکلات راه اندازی SIM800L است که بسیاری با آن مواجه می شوند؛ ممکن است هنگام راه اندازی ماژول سیم 800L با مشکلات دیگری نیز رو به رو شوید. به همین دلیل است که پیشنهاد می کنیم همواره دیتاشیت ماژول sim800l را با دقت مطالعه کنید تا به طور کامل با مشخصات این ماژول آشنا شوید.