IoTLabs

Nghiên cứu, Sáng tạo và Thử nghiệm

Tìm hiểu Module GPS NEO-6M: Thông số kỹ thuật & Hướng dẫn kết nối

1. Tổng quan

Module GPS NEO-6M là board định vị sử dụng chip u-blox NEO-6M-0-001, tích hợp sẵn:

  • Ăng-ten gốm (ceramic patch antenna)
  • IC ổn áp 5V → 3.3V
  • EEPROM lưu cấu hình
  • Pin backup nhỏ để giữ dữ liệu quỹ đạo (orbit) & thời gian

Nhờ đó, module có thể bắt GPS nhanh, dùng được với cả vi điều khiển 3.3V và 5V, giao tiếp UART TTL, rất phù hợp cho các dự án IoT, robot, logger hành trình, thiết bị theo dõi tài sản, drone, v.v.

2. Tính năng nổi bật

  • Độ nhạy cao: tracking khoảng -161 dBm, cho phép bắt tín hiệu trong môi trường đô thị, trong nhà gần cửa sổ. 
  • Độ chính xác vị trí ≈ 2.0–2.5 m (2D) trong điều kiện tín hiệu tốt. 
  • 50 kênh / 22 vệ tinh: engine u-blox 6 có thể theo dõi đồng thời nhiều vệ tinh, tăng ổn định vị trí. 
  • Thời gian bắt tín hiệu (TTFF):
    • Cold start: ~27 s
    • Hot start: ~1 s (khi còn dữ liệu orbit & pin backup). 
  • Điện áp đầu vào module: 3.3 – 5 VDC nhờ LDO 3.3V trên board. 
  • Chuẩn giao tiếp: UART TTL, tốc độ mặc định 9600 bps, có thể cấu hình lên đến 230400 bps. 
  • Hỗ trợ chuẩn dữ liệu: NMEA, UBX, một số biến thể hỗ trợ thêm RTCM. 
  • Đèn LED báo trạng thái: nháy khi đã fix vệ tinh. 

3. Thông số kỹ thuật chính (tóm tắt)

NhómThông số
Nguồn & giao tiếpĐiện áp vào board: 3.3–5 VDC; dòng tiêu thụ điển hình: ~45–50 mA khi hoạt động; giao tiếp UART TTL, các giao diện nội bộ của chip: UART / SPI / I2C (DDC) / USB.
Độ nhạy & độ chính xácNhạy theo dõi & dẫn đường: ~-161 dBm; độ chính xác nằm ngang: ~2.0–2.5 m (2D RMS).
Khả năng tracking22 vệ tinh, 50 kênh tracking; tần số L1 1575.42 MHz.
Tốc độ cập nhậtTốc độ nav mặc định 1 Hz, cấu hình được đến 5 Hz.
Thời gian bắt tín hiệuCold start ~27 s; warm start ~27 s; hot start ~1 s (khi có dữ liệu & pin còn).
Nhiệt độ hoạt động-40 °C đến +85 °C.
Kích thướcChip NEO-6M: ~16.6 × 12.3 × 2.6 mm; module GY-NEO6MV2 (cả board): khoảng 23 × 30 mm (tuỳ nhà sản xuất).

4. Sơ đồ chân module (Loại có 4 chân phía sau ăng-ten)

Trên mặt sau của board (hình trên), hàng 4 chân lần lượt thường được in là:

  1. VCC – Nguồn vào 3.3–5 VDC
  2. RX – Nhận dữ liệu UART từ MCU (MCU_TX → RX)
  3. TX – Gửi dữ liệu UART tới MCU (MCU_RX ← TX)
  4. GND – Mass chung

Một số phiên bản có thêm pad PPS (1PPS output) ở cạnh khác của board, dùng để lấy xung đồng bộ thời gian chính xác.

Lưu ý: Logic I/O là 3.3V nhưng chân RX chịu được 5V, nên có thể nối trực tiếp với TX 5V của Arduino UNO. Tuy vậy, để tối ưu chúng ta vẫn có thể thêm chia áp 2 điện trở.

5. Khối chức năng trên board

Nhìn trên mặt trước (trong hình):

  • Chip NEO-6M: khối GPS chính (u-blox 6).
  • LDO 3.3V (thường là MIC5205): hạ 5V xuống 3.3V cho chip. 
  • EEPROM (HK24C32): 4 KByte, kết nối I2C, lưu cấu hình & dữ liệu orbit để hot start nhanh. 
  • Pin backup (coin cell nhỏ): giữ nguồn cho RAM bên trong, giúp GPS không phải “cold start” mỗi lần cấp nguồn. 
  • LED báo fix: nháy khi có tín hiệu vệ tinh ổn định. 
  • Cổng ăng-ten: thường là U.FL gắn sẵn anten patch trên board, hoặc đầu SMA nếu dùng anten rời.

6. Điện áp & tiêu thụ năng lượng

  • Điện áp khuyến nghị: 3.3–5 VDC cấp vào chân VCC của module (đã có sẵn LDO). 
  • Dòng tiêu thụ: ~45–50 mA khi đang tracking; có thể giảm bằng các chế độ tiết kiệm năng lượng của u-blox 6 (Power Save Mode). 
  • Pin backup: dòng rò rất nhỏ, cho phép giữ dữ liệu trong nhiều ngày không cấp nguồn chính. 

Gợi ý thiết kế IoT:

Nếu dùng với ESP32-C3/ESP32-S3 chạy pin, nên:

  • Bật GPS theo chu kỳ (ví dụ 1–2 phút đo 1 lần) thay vì chạy liên tục.
  • Dùng MOSFET P-channel hoặc load switch điều khiển nguồn VCC của GPS để cắt hẳn nguồn khi không cần.
  • Giữ lại pin backup để lần bật sau GPS lock nhanh hơn, giảm thời gian bật – giảm tiêu thụ tổng.

7. Chuẩn giao tiếp & dữ liệu đầu ra

  • Giao tiếp chính: UART TTL
    • Tốc độ mặc định: 9600 bps, 8N1. 
    • Có thể cấu hình bằng lệnh UBX (qua UART) để đổi baud và định dạng khung. 
  • Định dạng dữ liệu:
    • NMEA 0183 v2.3 – các câu điển hình: $GPRMC, $GPGGA, $GPGSV, $GPGSA, …
    • UBX binary – giao thức riêng của u-blox cho cấu hình chi tiết, tối ưu băng thông. 

Từ NMEA, ta có thể trích ra:

  • Vĩ độ (Latitude), kinh độ (Longitude)
  • Độ cao (Altitude)
  • Số vệ tinh sử dụng
  • Thời gian & ngày GPS (UTC)
  • Tốc độ di chuyển, hướng (course over ground)

Các thư viện phổ biến: TinyGPS++ cho Arduino / ESP32 giúp parse NMEA rất nhanh và tiện.

8. Hướng dẫn kết nối nhanh với vi điều khiển

8.1. Kết nối cơ bản với Arduino UNO (5V)

NEO-6MArduino UNO
VCC5V
GNDGND
TXD4 (RX của SoftwareSerial)
RXD3 (TX của SoftwareSerial – nên qua chia áp 2 điện trở)
  • Dùng thư viện SoftwareSerial + TinyGPS++ để đọc NMEA.

8.2. Kết nối với ESP32 / ESP32-C3

  • Cấp 3.3V hoặc 5V cho VCC (tuỳ board ESP32).
  • Dùng UART hardware bất kỳ (ví dụ: GPIO16 – RX, GPIO17 – TX với ESP32; với C3 chọn UART0/1).
  • Chú ý logic của ESP32 là 3.3V, tương thích trực tiếp với TX/RX của module.

9. Ứng dụng gợi ý

  • Thiết bị theo dõi hành trình (tracker) cho xe máy, ô tô, tài sản.
  • Logger GPS cho các dự án đo đạc, ghi lộ trình chạy bộ/đạp xe.
  • Robot, drone, thuyền tự hành cần xác định vị trí ngoài trời.
  • Hệ thống giám sát vị trí IoT kết hợp GSM/4G, LoRa hoặc WiFi để gửi dữ liệu về server.

10. Ghi chú khi thiết kế mạch & cơ khí

  1. Ăng-ten
    • Luôn đặt anten hướng lên trời, tránh kim loại che phủ.
    • Nếu lắp trong hộp, nên dùng nắp nhựa; tránh hộp kim loại kín.
  2. Nền mass & nhiễu
    • Để một vùng ground plane dưới module giúp tăng hiệu quả anten. 
    • Tránh đặt sát module WiFi/bộ DC-DC switching để giảm nhiễu RF.
  3. Khởi tạo lần đầu
    • Lần đầu cấp nguồn ở vị trí mới, GPS có thể mất vài chục giây để có fix – đây là bình thường.
  4. Làm việc với IoT battery-powered
    • Dùng chiến lược “wake → fix → gửi → sleep” để tối ưu pin.
    • Kết hợp deep-sleep của ESP32/MCU với power-switch cho GPS.

11. Tài liệu tham khảo

  • Datasheet u-blox NEO-6 series (GPS.G6-HW-09005, Product Summary, Receiver Description). 
  • Các bài hướng dẫn sử dụng NEO-6M với Arduino/ESP32 (TinyGPS++, wiring, code mẫu).