SIM800L Ver.2 GSM GPRS Module Starting Tutorial

Author : Ila MulyandiNo comments

SIM800L Ver.2 adalah pengembangan dari versi sebelumnya yaitu SIM800L mini module (pcb merah).
Penggunaan Chip SIMCOM masih sama dengan versi sebelumya.Perbedaan yang mencolok adalah pada Breakout Board dan PIN Interface nya.


Salah satu fitur andalan dari SIM800L Ver.2 ini adalah perbaikan bugs dari versi sebelumnya yaitu mampu langsung bekerja pada tegangan VCC 5V jadi tidak perlu rangkaian Step down seperti pada breakout board versi sebelumnya yang hanya mendukung tegangan 3,7-4,2 V dan sering mengalami error akibat perubahan tegangan kerja.

Secara umum spesifikasi SIM800L Ver.2 adalah sbb :

Chip: SIM800L
Voltage Chip : 3.7-4.2V (datasheet = 3.4-4.4V)
Voltage Module : 5.0V (V limit = 4.8-5.2V)
Freq : QuadBand 850/900/1800/1900Mhz
Module size: 4.0cm x 2.8cm
Transmitting power
Class 4 (2W) at GSM 850 and EGSM 900
Class 1 (1W) at DCS 1800 and PCS 1900GPRS connectivity
GPRS multi-slot class 12 default
GPRS multi-slot class 1~12 (option)
Temperature range Normal operation: 40°C ~ +85°C


PIN INTERFACESIM800L V.2 hanya memiliki 7pin interface,berikut nama dan fungsi dari pin tersebut :

-5V      = pin Vcc / tegangan sumber
-GND  = pin GROUND / 0V
-VDD  = pin Vref /tegangan referensi Level Serial TXD RXD (default NC untuk level serial 5V)
-SIM_TXD = pin TX Serial (pengirim)
-SIM_RXD = pin RX Serial (penerima)
-GND  = pin Ground/0V untuk komunikasi Serial (terhubung dengan GND pada pin supply)
-RST   = pin RESET untuk memulai ulang / reboot module SIM800L (active LOW)
SIM800L V.2 memiliki 2 LED indikator yaitu RING LED dan Network LED. SIM800L V.2 tidak memiliki Power LED,indikator power menggunakan RING LED.

RING LED 
Menyala (HIGH) saat Power ON dan tidak ada panggilan masuk
Mati (LOW) saat ada panggilan masuk ke nomor (Serial RINGING!)
Berkedip saat saat tegangan DROP dan module akan auto reset

NET LED 
Fast Blinking (berkedip dengan cepat) saat mencari Jaringan/searching network mode
Slow Blinking (berkedip dengan lambat) saat sudah mendapatkan jaringan/Network Registered

SIM800L V.2 menghilankan beberapa IO pin yang sebelumnya terdapat pada breakout board V.1 seperti pin RING , MIC - + ,SPK - + dan pin DTR. Module Ver.2 ini sepertinya lebih cocok untuk module SMS gateway atau Smart control dengan SMS.

POWER CONSUMPTION 
SIM800L V.2 memiliki konsumsi arus yang cukup besar saat bekerja.Berikut data yang saya dapatkan dari tool USB doctor yang saya pasang pada power supply module SIM800L V.2 :

  Booting mode : 30-60mA
  Searching Network : 100-200mA 
  Standby mode : 5-10mA
  Call/SMS mode : 115-125mA

Karena konsumsi daya yang cukup besar mak penggunaan SIM800L V.2 sangat disarankan menggunakan power supply eksternal saat diaplikasikan bersama Arduino dengan beberapa Module lain (misal bersama LCD/sensor lainya).
Namun apabila hanya Stand alone Arduino+SIM800L V.2 saja masih bisa menggunakan supply dari pin 5V Arduino untuk supply tegangan ke module SIM800L V2.

TEST AT Command
Untuk test AT-Command SIM800L V.2 sama dengan versi sebelumnya,bahkan library dan konfigurasi pin yang dipakai juga sama, yang berbeda hanya VCC pada module SIM800L V2 disambungkan ke pin 5V pada arduino tanpa melalui step down atau ke power supply eksternal/adaptor 5V.

Untuk Koneksi Standar Wiring Module SIM800L dengan Arduino adalah sbb:

Sim800L V.2  <--> Arduino
VCC <--> 5V Arduino
GND <--> GND
RXD <--> Tx Serial D1 atau Tx SoftwareSerial
TXD <--> Rx Serial D0 atau Rx SoftwareSerial

Apabila menggunaka power supply eksernal untuk SIM800L V.2 maka harus common GND.Artinya GND pada charger adaptor eksternal harus disambungkan dengan GND pada arduino, sedangkan pin 5V nya tidak perlu.

Untuk Tutorial check AT Command dan Standar Codingnya silahkan kesini.
atau : http://www.belajarduino.com/2016/05/sim800l-gsmgprs-module-to-arduino.html 


AUTO-CHECK Module SIM800L V.2 via Adafruit_FONA library

Saya membuat sebuah program sederhana untuk melakukan pengecekan module SIM800L V.2 menggunakan library Adafruit_FONA dan LCD i2C 1602.

Bahan yg perlu di sediakan
- Module SIM800L V.2
- Module LCD1602 i2C
- Kabel dupont jumper male to female 10pcs


SIM 800L V.2 to Arduino
GND <---> PIN GND ARDUINO
RXD <---> PIN D2 ARDUINO
TXD <---> PIN D3 ARDUINO

SIM800L V.2 to Adaptor 5V/External Supply
5VIN <--> kabel (+) VCC adaptor /kabel merah
GND <--> kabel (-) GND adaptor /kabel hitam

i2C LCD 1602 to Arduino
VCC  <--> pin 5V Arduino
GND <--> Pin GND Arduino
SDA <--> Pin A4 Arduino
SCL <--> Pin A5 Arduino

Download library i2c disini
Download library Adafruit_FONA disini

Ekstract kemudian masukan kedua library diatas kedalam folder libraries pada folder installer software Arduino IDE (C:\Program Files\Arduino\libraries  atau  C:\Program Files (X86)\Arduino\libraries bagi pengguna Win64 bit)

Copy Sketch Coding berikut ini kemudian upload ke Arduino yg sudah tersambung ke SIM800L V2 dan i2C LCD.Setelah selesai upload buka Serial Monitor pada Arduino IDE pada boudrate 115200 dan perhatikan tampian LCD i2C nya.


  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
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include "Adafruit_FONA.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x3F, 16, 2);


#define FONA_RX 2
#define FONA_TX 3
#define FONA_RST 4

// this is a large buffer for replies
char replybuffer[255];
// We default to using software serial. If you want to use hardware serial
// (because softserial isnt supported) comment out the following three lines 
// and uncomment the HardwareSerial line
#include <SoftwareSerial.h>
SoftwareSerial fonaSS = SoftwareSerial(FONA_TX, FONA_RX);
SoftwareSerial *fonaSerial = &fonaSS;

// Hardware serial is also possible!
//  HardwareSerial *fonaSerial = &Serial1;

Adafruit_FONA fona = Adafruit_FONA(FONA_RST);

uint8_t readline(char *buff, uint8_t maxbuff, uint16_t timeout = 0);

void setup() {
  lcd.begin();
  lcd.backlight();
  
  while (!Serial);

  Serial.begin(115200);
  lcd.setCursor (0,0);
  lcd.print(F("SIM800L V2 test!"));
  lcd.setCursor (0,1);
  lcd.print(F("Initializing...."));
  
  // make it slow so its easy to read!
  fonaSerial->begin(4800);
  if (! fona.begin(*fonaSerial)) {
    lcd.setCursor (0,1);
    lcd.print(F("Couldn't find SIM800L"));
    while(1);
  }
  lcd.setCursor (0,1);
  lcd.print(F("SIM800L Detected"));
  delay (3000);

  
  // Print SIM card IMEI number.
  char imei[15] = {0}; // MUST use a 16 character buffer for IMEI!
  uint8_t imeiLen = fona.getIMEI(imei);
  if (imeiLen > 0) {
    lcd.clear();
  lcd.setCursor (0,0);
  lcd.print("SIM800L IMEI: "); 
  lcd.setCursor (0,1);
  lcd.print(imei);
  delay (3000);
  }

  // Print SIM card CCID number.
  char ccid[20] = {0}; // MUST use a 16 character buffer for IMEI!
  uint8_t ccidLen = fona.getSIMCCID(ccid);
  if (ccidLen > 0) {
    lcd.clear();
  lcd.setCursor (0,0);
  lcd.print("SIM card CCID: "); 
  lcd.setCursor (0,1);
  lcd.print(ccid);
  delay (3000);
  }
  
  // Print SIM card CCID number.
  uint8_t stat = fona.getNetworkStatus();
  lcd.setCursor (0,0);
  lcd.print("SIM Network Status: "); 
  if(stat==0){
  lcd.setCursor (0,1);
  lcd.print(F("Not Registered!!"));
  }
  if(stat==1){
  lcd.setCursor (0,1);
  lcd.print(F("Registered Ntwrk"));
  }
  if(stat==2){
  lcd.setCursor (0,2);
  lcd.print(F("Searching Ntwrk!"));
  }

 delay (2000);
// Print Battery Percent & Voltage
Serial.println (F("   ->Battery Percent & Voltage"));
 uint16_t *p = 0;
 fona.getBattPercent(p);
  lcd.clear();
  lcd.setCursor (0,0);
  lcd.print("SIM Battery Stat "); 
  lcd.setCursor (0,1);
  lcd.print(F("di SerialMonitor"));

  
  delay(3000);
  lcd.setCursor (0,0);
  lcd.print("Hello World.....");
  lcd.setCursor (0,1);
  lcd.print("SIM800L V2 Ready ");
  Serial.print (F("Finish"));
}

  
void loop() {
 
}



Posted On : Sunday, January 29, 2017Time : 12:06 PM
SHARE TO :
| | Template Created By : Rajendroid | CopyRigt By : ARDUINO | |