Sabtu, 18 Juni 2016

SIM900A Connect to Arduino (Getting Started)

 Getting Started SIM900A GSM GPRS Module

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.x



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 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.



Answer Call & Read 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 otomatis menjawab panggilan telefon yang masuk dan Mengirim SMS ke nomor Tujuan.

bersambung...

25 komentar:

  1. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  2. Klo mo liat status pin arduino high atau low pake sim900a gmn gan? ^_^

    BalasHapus
    Balasan
    1. apakah maksudnya Status PIN dikirim melalui SMS ke Hp kita??

      Hapus
    2. iya betul gan, codenya gmn gan?

      Hapus
  3. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  4. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  5. gan, dari modul gsm sim900a saya kenapa gk bisa, gk ada masuk sms ke hp saya ?

    BalasHapus
  6. bang, punya saya masih tidak berfungsi untuk sms

    BalasHapus
  7. gan ini harus pkek 2A tidak gan ? bisa di fotoin jalur kabel kabel nya ke arduinonya gan ? soalnya lampu sinyal sama status gak ada yang nyala gan

    BalasHapus
  8. gan tanya donk, cara buat program kirim sms dari hp ke arduino melalui gsm sim 900a pakai kode dan nanti klo kode benar maka arduino akan kirim sms balik secara otomatis,itu pake string kah gan ?makasih

    BalasHapus
  9. Gan. Mau nanya ?
    Kalau setelah diupload programnya di arduino.
    Apakah modulnya bisa ngirim pesan tanpa membuka ATT Command /serialmonitor ?

    BalasHapus
  10. gan saya mau tanya, bagaimana cara saya memasukkan intruksi agar sim dapat membalas intruksi saya?

    BalasHapus
  11. Gan kalo library yg SIM900A nya dicoba di modul A6 GSM GPRS bisa gak?

    BalasHapus
  12. Tumpang bertanya, boleh minta tolong untuk bagi code sim900a yang boleh control LED guna sms

    BalasHapus
  13. apakah bisa di bikin komunikasi gan seperti handphone gt

    BalasHapus
  14. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  15. gan knpa ya saya cek at balasan nya eorror,error nya di mana

    BalasHapus
  16. Gan klw codingnya ditambahin dengan modul gps neo 6m jadinya gimana gan ?
    mohon bantuannya gan

    BalasHapus
  17. gan bisa bantu koding cara mengirimkan sms ke banyak nomor sekaligus?

    BalasHapus
  18. kenapa gsm 900a tidak dapat signal .....di malaysia

    BalasHapus
  19. Gan kartu gsm nya pakai apa ya yg bagus? Saya pake telkomsel loop tidak bisa dapet sinyalml.

    BalasHapus
  20. gan kalo pake modul gsm sim900a yang baru yang portnya banyak,bisa buat 2 arduino gak? jadi 2 arduino di komunikasikan dengan 1 modul gsm

    BalasHapus
  21. Cara mengetahui sim900 ready atau dapat komunikasi gimana gan? Bisa d lihat dari kedipanny, ? Soalnya saya coba d kota bisa, pas d rmh d kmpung, gak aktif2 kartuny

    BalasHapus

Copyright © 2014 Belajar Arduino | Designed With By Blogger Templates | Distributed By Gooyaabi Templates
Scroll To Top