پرش به محتویات

ماژول ®ProMake GSM SIM800C

توصیف

®ProMake GSM SIM800C به افزودن ارتباط بی سیم به پروژه تان با استفاده از رابط TTL UART کمک می کند. ماژول با هسته چهار باند GSM/GPRS-SIM800C ساخته شده است که روی فرکانس‌های 850/900/1800/1900 مگاهرتز کار می‌کند.

کاربردها

طیف گسترده ای از پروتکل های ارتباطی و گزینه های اتصال، در اندازه فشرده بصورت ماژول بسته بندی شده است، که توسط رابط دستوری ساده AT از طریق باس UART کنترل می شود، این ماژول را به یک راهکار کامل برای طیف گسترده ای از برنامه های M2M تبدیل نموده است، مانند:

  • ردیابی وسایل نقلیه(Vehicle tracking)
  • ردیابی دارایی و تجهیزات(Asset Tracking)
  • مدیریت ناوگان نقلیه (Fleet Management)
  • خوانش کنتور خودکار (Smart Metering)
  • کارت خوان های سیار و دستگاه های خود پرداز(ATM)
  • نظارت و امنیت(Safety)
  • شهرهای هوشمند
  • مودم ها و گیت وی های خانگی و صنعتی
  • سامانه های اتوماسیون صنعتی
  • سامانه های سلامت فردی(Health Care) و خانه هوشمند
  • اتوماسیون و کنترل نظارت از راه دور (Remote Maintenance and Control)
  • کشاورزی و آبیاری هوشمند
  • پایش محیطی(Environmental Monitoring)

و کاربرد های مشابه، که به اتصال شبکه سلولی(GSM) متکی هستند.

قابلیتها

  • مدل: SIM800C
  • ولتاژ ورودی: 5Vdc
  • پشتیبانی از پیامک، GPRS, DTMF, HTTP, FTP, MMS, Email, ...
  • رابط UART، برای اتصال MCU میزبان
  • LED برای نشان دادن وضعیت عملکرد ماژول
  • کنترل شونده با فرمامین AT(3GPP TS 27.007, 27.005 و SIMCOM فرمامین افزوده AT)
  • کانکتور SIM کارت روی برد
  • دکمه اختصاصی روی برد برای PWRKEY
  • قابل استفاده در برد آموزشی (Breadboard)

نکات مهم

برای شروع کار با این ماژول به یک آنتن GSM مناسب نیاز دارید. احتمالا به یک تبدیل SMA به uFL نیز نیاز داشته باشید تا بتوانید آنتن را به کانکتور uFL روی ماژول متصل کنید.

توجه: از آنجایی که GSM هنگام ارسال به صورت لحظه ای جریان کشی زیادی دارد هر چند که جریان متوسط آن بسیار کم است، اما جریان لحظه ای می تواند به بیش از 1.5 آمپر برسد. بنابراین استفاده از منبع تغذیه خارجی هنگام استفاده از ماژول GSM الزامی است. پورت USB (متصل به PC)فقط می تواند 5V@500mA را ارائه دهد، که نمی تواند خروجی منبع تغذیه آنی را تامین کند. لذا به منبع تغذیه خارجی نیازمند خواهید بود. برای اینکار می توانید از شارژر موبایل و کابل Type-C استفاده کرده و آن را به کیت یا شیلد خود متصل نمایید.

منابع

نقشه پین ماژول

نرم افزار

توسعه با آردینیو

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

البته می توانید این ماژول را برروی برد آموزشی (breadboard) نیز قرار دهید و اتصال هر دو تغذیه 3.3 ولت و 5 ولت و ارتباط سریال UART ماژول را برد آردوینو را برقرار نمایید.

اطمینان حاصل کنید که کیت توسعه خود را به منبع تغذیه مناسبی که بتواند جریان 2 آمپری را در لحظه TX به ماژول ارائه دهد، متصل نموده اید. برای این کار می توانید به راحتی یک شارژر معمولی موبایل را به پورت USB Type-C روی کیت یا شیلد خود متصل نمایید.

برای شروع کدنویسی باید کتابخانه های زیر را در Arduino® IDE خود نصب کنید:

  • "NeoSWSerial" (توسط SlashDevin)
ارسال پیامک

برای ارسال پیامک شماره تلفن مقصد را در کد زیر اصلاح نمایید و آن را برروی آردوینو بارگذاری کنید. سپس "Serial Monitor" را برای مشاهده چگونگی پیشرفت کار باز کنید:

#include <NeoSWSerial.h>

#define GSM_TX_PIN 4
#define GSM_RX_PIN 7
#define GSM_PWR_PIN 9

//Create software serial object
NeoSWSerial serialGSM(GSM_TX_PIN,GSM_RX_PIN);

void setup() {
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  //Begin serial communication with Arduino and GSM Module
  serialGSM.begin(9600);

  Serial.println("Powering Up ...");
  pinMode(GSM_PWR_PIN,OUTPUT);
  //GSM POWER ON
  digitalWrite(GSM_PWR_PIN,LOW);
  delay(1000);
  digitalWrite(GSM_PWR_PIN,HIGH);

  Serial.println("Initializing...");
  delay(3000);
  gsm_send_serial("AT"); //Once the handshake test is successful, it will back to OK
  delay(300);

  gsm_read_serial();
  delay(1000);
  gsm_read_serial();
  delay(1000);
  gsm_read_serial();
  delay(1000);
  gsm_read_serial();
  delay(1000);
  gsm_read_serial();
  delay(1000);

  gsm_send_serial("ATE1");
  delay(300);

  Serial.println("Sending SMS...");         //Show this message on serial monitor
  gsm_send_serial("AT+CMGF=1");             //Set the module to SMS mode
  delay(300);

  gsm_send_serial("AT+CSMP=17,167,2,17");  //Set SMS Text Mode Parameters
  delay(300);

  gsm_send_serial("AT+CSCS=\"GSM\"");      //Select TE Character Set
  delay(300);

  serialGSM.println("AT+CMGS=\"+981234567890\"");  //Your phone number don't forget to include your country code, example +212123456789"
  delay(300);
  serialGSM.print("GSM modem is working");       //This is the text to send to the phone number, don't make it too long or you have to modify the SoftwareSerial buffer
  serialGSM.print((char)0x1A);                   // (required according to the datasheet)
}

void loop() {
  // put your main code here, to run repeatedly:
  gsm_read_serial();
  delay(500);
}

void gsm_read_serial()
{
  while(serialGSM.available()) 
    Serial.write(serialGSM.read());
}

void gsm_send_serial(String command) {
  Serial.println("Send ->: " + command);
  serialGSM.println(command);
  long wtimer = millis();
  while (wtimer + 3000 > millis()) {
    while (serialGSM.available()) {
      Serial.write(serialGSM.read());
    }
  }
  Serial.println();
}

در کد بالا ابتدا سیگنال PWRKEY به ماژول ارسال می شود تا روشن شود (، دقت کنید اگر ماژول قبلا روشن بوده باشد این عملیات موجب خاموش شدن آن می شود و شاید نیاز باشد برنامه را RESET نمایید تا ماژول مجدد روشن شود. در چنین شرایطی در "Serial Monitor" پیام NORMAL POWER DOWN نمایش داده می شود).

بعد از روشن شدن ماژول LED که با نام NET برروی آن قرار دارد شروع به چشمک زدن سریع می کند و با Register شدن موفق در شبکه سرعت چشمک زدن آن کند می شود.

چشمک زدن هر ثانیه یک بار: ماژول فعال شده اما هنوز در شبکه تلفن همراه Register نشده است.

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

در دستورات بعدی تنظیمات SMS انجام می شود و در نهایت عملیات ارسال انجام می پذیرد.

جهت آشنایی بیشتر با روش های کد کردن پیامک https://en.wikipedia.org/wiki/Data_Coding_Scheme را مطالعه نمایید.

توسعه با رزبری