|
|
|
@ -1,25 +1,36 @@
|
|
|
|
|
# https://56k.es/fanta/utilizando-un-modulo-gps-usb-barato-en-gnulinux/
|
|
|
|
|
# apt install python3-nmea2 python3-serial
|
|
|
|
|
# NMEA 0183 PROTOCOL: https://www.serialmon.com/protocols/nmea0183.shtml
|
|
|
|
|
# ('Timestamp', 'timestamp', timestamp),
|
|
|
|
|
# ('Latitude', 'lat'),
|
|
|
|
|
# ('Latitude Direction', 'lat_dir'),
|
|
|
|
|
# ('Longitude', 'lon'),
|
|
|
|
|
# ('Longitude Direction', 'lon_dir'),
|
|
|
|
|
# ('GPS Quality Indicator', 'gps_qual', int),
|
|
|
|
|
# ('Number of Satellites in use', 'num_sats'),
|
|
|
|
|
# ('Horizontal Dilution of Precision', 'horizontal_dil'),
|
|
|
|
|
# ('Antenna Alt above sea level (mean)', 'altitude', float),
|
|
|
|
|
# ('Units of altitude (meters)', 'altitude_units'),
|
|
|
|
|
# ('Geoidal Separation', 'geo_sep'),
|
|
|
|
|
# ('Units of Geoidal Separation (meters)', 'geo_sep_units'),
|
|
|
|
|
# ('Age of Differential GPS Data (secs)', 'age_gps_data'),
|
|
|
|
|
# ('Differential Reference Station ID', 'ref_station_id'),
|
|
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
https://56k.es/fanta/utilizando-un-modulo-gps-usb-barato-en-gnulinux/
|
|
|
|
|
apt install python3-nmea2 python3-serial
|
|
|
|
|
NMEA 0183 PROTOCOL: https://www.serialmon.com/protocols/nmea0183.shtml
|
|
|
|
|
|
|
|
|
|
'Timestamp', 'timestamp'
|
|
|
|
|
'Latitude', 'lat'
|
|
|
|
|
'Latitude Direction', 'lat_dir'
|
|
|
|
|
'Longitude', 'lon'
|
|
|
|
|
'Longitude Direction', 'lon_dir'
|
|
|
|
|
'GPS Quality Indicator', 'gps_qual', int
|
|
|
|
|
'Number of Satellites in use', 'num_sats'
|
|
|
|
|
'Horizontal Dilution of Precision', 'horizontal_dil'
|
|
|
|
|
'Antenna Alt above sea level (mean)', 'altitude', float
|
|
|
|
|
'Units of altitude (meters)', 'altitude_units'
|
|
|
|
|
'Geoidal Separation', 'geo_sep'
|
|
|
|
|
'Units of Geoidal Separation (meters)', 'geo_sep_units'
|
|
|
|
|
'Age of Differential GPS Data (secs)', 'age_gps_data'
|
|
|
|
|
'Differential Reference Station ID', 'ref_station_id'
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
import io
|
|
|
|
|
import os
|
|
|
|
|
import sys
|
|
|
|
|
import pynmea2
|
|
|
|
|
import serial
|
|
|
|
|
|
|
|
|
|
if os.geteuid() != 0:
|
|
|
|
|
sys.exit("You need to have root privileges to run this script.\nPlease try again, this time using 'sudo' for example. Exiting.")
|
|
|
|
|
|
|
|
|
|
ser = serial.Serial('/dev/ttyACM0', 9600, timeout=5.0)
|
|
|
|
|
sio = io.TextIOWrapper(io.BufferedRWPair(ser, ser))
|
|
|
|
|
|
|
|
|
|