使用Arduino開發板連接NEO-6M GPS模塊 的方法

本文主要介紹如何使用Arduino開發板連接NEO-6M GPS模塊,然后獲取GPS數據。 GPS全稱全球定位系統,當你旅行時,它可以用來確定位置、時間和速度。


   NEO-6M GPS模塊是什么?GPS模塊定位原理

NEO-6M GPS模塊如下圖所示。它帶有一個外部天線,并沒有附帶插頭引腳。所以,你需要自備以及焊接。

●    該模塊帶有一個外部天線,并且內置EEPROM。


●    接口:RS232 TTL


●    電源:3V至5V


●    默認波特率:9600 bps


●    支持標準的NMEA


NEO-6M GPS模塊兼容其他的微控制器電路板。要了解如何在Raspberry Pi上使用NEO-6M GPS模塊,您可以閱讀以下鏈接:使用Raspberry Pi和GPS模塊的位置變化的電子郵件報警系統。



引腳接線


NEO-6M GPS模塊有四個引腳:VCC、RX、TX和GND。該模塊使用TX和RX引腳通過串行通信與Arduino開發板進行通信,所以接線特別簡單:


NEO-6M GPS模塊


Arduino UNO連線


VCC


5V


RX


軟件串行通信中定義的TX引腳


TX


軟件串行通信中定義的RX引腳


GND


GND




獲取GPS原始數據


要獲取原始的GPS數據,只需使用軟件串口啟動與GPS模塊的串行通信。繼續閱讀,看看如何做到這一點。


所需材料


為了測試這個例子,你需要以下幾個材料:


●    Arduino入門套件


●    NEO-6M GPS模塊


●    跳線



GPS模塊定位原理圖


按照以下原理圖將NEO-6M GPS模塊連接到您的Arduino開發板。



●    模塊GND引腳連接到Arduino的GND引腳


●    模塊RX引腳連接到Arduino引腳3


●    模塊TX引腳連接到Arduino引腳4


●    模塊VCC引腳連接到Arduino的5V引腳


代碼


將以下代碼復制到您的Arduino IDE并上傳到您的Arduino開發板上。


  1. /*


  2. * Rui Santos 


  3. * Complete Project Details 

  4. */



  5. #include 



  6. // The serial connection to the GPS module


  7. SoftwareSerial ss(4, 3);


  8. void setup(){


  9.   Serial.begin(9600);


  10.   ss.begin(9600);


  11. }


  12. void loop(){


  13.   while (ss.available() > 0){


  14.     // get the byte data from the GPS


  15.     byte gpsData = ss.read();


  16.     Serial.write(gpsData);


  17.   }


  18. }


復制代碼


本示例假定您使用引腳4和3作為RX和TX串行引腳與GPS模塊建立串行通信。如果您正在使用其他引腳,則應在編輯以下代碼行:


  1. SoftwareSerial ss(4,3);


復制代碼


此外,如果您的模塊使用不同于9600 bps的默認波特率,則應修改以下行中的代碼:


  1. ss.begin(9600);


復制代碼



這個示例監聽GPS串行端口,當從模塊接收到數據時,它被發送到串行監視器。


  1. while (ss.available() > 0){


  2.   // get the byte data from the GPS


  3.   byte gpsData = ss.read();


  4.   Serial.write(gpsData);


  5. }


復制代碼


使用波特率9600打開串行監視器。


你應該得到一堆GPS標準語言NMEA的信息。串行監視器中的每一行都是NMEA語句。

NMEA全稱美國國家海洋電子協會(National Marine Electronics Association),在GPS領域,它是GPS制造商支持的標準數據格式。


了解NMEA語句

NMEA語句以$字符開頭,每個數據字段用逗號分隔


  1. $GPGGA,110617.00,41XX.XXXXX,N,00831.54761,W,1,05,2.68,129.0,M,50.1,M,,*42


  2. $GPGSA,A,3,06,09,30,07,23,,,,,,,,4.43,2.68,3.53*02


  3. $GPGSV,3,1,11,02,48,298,24,03,05,101,24,05,17,292,20,06,71,227,30*7C


  4. $GPGSV,3,2,11,07,47,138,33,09,64,044,28,17,01,199,,19,13,214,*7C


  5. $GPGSV,3,3,11,23,29,054,29,29,01,335,,30,29,167,33*4E


  6. $GPGLL,41XX.XXXXX,N,00831.54761,W,110617.00,A,A*70


  7. $GPRMC,110618.00,A,41XX.XXXXX,N,00831.54753,W,0.078,,030118,,,A*6A 


  8. $GPVTG,,T,,M,0.043,N,0.080,K,A*2C


復制代碼


有NMEA句子的不同類型。消息的類型由第一個逗號前的字符指示。


$之后的GP表示它是GPS位置。 $ GPGGA是基本的GPS NMEA消息,提供3D位置和準確性數據。在下面的句子中:


  1. $ GPGGA,110617.00,41XX.XXXXX,N,00831.54761,W,1,05,2.68,129.0,男,50.1,M,* 42


復制代碼


●    110617 - 表示固定地點的時間,UTC時間11:06:17


<span style="color: rgb(85, 85, 85

使用Arduino開發板連接NEO-6M GPS模塊 的方法相關百科:

    沒有找到您想要的百科