Panduan untuk Modul GPS NEO-6M Arduino

Panduan ini menunjukkan cara menggunakan modul GPS NEO-6M dengan Arduino untuk mendapatkan data GPS. GPS adalah singkatan dari Global Positioning System dan dapat digunakan untuk menentukan posisi, waktu, dan kecepatan jika Anda bepergian.

Anda akan belajar caranya:

  • Mengarungi modul GPS NEO-6M ke Arduino UNO
  • Dapatkan data GPS mentah
  • Pangkas data mentah untuk mendapatkan informasi GPS yang dipilih dan dapat dibaca
  • Dapatkan lokasi

Memperkenalkan Modul GPS NEO-6M

Modul GPS NEO-6M ditampilkan pada gambar di bawah ini. Itu datang dengan antena eksternal, dan tidak datang dengan pin header. Jadi, Anda harus mendapatkan dan menyolder beberapa.

  • Modul ini memiliki antena eksternal dan EEPROM built-in.
  • Antarmuka: RS232 TTL
  • Catu daya: 3V hingga 5V [19659004] Default baudrate: 9600 bps
  • Bekerja dengan kalimat NMEA standar

Modul GPS NEO-6M juga kompatibel dengan papan mikrokontroler lainnya. Untuk mempelajari cara menggunakan modul GPS NEO-6M dengan Raspberry Pi, Anda dapat membaca: Sistem Peringatan Email pada Perubahan Lokasi dengan Raspberry Pi dan Modul GPS .

Di mana untuk membeli?

Anda bisa mendapatkan modul GPS NEO-6M dengan harga antara $ 5 hingga $ 20. Sebaiknya periksa halaman modul GPS NEO-6M di Maker Advisor untuk membandingkan harga di berbagai toko dan temukan yang terbaik.

Pin Wiring

Modul GPS NEO-6M memiliki empat pin: VCC, RX, TX, dan GND. Modul ini berkomunikasi dengan Arduino melalui komunikasi serial menggunakan pin TX dan RX, sehingga pengabelan tidak bisa lebih sederhana:

Modul GPS NEO-6M Berkabel untuk Arduino UNO
VCC 5V [19659023] RX Pin TX didefinisikan dalam seri perangkat lunak
TX RX pin yang didefinisikan dalam seri perangkat lunak
GND GND

Mendapatkan Data Raw GPS

Untuk mendapatkan data GPS mentah Anda hanya perlu memulai komunikasi serial dengan modul GPS menggunakan Software Serial. Lanjutkan membaca untuk melihat cara melakukannya.

Bagian yang Dibutuhkan

Untuk menguji contoh ini, Anda memerlukan bagian-bagian berikut:

Anda dapat menggunakan tautan sebelumnya atau langsung menuju MakerAdvisor.com/tools untuk menemukan semua bagian untuk proyek Anda dengan harga terbaik!

Schematics

Hubungkan modul NEO-6M GPS ke Arduino Anda dengan mengikuti skematik di bawah ini.

  • Pin GND modul terhubung ke pin Arduino GND
  • Pin RX modul terhubung ke Arduino pin 3
  • Pin TX modul terhubung ke Arduino pin 4
  • Pin VCC modul adalah terhubung ke Arduino 5V pin

Kode

Salin kode berikut ke Arduino IDE Anda dan unggah ke papan Arduino Anda.

Sketsa ini mengasumsikan Anda menggunakan pin 4 dan 3 sebagai RX dan pin serial TX untuk menetapkan seri komunikasi dengan modul GPS. Jika Anda menggunakan pin lain Anda harus mengeditnya pada baris berikut:

 SoftwareSerial ss ( 4  3 ); 

Juga, jika modul Anda menggunakan yang berbeda baud rate standar dari 9600 bps, Anda harus memodifikasi kode pada baris berikut:

 ss.begin ( 9600 ); 

Sketsa ini mendengarkan port serial GPS, dan ketika data diterima dari modul, itu dikirim ke monitor serial.

 sementara (ss.available ()> 0) {
// dapatkan data byte dari GPS
byte gpsData = ss.read ();
Serial.write (gpsData);
} 

Buka Monitor Serial pada baud rate 9600.

Anda harus mendapatkan banyak informasi dalam bahasa standar GPS, NMEA. Setiap baris yang Anda dapatkan dalam monitor serial adalah kalimat NMEA.

NMEA adalah singkatan dari National Marine Electronics Association, dan di dunia GPS, ini adalah format data standar yang didukung oleh produsen GPS.

Memahami Kalimat NMEA [19659016] Kalimat NMEA dimulai dengan karakter $, dan setiap bidang data dipisahkan oleh koma.

  $ GPGGA 110617.00,41XX.XXXXX, N, 00831.54761, W, 1,05,2.68,129.0 , M, 50,1, M ,, * 42
 $ GPGSA A, 3,06,09,30,07,23 ,,,,,,,, 4,43,2,68,3,53 * 02
 $ GPGSV 3,1,11,02,48,298,24,03,05,101,24,05,17,292,20,06,71,227,30 * 7C
 $ GPGSV 3,2,11,07,47,138,33,09,64,044,28,17,01,199,,19,13,214, * 7C
 $ GPGSV 3,3,11,23,29,054,29,29,01,335,, 30,29,167,33 * 4E
 $ GPGLL 41XX.XXXXX, N, 00831.54761, W, 110617.00, A, A * 70
 $ GPRMC 110618.00, A, 41XX.XXXXX, N, 00831.54753, W, 0.078,, 030118 ,,, A * 6A
 $ GPVTG  ,, T ,, M, 0,043, N, 0,080, K, A * 2C 

Ada berbagai jenis kalimat NMEA. Jenis pesan ditunjukkan oleh karakter sebelum koma pertama.

GP setelah $ menunjukkan itu adalah posisi GPS. $ GPGGA adalah pesan dasar GPS NMEA, yang menyediakan lokasi 3D dan data akurasi. Dalam kalimat berikut:

  $ GPGGA 110617.00,41XX.XXXXX, N, 00831.54761, W, 1,05,2.68,129.0, M, 50.1, M ,, * 42 
  • 110617 – mewakili waktu di mana lokasi perbaikan diambil, 11:06:17 UTC
  • 41XX.XXXXX, N – lintang 41 derajat XX.XXXXX 'N
  • 00831.54761, W – Bujur 008 deg 31.54761 ′ W
  • 1 – kualitas perbaikan (0 = tidak valid; 1 = perbaikan GPS; 2 = perbaikan DGPS; 3 = PPS fix; 4 = Waktu Nyata Kinematik; 5 = Float RTK; 6 = perkiraan (dead reckoning); 7 = Mode masukan manual; 8 = Mode simulasi)
  • 05 – jumlah satelit yang dilacak
  • 2,68 – Pengenceran horizontal dari posisi
  • 129.0, M – Ketinggian, dalam meter di atas permukaan laut
  • 50.1, M – Tinggi geoid (rata-rata permukaan laut) di atas WGS84 ellipsoid
  • bidang kosong – waktu dalam detik sejak pemutakhiran DGPS terakhir
  • kosong lapangan – nomor ID stasiun DGPS
  • * 42 – data checksum, selalu dimulai dengan *

Kalimat NMEA lainnya memberikan informasi tambahan:

  • $ GPGSA – GPS DOP dan satelit aktif
  • $ GPGSV – Informasi satelit GPS terperinci
  • $ GPGLL – Lintang Geografis dan Bujur
  • $ GPRMC – GPS Penting pvt (posisi, kecepatan, waktu) data
  • $ GPVTG – Kecepatan dibuat bagus

Untuk mengetahui arti setiap bidang data dalam setiap kalimat ini, Anda dapat melihat data NMEA di sini .

Parsing NMEA Kalimat dengan TinyGPS ++ Library

Anda dapat bekerja dengan data mentah dari GPS, atau Anda dapat mengkonversi pesan NMEA ke dalam format yang mudah dibaca dan berguna, dengan menyimpan urutan karakter ke dalam variabel. Untuk melakukan itu, kami akan menggunakan perpustakaan TinyGPS ++ .

Pustaka ini mempermudah untuk mendapatkan informasi lokasi dalam format yang berguna dan mudah dimengerti. Anda dapat mengklik di sini untuk informasi lebih lanjut tentang Perpustakaan TinyGPS ++.

Memasang TinyGPS ++ Library

Ikuti langkah selanjutnya untuk menginstal pustaka TinyGPS ++ di Arduino IDE Anda:

  1. Klik di sini untuk mengunduh pustaka TinyGPSPlus. Anda harus memiliki folder .zip di folder Unduhan
  2. Unzip folder .zip dan Anda harus mendapatkan folder TinyGPSPlus-master
  3. Ganti nama folder Anda dari TinyGPSPlus-master menjadi TinyGPSPlus
  4. Pindahkan Folder TinyGPSPlus ke folder instalasi perpustakaan Arduino IDE Anda
  5. Akhirnya, buka kembali Arduino IDE

perpustakaan Anda menyediakan beberapa contoh tentang cara menggunakannya. Dalam Arduino IDE Anda, Anda hanya perlu pergi ke File > Contoh > TinyGPS ++ dan pilih dari contoh yang disediakan.

Catatan : contoh yang disediakan di perpustakaan mengasumsikan baud rate 4800 untuk modul GPS. Anda perlu mengubah itu menjadi 9600 jika Anda menggunakan modul GPS NEO-6M.

Mendapatkan Lokasi Menggunakan Modul GPS NEO-6M dan Perpustakaan TinyGPS ++

Anda bisa mendapatkan lokasi dalam format yang nyaman dan berguna dengan menggunakan pustaka TinyGPS ++. Di bawah ini, kami memberikan kode untuk mendapatkan lokasi dari GPS. Ini adalah versi sederhana dari salah satu contoh pustaka.

Anda mulai dengan mengimpor pustaka yang dibutuhkan: TinyGPSPlus dan SoftwareSerial:

 #include 
#include  

Kemudian, Anda menentukan pin RX dan TX perangkat lunak, serta baud rate GPS. Jika Anda menggunakan pin lain untuk seri perangkat lunak, Anda perlu mengubahnya di sini. Juga, jika modul GPS Anda menggunakan baud rate standar yang berbeda, Anda juga harus memodifikasi itu.

 const statis int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600; 

Kemudian, Anda membuat objek TinyGPS ++:

 TinyGPSPlus gps; 

Dan memulai koneksi serial pada pin yang telah Anda tetapkan sebelumnya

 SoftwareSerial ss (RXPin, TXPin) ; 

Dalam pengaturan (), Anda menginisialisasi komunikasi serial, baik untuk melihat pembacaan pada monitor serial dan untuk berkomunikasi dengan modul GPS.

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

Di dalam lingkaran adalah tempat Anda meminta informasi. Agar TinyGPS ++ berfungsi, Anda harus berulang kali mengalirkan karakter ke dalamnya dari modul GPS menggunakan metode enkode ().

 sementara (ss.available ()> 0) {
 gps.encode (ss.read ()); 

Kemudian, Anda dapat menanyakan objek gps untuk melihat apakah ada bidang data yang telah diperbarui:

 if (gps.location.isUpdated ()) {
Serial.print ("Latitude ="); Serial.print (gps.location.lat (), 6);
Serial.print ("Longitude ="); Serial.println (gps.location.lng (), 6);
} 

Mendapatkan garis lintang dan garis bujur sederhana telah menggunakan gps.location.lat () dan gps.location.lng () masing-masing.

Unggah kode ke Arduino Anda, dan Anda akan melihat lokasi yang ditampilkan di monitor serial. Setelah mengunggah kode, tunggu beberapa menit sementara modul menyesuaikan posisi untuk mendapatkan data yang lebih akurat.

Mendapatkan Lebih Banyak Informasi GPS Menggunakan TinyGPS ++ Library

Perpustakaan TinyGPS ++ memungkinkan Anda untuk mendapatkan cara informasi lebih dari sekedar lokasi, dan dengan cara yang sederhana. Selain lokasi, Anda bisa mendapatkan:

  • tanggal
  • waktu
  • kecepatan
  • saja
  • ketinggian
  • satelit
  • hdop

Kode di bawah ini mencontohkan bagaimana Anda bisa mendapatkan semua informasi tersebut dengan cara yang sederhana.

Catatan: perpustakaan TinyGPS ++ dikomentari dengan baik tentang cara menggunakan semua fungsinya.

Membungkus Facebook

Kami harap Anda telah menemukan panduan ini bermanfaat. Kami bermaksud untuk membuat data GPS logger dengan modul GPS NEO-6M dan modul kartu SD jadi tetap ikuti.

Jika Anda menyukai proyek ini, Anda mungkin juga menyukai:

Terima kasih telah membaca.


Leave a Reply

Your email address will not be published. Required fields are marked *