Raspberry Pi GPS

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Raspberry Pi với module GPS NEO-6M. Cụ thể, chúng ta sẽ học:

Ngoài kinh độ, vĩ độ và độ cao, Raspberry Pi cũng có thể đọc tốc độ GPS (km/h) và thời gian ngày tháng từ module GPS NEO-6M.

Phần Cứng Cần Thiết

1×Raspberry Pi 5
1×Module GPS NEO-6M
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi
1×(Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit
1×(Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Module GPS NEO-6M

Module GPS NEO-6M là một module GPS có thể cung cấp các thông tin sau:

  • Kinh độ
  • Vĩ độ
  • Độ cao
  • Tốc độ GPS (km/h)
  • Ngày giờ

Sơ Đồ Chân Module GPS NEO-6M

Module GPS NEO-6M có bốn chân:

  • Chân VCC: Chân này nên được kết nối với VCC (3.3V hoặc 5V)
  • Chân GND: Chân này nên được kết nối với GND (0V)
  • Chân TX: Chân này được sử dụng cho giao tiếp serial và nên được kết nối với chân Serial RX trên Raspberry Pi.
  • Chân RX: Chân này được sử dụng cho giao tiếp serial và nên được kết nối với chân Serial TX trên Raspberry Pi.
neo-6m GPS module sơ đồ chân

Sơ Đồ Kết Nối

Raspberry Pi GPS module sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Code Raspberry Pi

Đọc tọa độ GPS, tốc độ (km/h) và ngày giờ

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc hệ điều hành tương thích khác với Raspberry Pi trên Pi của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ với PC của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt một số thư viện.
  • Nếu đây là lần đầu bạn sử dụng Raspberry Pi, xem Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC của bạn với Raspberry Pi qua SSH bằng SSH client tích hợp sẵn trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
  • Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, hãy cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
pip install pyserial
  • Tạo file script Python gps.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-gps import serial import time from datetime import datetime GPS_BAUD = 9600 # Create serial object for GPS GPS = serial.Serial('/dev/serial0', GPS_BAUD, timeout=1) print("Raspberry Pi - GPS Module") try: while True: if GPS.in_waiting > 0: gps_data = GPS.readline().decode('utf-8').strip() if gps_data.startswith('$GPGGA'): # Process GPS data using TinyGPS++ # You may need to adapt this part based on the structure of your GPS data print(f"Received GPS data: {gps_data}") # Extract relevant information data_parts = gps_data.split(',') latitude = data_parts[2] longitude = data_parts[4] altitude = data_parts[9] # Print extracted information print(f"- Latitude: {latitude}") print(f"- Longitude: {longitude}") print(f"- Altitude: {altitude} meters") # You can add more processing as needed time.sleep(1) except KeyboardInterrupt: print("\nExiting the script.") GPS.close()
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 gps.py
  • Kiểm tra kết quả trên Terminal.
PuTTY - Raspberry Pi

Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.

Tính khoảng cách từ vị trí hiện tại đến vị trí định trước

Code dưới đây tính toán khoảng cách giữa vị trí hiện tại và London (vĩ độ: 51.508131, kinh độ: -0.128002).

Các Bước Nhanh

  • Cài đặt thư viện geopy để tính toán khoảng cách:
pip3 install geopy
  • Tạo file script Python gps_distance.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-gps import serial import time from geopy.distance import geodesic GPS_BAUD = 9600 LONDON_LAT = 51.508131 LONDON_LON = -0.128002 # Create serial object for GPS gps = serial.Serial('/dev/serial0', GPS_BAUD, timeout=1) print("Raspberry Pi - GPS Module") try: while True: if gps.in_waiting > 0: gps_data = gps.readline().decode('utf-8').strip() if gps_data.startswith('$GPGGA'): # Process GPS data using TinyGPS++ # You may need to adapt this part based on the structure of your GPS data print(f"Received GPS data: {gps_data}") # Extract relevant information data_parts = gps_data.split(',') latitude = float(data_parts[2]) longitude = float(data_parts[4]) # Print extracted information print(f"- Latitude: {latitude}") print(f"- Longitude: {longitude}") # Calculate distance to London using geopy current_location = (latitude, longitude) london_location = (LONDON_LAT, LONDON_LON) distance_km = geodesic(current_location, london_location).kilometers # Print calculated distance print(f"- Distance to London: {distance_km:.2f} km") time.sleep(1) except KeyboardInterrupt: print("\nExiting the script.") gps.close()
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 gps_distance.py
  • Kiểm tra kết quả trên Terminal.
PuTTY - Raspberry Pi

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Bài hướng dẫn liên quan