Arduino, Tutorial Mengirim data GPS dengan SMS SIM808

Hello Sahabat Anak Kendali. 

pada kesempatan kali ini saya akan menulis Tutorial tentang Arduino, Tutorial Mengirim data GPS dengan SMS SIM808.

dimana rencana kedepanya kita akan membuat GPS tracker, dengan menggunakan SIM808.
sim808 memiliki fitur yang cukup lengkap meskipun jaringanya belum sampai 4G LTE.

pada tutorial kali ini, kita akan mengakses fiur GPS dari Sim808 kemudian data Latitude dan Longitude dikirim ke hp melalui SMS.

keyword :
Cara Mengakses SIM 808
Membuat GPS Tracker
GPS dan SMS
Mengirim data GPS dengan SMS

SIM808 Arduino UNO
Sim808 Arduino Mega
SIm808 SoftwareSerial
artikel yang akan datang, kita akan mencoba mengirim data GPS nya menggunakan Internet.

baiklah sesuai judulunya Arduino, Tutorial Mengirim data GPS dengan SMS SIM808
langsung saja kita kita praktekan. disini saya memberikan 2 program yang menggunakan Arduino UNO, dan Arduino Mega 2560.
karena biasanya ada beberapa orang yang masih kebingungan saat memindahkan program dari Arduino Uno ke Arduino Mega.

Baca Juga :  Arduino, Cara Upload Program di Semua Tab Arduino

berikut adalah wiring untuk Arduino Uno.

TX GSM — 10 Arduino Uno
RX GSM — 11 Arduino UNO
GND        — GND Arduino Uno

dan berikut wiring untuk Arduino Mega 2560

Tx GSM — RX3 Arduino Mega
Rx GSM — TX3 Arduino Mega
GND       — GND Arduino Mega

adapun untuk suply teganganya, silahkan gunakan adaptor 5V 2A, jika mengguankan batre lippo silahkan tambahkan modul LM2596 untuk menurunkan teganganya,, Arus untuk Modul ini di sarankan lebih dari 2A.

untuk Program Arduino Uno + GSM_GPS_SMS silahkan DOWNLOAD


untuk Program Arduino Mega + GSM_GPS_SMS silahkan DOWNLOAD

Atau bisa langsung di copas di bawah ini :

Arduino Uno + GSM_GPS_SMS

#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
//Mobile phone number,need to change
#define PHONE_NUMBER "+6283862832235"
//The content of messages sent
#define PIN_TX    10
#define PIN_RX    11
SoftwareSerial mySerial(PIN_TX,PIN_RX);
DFRobot_SIM808 sim808(&mySerial);//Connect RX,TX,PWR,

char latitude[15];
char longitude[15];
char datamsg[50];
String data;
//DFRobot_SIM808 sim808(&Serial3);
void setup() {
  mySerial.begin(9600);
  Serial.begin(9600);
//  Serial3.begin(9600);
  pinMode(13, OUTPUT);
  //******** Initialize sim808 module *************
  while (!sim808.init()) {
    delay(1000);
    Serial.print("Sim808 init errorrn");
  }
  Serial.println("Sim808 init success");
  Serial.println("Start to send message ...");
  sim808.sendSMS(PHONE_NUMBER,"GPS SIAP KIRIM DATA");
}
void loop() {
  //nothing to do
  while (Serial.available() > 0) {
    delay(10);
    char c = Serial.read();
    data += c;
  }
  if (data.length() > 0) {
    Serial.println(data);
    if (data == "send") {
      sendDataGPS();
    }
    data = "";
  }

}
void getGPS () {
  while (!sim808.attachGPS()) {
    Serial.println("GPS PWR ERROR");
    delay(2000);
  }
  while (!sim808.getGPS()) {
  }
  float lat = sim808.GPSdata.lat;
  float lng = sim808.GPSdata.lon;
//  Serial.print("latitude :");
//  Serial.println(lat, DEC);
//  Serial.print("longitude :");
//  Serial.println(lng, DEC);
//  Serial.print("speed_kph :");
//  Serial.println(sim808.GPSdata.speed_kph);
//  Serial.print("heading :");
//  Serial.println(sim808.GPSdata.heading);
//  Serial.println();
  dtostrf(lat, 4, 6, latitude);
  dtostrf(lng, 4, 6, longitude);

}
void sendDataGPS() {
  getGPS();
   sprintf (datamsg, "Latitude :%s nLongitude :%s", latitude, longitude);
  Serial.println(datamsg);
 sim808.sendSMS(PHONE_NUMBER,datamsg);
}

Arduino Mega + GSM_GPS_SMS

#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
//Mobile phone number,need to change
#define PHONE_NUMBER "+6283862832235"
//The content of messages sent
//#define PIN_TX    10
//#define PIN_RX    11
//SoftwareSerial mySerial(PIN_TX,PIN_RX);
//DFRobot_SIM808 sim808(&mySerial);//Connect RX,TX,PWR,

char latitude[15];
char longitude[15];
char datamsg[50];
String data;
DFRobot_SIM808 sim808(&Serial3);
void setup() {
//  mySerial.begin(9600);
  Serial.begin(9600);
  Serial3.begin(9600);
  pinMode(13, OUTPUT);
  //******** Initialize sim808 module *************
  while (!sim808.init()) {
    delay(1000);
    Serial.print("Sim808 init errorrn");
  }
  Serial.println("Sim808 init success");
  Serial.println("Start to send message ...");
  sim808.sendSMS(PHONE_NUMBER,"GPS SIAP KIRIM DATA");
}
void loop() {
  //nothing to do
  while (Serial.available() > 0) {
    delay(10);
    char c = Serial.read();
    data += c;
  }
  if (data.length() > 0) {
    Serial.println(data);
    if (data == "send") {
      sendDataGPS();
    }
    data = "";
  }

}
void getGPS () {
  while (!sim808.attachGPS()) {
    Serial.println("GPS PWR ERROR");
    delay(2000);
  }
  while (!sim808.getGPS()) {
  }
  float lat = sim808.GPSdata.lat;
  float lng = sim808.GPSdata.lon;
//  Serial.print("latitude :");
//  Serial.println(lat, DEC);
//  Serial.print("longitude :");
//  Serial.println(lng, DEC);
//  Serial.print("speed_kph :");
//  Serial.println(sim808.GPSdata.speed_kph);
//  Serial.print("heading :");
//  Serial.println(sim808.GPSdata.heading);
//  Serial.println();
  dtostrf(lat, 4, 6, latitude);
  dtostrf(lng, 4, 6, longitude);

}
void sendDataGPS() {
  getGPS();
   sprintf (datamsg, "Latitude :%s nLongitude :%s", latitude, longitude);
  Serial.println(datamsg);
 sim808.sendSMS(PHONE_NUMBER,datamsg);
}

mungkin cukup sekian apa yang bisa saya bagikan kali ini, semoga bermafaat, jika ada yang ingin ditanyakan silahkan komentar di bawah, atau chat langsung melalui WA atau Mesenger, dengan cara klik icon di pojok kiri bawah.

Baca Juga :  ESP8266, Cara Mengirim Data Sensor Suhu ke Web Thingspeak