使用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模块 的方法相关百科:

    没有找到您想要的百科