AED 40.95
1
Description
NEO-6M GPS Module that can track up to 22 satellites and identifies locations worldwide. the module includes one configurable UART interface for serial communication. Still, the default UART (TTL) baud rate here is 9600 Baud and works well with a DC input in the 3.3- to the 5-V range with its built-in voltage regulator.
Specifications:
Receiver Type | 50 channels, GPS L1(1575.42Mhz) |
Horizontal Position Accuracy | 2.5m |
Navigation Update Rate | 1HZ (5Hz maximum) |
Capture Time | Cool start: 27sHot start: 1s |
Navigation Sensitivity | -161dBm |
Communication Protocol | NMEA, UBX Binary, RTCM |
Serial Baud Rate | 4800-230400 (default 9600) |
Operating Temperature | -40°C ~ 85°C |
Operating Voltage | 2.7V ~ 3.6V |
Operating Current | 45mA |
TXD/RXD Impedance | 510Ω |
Pinout of the NEO-06
NEO-6M GPS Module | Wiring to Arduino UNO |
VCC | 5V |
RX | TX pin defined in the software serial |
TX | RX pin defined in the software serial |
GND | GND |
LED blinks in 2 states:
- No Blinking – It’s searching for satellites.
- Blink every 1s – Position Fix is found(The module can see enough satellites).
Antenna
An antenna is required to use the module for any kind of communication. So, the module comes with a patch antenna having -161 dBm sensitivity.
Arduino Simple Code For NEO-06 GPS Module:
#include "SoftwareSerial.h" // Add the missing include statement SoftwareSerial ss(4, 3); // GPS Module’s TX to D4 & RX to D3 void setup(){ Serial.begin(9600); ss.begin(9600); } void loop(){ while (ss.available() > 0){ char gpsData = ss.read(); // Use char data type to store a single character Serial.write(gpsData); } }
you can also download the Tiny GPS Library which can parse the coming GPS data by Clicking Here
and here is another Arduino code for the NEO-06 Module Using the Tiny GPS Library:
#include "TinyGPSPlus.h" #include "SoftwareSerial.h" /* This sample code demonstrates the normal use of a TinyGPSPlus (TinyGPSPlus) object. It requires the use of SoftwareSerial, and assumes that you have a 4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx). */ static const int RXPin = 4, TXPin = 3; static const uint32_t GPSBaud = 4800; // The TinyGPSPlus object TinyGPSPlus gps; // The serial connection to the GPS device SoftwareSerial ss(RXPin, TXPin); void setup() { Serial.begin(115200); ss.begin(GPSBaud); Serial.println(F("FullExample.ino")); Serial.println(F("An extensive example of many interesting TinyGPSPlus features")); Serial.print(F("Testing TinyGPSPlus library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); Serial.println(F("by Mikal Hart")); Serial.println(); Serial.println(F("Sats HDOP Latitude Longitude Fix Date Time Date Alt Course Speed Card Distance Course Card Chars Sentences Checksum")); Serial.println(F(" (deg) (deg) Age Age (m) --- from GPS ---- ---- to London ---- RX RX Fail")); Serial.println(F("----------------------------------------------------------------------------------------------------------------------------------------")); } void loop() { static const double LONDON_LAT = 51.508131, LONDON_LON = -0.128002; printInt(gps.satellites.value(), gps.satellites.isValid(), 5); printFloat(gps.hdop.hdop(), gps.hdop.isValid(), 6, 1); printFloat(gps.location.lat(), gps.location.isValid(), 11, 6); printFloat(gps.location.lng(), gps.location.isValid(), 12, 6); printInt(gps.location.age(), gps.location.isValid(), 5); printDateTime(gps.date, gps.time); printFloat(gps.altitude.meters(), gps.altitude.isValid(), 7, 2); printFloat(gps.course.deg(), gps.course.isValid(), 7, 2); printFloat(gps.speed.kmph(), gps.speed.isValid(), 6, 2); printStr(gps.course.isValid() ? TinyGPSPlus::cardinal(gps.course.deg()) : "*** ", 6); unsigned long distanceKmToLondon = (unsigned long)TinyGPSPlus::distanceBetween( gps.location.lat(), gps.location.lng(), LONDON_LAT, LONDON_LON) / 1000; printInt(distanceKmToLondon, gps.location.isValid(), 9); double courseToLondon = TinyGPSPlus::courseTo( gps.location.lat(), gps.location.lng(), LONDON_LAT, LONDON_LON); printFloat(courseToLondon, gps.location.isValid(), 7, 2); const char *cardinalToLondon = TinyGPSPlus::cardinal(courseToLondon); printStr(gps.location.isValid() ? cardinalToLondon : "*** ", 6); printInt(gps.charsProcessed(), true, 6); printInt(gps.sentencesWithFix(), true, 10); printInt(gps.failedChecksum(), true, 9); Serial.println(); smartDelay(1000); if (millis() > 5000 && gps.charsProcessed() < 10) Serial.println(F("No GPS data received: check wiring")); } // This custom version of delay() ensures that the gps object // is being "fed". static void smartDelay(unsigned long ms) { unsigned long start = millis(); do { while (ss.available()) gps.encode(ss.read()); } while (millis() - start < ms); } static void printFloat(float val, bool valid, int len, int prec) { if (!valid) { while (len-- > 1) Serial.print('*'); Serial.print(' '); } else { Serial.print(val, prec); int vi = abs((int)val); int flen = prec + (val < 0.0 ? 2 : 1); // . and - flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1; for (int i=flen; i0) sz[len-1] = ' '; Serial.print(sz); smartDelay(0); } static void printDateTime(TinyGPSDate &d, TinyGPSTime &t) { if (!d.isValid()) { Serial.print(F("********** ")); } else { char sz[32]; sprintf(sz, "%02d/%02d/%02d ", d.month(), d.day(), d.year()); Serial.print(sz); } if (!t.isValid()) { Serial.print(F("******** ")); } else { char sz[32]; sprintf(sz, "%02d:%02d:%02d ", t.hour(), t.minute(), t.second()); Serial.print(sz); } printInt(d.age(), d.isValid(), 5); smartDelay(0); } static void printStr(const char *str, int len) { int slen = strlen(str); for (int i=0; i