Tutorial membaca data lokasi dari GPS BN-220 menggunakan Arduino Uno tanpa library tambahan. Termasuk wiring, parsing NMEA, dan konversi ke format DMS.
Sensor GPS BN-220 adalah modul navigasi berbasis UBlox yang mendukung sistem GNSS global seperti GPS, GLONASS, dan Galileo. Modul ini sangat populer karena ukurannya kecil, konsumsi daya rendah, dan cukup akurat. Data lokasi yang dikirim menggunakan format NMEA, seperti $GNGGA
, dapat dibaca langsung tanpa library dengan Arduino Uno.
Untuk memahami lebih dalam pengaturan sensor GPS BN-220, kamu dapat merujuk ke dokumentasi aslinya:
👉 Datasheet BN-220
Dan untuk konfigurasi lanjutan via software u-center dari u-blox, cek di sini:
👉 Setting GPS dengan u-center
Alat dan Bahan
Komponen | Jumlah | Keterangan |
---|---|---|
Arduino Uno | 1 | Mikrokontroler utama |
GPS BN-220 | 1 | Modul GPS GNSS ublox |
Kabel jumper | 4 | Untuk koneksi UART dan daya |
Wiring Diagram GPS BN-220

- VCC (Merah) → 5V Arduino
- GND (Hitam) → GND Arduino
- TX (Hijau) → Pin 10 Arduino
- RX (Kuning) → Pin 11 Arduino
Modul BN-220 menggunakan antarmuka UART. Karena Arduino Uno hanya punya 1 port Serial, kita bisa pakai
SoftwareSerial
(untuk Uno) atauSerial1/2
(untuk ESP32).
Kode Program GPS BN-220 (Tanpa Library)
#include <Arduino.h>
#define RXD2 2 // Pin RX (menerima dari TX GPS)
#define TXD2 3 // Pin TX (tidak digunakan)
// Buffer dan variabel parsing
String data_baris = "";
String latitude, longitude;
char latDirection, lonDirection;
// Konversi koordinat mentah ke format DMS
String convertToDMS(String rawCoordinate, char direction) {
int degrees;
float minutes;
if (rawCoordinate.length() == 9 || rawCoordinate.length() == 10) {
degrees = rawCoordinate.substring(0, 2).toInt();
minutes = rawCoordinate.substring(2).toFloat();
} else if (rawCoordinate.length() == 11 || rawCoordinate.length() == 12) {
degrees = rawCoordinate.substring(0, 3).toInt();
minutes = rawCoordinate.substring(3).toFloat();
} else {
return "Invalid coordinate";
}
int wholeMinutes = (int)minutes;
float seconds = (minutes - wholeMinutes) * 60.0;
return String(degrees) + "°" + String(wholeMinutes) + "'" + String(seconds, 3) + "\"" + direction;
}
// Parsing $GNGGA
void parseGGA(String nmea, String &lat, char &latDir, String &lon, char &lonDir) {
int idx = 0, lastIdx = -1;
for (int i = 0; i < 7; i++) {
lastIdx = idx;
idx = nmea.indexOf(',', lastIdx + 1);
if (i == 2) lat = nmea.substring(lastIdx + 1, idx);
if (i == 3) latDir = nmea.charAt(lastIdx + 1);
if (i == 4) lon = nmea.substring(lastIdx + 1, idx);
if (i == 5) lonDir = nmea.charAt(lastIdx + 1);
}
}
// Fungsi utama
void cek_gps() {
if (Serial1.available()) {
char c = Serial1.read();
data_baris += c;
if (c == '\n') {
if (data_baris.indexOf("GGA") != -1) {
Serial.println(data_baris);
parseGGA(data_baris, latitude, latDirection, longitude, lonDirection);
String latDMS = convertToDMS(latitude, latDirection);
String lonDMS = convertToDMS(longitude, lonDirection);
Serial.println("Latitude (DMS): " + latDMS);
Serial.println("Longitude (DMS): " + lonDMS);
}
data_baris = "";
}
}
}
void setup() {
Serial.begin(115200);
Serial1.begin(57600, SERIAL_8N1, RXD2, TXD2);
Serial.println("GPS BN-220 Tracker Siap!");
}
void loop() {
cek_gps();
}
Penjelasan Program
- Data GPS dikirim dalam format NMEA, contohnya
$GNGGA
. - Kita ambil baris yang mengandung GGA dan mem-parsing kolom latitude dan longitude.
- Fungsi
convertToDMS()
mengubah format mentah seperti0137.00375
menjadi format derajat-menit-detik (DMS):1°37'0.225"N
. - Program tidak menggunakan library tambahan, cocok untuk eksplorasi lebih dalam.
Referensi parsing dan struktur format NMEA bisa dilihat di:
👉 NMEA Sentences Format (NMEA.org)
Langkah Pengujian
- Hubungkan GPS ke Arduino sesuai wiring.
- Upload kode ke Arduino Uno.
- Buka Serial Monitor dengan baudrate 115200.
- Tunggu sinyal satelit (butuh waktu hingga 30 detik – 2 menit tergantung lokasi).
- Setelah sinyal diterima, akan muncul data lokasi lengkap dalam format DMS.
Kesimpulan
Sensor GPS BN-220 sangat andal untuk proyek pelacakan lokasi dan robotik. Bahkan tanpa library pun, kita bisa langsung membaca data mentah GPS dan mengubahnya menjadi lokasi akurat.
Tutorial ini cocok sebagai dasar untuk proyek pelacak kendaraan, logger GPS, atau integrasi dengan peta online dan IoT.
Diskusi lebih lanjut kontak di bawah :

Media sosial lainnya :
Baca juga :