Translate

Mengakses GPS EM411 dengan Arduino

Mengakses GPS EM411 dengan Arduino


        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses GPS dengan seri EM41 dengan menggunakan Arduino Mega, alat ini sebenarnya hanya menampilkan data yang dikirimkan oleh GPS ke komputer saja tanpa ada suatu pengolahan seperti parsing data atau karakter, maka dari itu jika menginginkan data seperti latitude dan longitude bisa ambil saja data tersebut dengan menggunakan parsing data pada baris GPGGA atau GPRMC yang ada data long dan lat nya. perlu diperhatikan bahwa GPS memerlukan dua buah GND, maka dari itu hubungkan keduanya ke GND dan juga untuk menyambungkan GPS dengan Arduino Mega menggunakan pin 10 dan 11. untuk lebih jelasnya berikut adalah skema dan programnya.

Link Library
https://github.com/mikalhart/TinyGPSPlus/releases/tag/v0.94b




a. Arduino Mega





b. GPS EM411






c. Program Arduino IDE

#include <SoftwareSerial.h>
#include <string.h>
#include <ctype.h>
#include <Wire.h>

char comandoGPR[7] = "$GPRMC";
int rxPin = 10; // RX PIN
int txPin = 11; // TX TX

SoftwareSerial ss = SoftwareSerial(rxPin, txPin);

void setup() {
  Serial.begin(9600);
  ss.begin(4800);
}

void loop() {
  if (ss.available()){
    char c = ss.read();
    Serial.print(c);
   

  }
}





d. Program Arduino GPS Tampil LCD

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include "Wire.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

static const int RXPin = 10, TXPin = 11;
static const uint32_t GPSBaud = 4800;

// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

void setup()
{
  lcd.begin(16, 2);
  lcd.clear();
  lcd.noCursor();
  Serial.begin(9600);
  ss.begin(GPSBaud);

}

void loop()
{

  while (ss.available() > 0)
    if (gps.encode(ss.read()))
      displayInfo();

  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
 //   Serial.println(F("No GPS detected: check wiring."));
    while(true);
  }
}

void displayInfo()
{
//  Serial.print(F("Location: "));
  if (gps.location.isValid())
  {
//    Serial.print(gps.location.lat(), 6);
//    Serial.print(F(","));
//    Serial.print(gps.location.lng(), 6);
  }
  else
  {
//    Serial.print(F("INVALID"));
  }

  lcd.setCursor(0, 0);
  lcd.print("LAT= ");
  lcd.print(gps.location.lat(), 6);
  lcd.setCursor(0, 1);
  lcd.print("LNG= ");
  lcd.print(gps.location.lng(), 6);
 
/*
  Serial.print(F("  Date/Time: "));
  if (gps.date.isValid())
  {
    Serial.print(gps.date.month());
    Serial.print(F("/"));
    Serial.print(gps.date.day());
    Serial.print(F("/"));
    Serial.print(gps.date.year());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F(" "));
  if (gps.time.isValid())
  {
    if (gps.time.hour() < 10) Serial.print(F("0"));
    Serial.print(gps.time.hour());
    Serial.print(F(":"));
    if (gps.time.minute() < 10) Serial.print(F("0"));
    Serial.print(gps.time.minute());
    Serial.print(F(":"));
    if (gps.time.second() < 10) Serial.print(F("0"));
    Serial.print(gps.time.second());
    Serial.print(F("."));
    if (gps.time.centisecond() < 10) Serial.print(F("0"));
    Serial.print(gps.time.centisecond());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

*/
//  Serial.println();
 
 
}





e. Gambar Hasilnya






f. VIDEO HASILNYA














No comments:

Post a Comment