Cara mengoneksikan modul sim900 dengan arduino saklar sms

Author : Ila MulyandiNo comments

SIM900A adalah salah satu produk GSM/GPRS Serial Modem dari SIMCOM yang dapat kita gunakan
bersama microcontroller Arduino baik untuk fitur SMS,Telefon ataupun data GPRS.Berikut Spesifikasi
singkat Module Chip SIM900A :
Fitur:
-Quad-Band 850 / 900/ 1800 / 1900 MHz - Bisa digunakan pada jaringan GSM diberbagai negara.
-GPRS multi-slot class 10/8
-GPRS mobile station class B
-Compliant to GSM phase 2/2+
-Class 4 (2 W (AT) 850 / 900 MHz)
-Class 1 (1 W (AT) 1800 / 1900MHz)
-Perintah menggunakan AT Command - Standard Commands: GSM 07.07 & 07.05 | Enhanced Commands: SIMCOM AT Commands.
-Layanan Pesan Singkat (SMS)
- Embedded TCP/UDP stack - Dapat Upload data ke web server
-Support RTC
-Pemilihan Port Serial (3.3V dan 5V Level)
-Terdapat Jack speaker dan headphone (type breakout board tertentu)
-Konsumsi daya rendah - 1.5mA(sleep mode)
-Bekerja pada temperatur - -40C to +85 C

 Datasheet Module SIM900A silahkan lihat disini

Wiring Connection Module SIM900A to Arduino

Gambar berikut adalah pinout untuk SIM900A dengan Breakout Board Ver.3.8.x/V.4.

Module SIM900A Breakout Board V.3.x/V.4.x seperti gambar di ats mempunyai 3 jenis Out Data Serial
yaitu :
RXD dan TXD level 5V (untuk microcontroller Serial Level 5V misal Arduino Uno,Mega,dll.)
RXD dan TXD level 3.3V (untuk microcontroller Serial level 3.3V misal Arduino Promini 3.3v,ESP8266,dll.)
RXD dan TXD RS232/DB9 (untuk komunikasi serial RS232)
catatan : Untuk menggunakan out serial RS232 maka pin RXD3.3V dan pin RXD 5v harus diJumper.begitu juga untuk pin TXD 3.3V dan pin RXD 5V harus dijumper.

Wiring Connection Module SIM900A dengan Arduino
SIM900A     <-->     Arduino Uno
GND   <--->   GND
VCC   <--->   5V
TXD 5V   <--->   RXD (pin D0 atau Rx Software Serial)
RXD 5V   <--->   TXD (pin D1 atau Tx Software Serial)


Test Connection Module SIM900A to Arduino
Berikut langkah test Standar AT-Command Module SIM900A melalui Software Serial Arduino IDE
Sambungkan Module SIM900A dan Arduino (UNO) dengan Wiring sebagai berikut :

SIM900A     <-->     Arduino Uno
GND   <--->   GND
VCC   <--->   5V
TXD 5V   <--->   D2 (digital PIN 2)
RXD 5V   <--->   D3 (digital PIN 3)

Kemudian Upload Sketch berikut ke dalam Arduino dan Buka Serial Monitor Arduino IDTes koneksi ketik "AT" pada serial monitor dan Enter.Apabila ada balasan "OK" berarti koneksi sudah tersambung dan dapat dilanjutkan dengan ATCommand lainya.
Apabila tidak ada balasan OK,periksa kembali sambungan pin TX RX dan Pastikan lampu power (ada di dekat slot SIM) Module SIM900A menyala dan lampu indikator Signal (ada di dekat antena) berkedip lambat konstan.


Test Kirim dan Terima SMS menggunakan Software Serial
Berikut langkah test kirim dan terima pesan SMS Module SIM900A menggunakan Software serial
tanpa Library.Sambungkan SIM900A dan Arduino dengan wiring connection sbb.:

SIM900A     <-->     Arduino Uno
GND   <--->   GND
VCC   <--->   5V
TXD 5V   <--->   D2 (digital PIN 2)
RXD 5V   <--->   D3 (digital PIN 3)

Kemudian Upload Sketch berikut ke dalam Arduino dan Buka Serial Monitor Arduino IDE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <SoftwareSerial.h>
SoftwareSerial SIM900A(2,3); // RX | TX
// Connect the SIM900A TX to Arduino pin 2 RX. 
// Connect the SIM900A RX to Arduino pin 3 TX. 
char c = ' ';
void setup() 
{
    // start th serial communication with the host computer
    Serial.begin(9600);
    while(!Serial);
    Serial.println("Arduino with SIM900A is ready");
 
    // start communication with the SIM900A in 9600
    SIM900A.begin(9600);  
    Serial.println("SIM900A started at 9600");
    delay(1000);
    Serial.println("Setup Complete! SIM900A is Ready!");
}
 
void loop()
{
 
     // Keep reading from SIM800 and send to Arduino Serial Monitor
    if (SIM900A.available())
    { c = SIM900A.read();
      Serial.write(c);}
 
    // Keep reading from Arduino Serial Monitor and send to SIM900A
    if (Serial.available())
    { c = Serial.read();
      SIM900A.write(c);  
       }

}

Tes koneksi ketik "AT" pada serial monitor dan Enter.Apabila ada balasan "OK" berarti koneksi sudah tersambung dan dapat dilanjutkan dengan ATCommand lainya.
Apabila tidak ada balasan OK,periksa kembali sambungan pin TX RX dan Pastikan lampu power (ada di dekat slot SIM) Module SIM900A menyala dan lampu indikator Signal (ada di dekat antena) berkedip lambat konstan.


Test Kirim dan Terima SMS menggunakan Software Serial
Berikut langkah test kirim dan terima pesan SMS Module SIM900A menggunakan Software serial
tanpa Library.Sambungkan SIM900A dan Arduino dengan wiring connection sbb.:

SIM900A     <-->     Arduino Uno
GND   <--->   GND
VCC   <--->   5V
TXD 5V   <--->   D2 (digital PIN 2)
RXD 5V   <--->   D3 (digital PIN 3)

Kemudian Upload Sketch berikut ke dalam Arduino dan Buka Serial Monitor Arduino IDE


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <SoftwareSerial.h>

SoftwareSerial SIM900A(2,3);

void setup()
{
  SIM900A.begin(9600);   // Setting the baud rate of GSM Module  
  Serial.begin(9600);    // Setting the baud rate of Serial Monitor (Arduino)
  Serial.println ("SIM900A Ready");
  delay(100);
  Serial.println (" Ketik 's' untuk Mengirim SMS dan 'r' untuk Membaca SMS masuk");
}


void loop()
{
  if (Serial.available()>0)
   switch(Serial.read())
  {
    case 's':
      SendMessage();
      break;
    case 'r':
      RecieveMessage();
      break;
  }

 if (SIM900A.available()>0)
   Serial.write(SIM900A.read());
}


 void SendMessage()
{
  Serial.println ("SIM900A Mengirim SMS");
  SIM900A.println("AT+CMGF=1");    //Sets the GSM Module in Text Mode
  delay(1000);  // Delay of 1000 milli seconds or 1 second
  Serial.println ("Set SMS Number");
  SIM900A.println("AT+CMGS=\"+6289666699910\"\r"); // Replace with your mobile number
  delay(1000);
  Serial.println ("Set SMS Content");
  SIM900A.println("Hello, I am SIM900A GSM Module");// The SMS text you want to send
  delay(100);
  Serial.println ("Finish");
  SIM900A.println((char)26);// ASCII code of CTRL+Z
  delay(1000);
  Serial.println (" ->SMS Selesai dikirim");
}


 void RecieveMessage()
{
  Serial.println ("SIM900A Membaca SMS");
  delay (1000);
  SIM900A.println("AT+CNMI=2,2,0,0,0"); // AT Command to receive a live SMS
  delay(1000);
  Serial.write (" ->Unread SMS Selesai dibaca");
 }
 


Setelah sketch program di atas selesai di Upload ke Arduino,buka Serial Monitor pada Arduino ide pada Baudrate 9600 - Both NL & CR.

Untuk Mengirim SMS ketik huruf s pada serial monitor kemudian Enter
Tampilan SMS yang masuk ke Nomor tujuan :
Untuk Mengirim SMS ketik huruf r pada serial monitor kemudian Enter
Menngunakan Library GSM/GPRS pada Module SIM900A
Ada banyak jenis library arduino yang bisa digunakan untuk Operatioanal module SIM900A
Berikut saya paparkan salah satunya yang dapat kita pakai pada Module SIM900A.

Download library GSM-GPRS-GPS Shield disini

Masukan folder GSM library yang di download dari link diatas ke dalam folder Libraries yang ada pada c: / Program Files / Arduino / Libraries ->(win 32bit)
c: / Program Files (X86) / Arduino / Libraries ->(win 64bit)

Testing Program Test ATCommand melalui Library 
Buka Example Sketch pada folder Example Library di atas dan pilih sketch  
GSM_GPRSLibrary_AT 

atau copy paste sketch program berikut ke dalam Arduino IDE kemudian Upload ke Arduino


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "SIM900.h"
#include <SoftwareSerial.h>

int numdata;
char inSerial[40];
int i=0;


void setup()
{
     //Serial connection.
     Serial.begin(9600);
     Serial.println("GSM Shield testing.");
     //Start configuration of shield with baudrate.
     //For http uses is raccomanded to use 4800 or slower.
     if (gsm.begin(9600))
          Serial.println("\nstatus=READY");
     else Serial.println("\nstatus=IDLE");
};

void loop()
{
     //Read for new byte on serial hardware,
     //and write them on NewSoftSerial.
     serialhwread();
     //Read for new byte on NewSoftSerial.
     serialswread();
};

void serialhwread()
{
     i=0;
     if (Serial.available() > 0) {
          while (Serial.available() > 0) {
               inSerial[i]=(Serial.read());
               delay(10);
               i++;
          }

          inSerial[i]='\0';
          if(!strcmp(inSerial,"/END")) {
               Serial.println("_");
               inSerial[0]=0x1a;
               inSerial[1]='\0';
               gsm.SimpleWriteln(inSerial);
          }
          //Send a saved AT command using serial port.
          if(!strcmp(inSerial,"TEST")) {
               Serial.println("SIGNAL QUALITY");
               gsm.SimpleWriteln("AT+CSQ");
          } else {
               Serial.println(inSerial);
               gsm.SimpleWriteln(inSerial);
          }
          inSerial[0]='\0';
     }
}

void serialswread()
{
     gsm.SimpleRead();
}

 Buka Serial Monitor pada Arduino IDE dan Lihat Hasil Test ATCommand Module SIM900A anda

Syntax Library GSM Module SIM900A
Berikut Syntax Standar Command yang sering digunakan menggunakan Library GSM-GPRS-GPS Shield yang kita terapkan pada Module SIM900A :

 GSM LIBRARY ('SIM900.h')

gsm.readCellData(int &mcc, int &mnc, long &lac, long &cellid)gsm.readSMS(char* msg, int msglength, char* number, int nlength)gsm.readCall(char* number, int nlength)gsm.call(char* number, unsigned int milliseconds)gsm.setPIN(char *pin)gsm.changeNSIPmode(char mode)
gsm.getIMEI(char *imei)


SMS LIBRARY ('sms.h')sms.SendSMS(char *number_str, char *message_str) 
sms.SendSMS(byte sim_phonebook_position, char *message_str) 
sms.GetSMS(byte position, char *phone_number,byte max_phone_len, char *SMS_text, byte max_SMS_len)


Call Number & Send SMS SIM900A with GSM-GPRS Library
Download library GSM-GPRS-GPS Shield disini

SIM900A     <-->     Arduino Uno 
GND   <--->   GND
VCC   <--->   5V
TXD 5V   <--->   D2 (digital PIN 2)
RXD 5V   <--->   D3 (digital PIN 3)

Beikut adalah Contoh Sketch program untuk melakukan panggilan telefon ke nomor tujuan dan Mengirim SMS ke nomor Tujuan.

Copy paste Coding berikut ke dalam Arduino IDE.Ubah Nomor Hp di dalam sketch sesuai nomor Hp anda dan Upload.



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//***Create by Dani
//**for www.arjunoproject.blogspot.co.id

#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"

SMSGSM sms;

//variable di bawah digunakan saat Read SMS
char position;
char phone_num[20]; // array for the phone number string
char sms_text[100]; // array for the SMS text string


void setup() {
  // put your setup code here, to run once:
 //Serial connection.
     Serial.begin(9600);
     Serial.println("GSM Shield testing.");
     //Start configuration of shield with baudrate.
     //For http uses is raccomanded to use 4800 or slower.
     if (gsm.begin(9600))
          Serial.println("\nstatus=READY");
     else Serial.println("\nstatus=IDLE");

gsm.call("+6289666699910",10000); //Set Number & Dial Duration
delay (3000);
sms.SendSMS("+6289666699910","SMS dikirim melalui Library GSM SIM900");

}

void loop() {
  // put your main code here, to run repeatedly:

}

Setelah selesai Upload Buka Serial Monitor.Pastikan Hp anda mendapat Panggilan oleh SIM900A dan akan diputus setelah beberapa saat kemudian dilanjutkan pengiriman SMS ke nomor Hp anda.


Posted On : Friday, January 27, 2017Time : 5:06 PM
SHARE TO :
| | Template Created By : Rajendroid | CopyRigt By : ARDUINO | |