GPS Module

COM.GPS is a satellite positioning module in the M5Stack stacking module series. It is developed based on the NEO-M8N module.

Support the following products:

GPSModule

COM.GPSModule

Micropython Example:

  1import os, sys, io
  2import M5
  3from M5 import *
  4from module import GPSModule
  5
  6
  7GPST = None
  8label0 = None
  9label1 = None
 10label2 = None
 11label3 = None
 12label4 = None
 13label5 = None
 14label6 = None
 15label7 = None
 16label8 = None
 17label9 = None
 18label10 = None
 19label11 = None
 20com_gps_0 = None
 21
 22
 23def setup():
 24    global \
 25        GPST, \
 26        label0, \
 27        label1, \
 28        label2, \
 29        label3, \
 30        label4, \
 31        label5, \
 32        label6, \
 33        label7, \
 34        label8, \
 35        label9, \
 36        label10, \
 37        label11, \
 38        com_gps_0
 39
 40    M5.begin()
 41    Widgets.fillScreen(0x222222)
 42    GPST = Widgets.Title(
 43        "             GPS Module Demo", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18
 44    )
 45    label0 = Widgets.Label(
 46        "Locate status:", 10, 27, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18
 47    )
 48    label1 = Widgets.Label(
 49        "Satellite nums:", 2, 52, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18
 50    )
 51    label2 = Widgets.Label("Longitude:", 40, 105, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 52    label3 = Widgets.Label("Latitude:", 56, 77, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 53    label4 = Widgets.Label("Date:", 85, 131, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 54    label5 = Widgets.Label("Time:", 83, 159, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 55    label6 = Widgets.Label("label6", 150, 28, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 56    label7 = Widgets.Label("label7", 150, 52, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 57    label8 = Widgets.Label("label8", 150, 79, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 58    label9 = Widgets.Label("label9", 150, 107, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 59    label10 = Widgets.Label("label10", 150, 134, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 60    label11 = Widgets.Label("label11", 150, 160, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 61
 62    com_gps_0 = GPSModule(2, 13, 14)
 63    com_gps_0.set_time_zone(8)
 64
 65
 66def loop():
 67    global \
 68        GPST, \
 69        label0, \
 70        label1, \
 71        label2, \
 72        label3, \
 73        label4, \
 74        label5, \
 75        label6, \
 76        label7, \
 77        label8, \
 78        label9, \
 79        label10, \
 80        label11, \
 81        com_gps_0
 82    M5.update()
 83    if com_gps_0.is_locate_valid():
 84        label6.setText(str("OK"))
 85    else:
 86        label6.setText(str("False"))
 87    label7.setText(str(com_gps_0.get_satellite_num()))
 88    label8.setText(str(com_gps_0.get_latitude()))
 89    label9.setText(str(com_gps_0.get_longitude()))
 90    label10.setText(str(com_gps_0.get_date()))
 91    label11.setText(str(com_gps_0.get_time()))
 92
 93
 94if __name__ == "__main__":
 95    try:
 96        setup()
 97        while True:
 98            loop()
 99    except (Exception, KeyboardInterrupt) as e:
100        try:
101            from utility import print_error_msg
102
103            print_error_msg(e)
104        except ImportError:
105            print("please update to latest firmware")

UIFLOW2 Example:

example.png

gps_core2_example.m5f2

class GPSModule

Constructors

class GPSModule(id, rx, tx)

initialize Function.

Parameters:
  • id (int) – UART controllers id, the range is 0 to 2.

  • rx (int) – UART rx pin.

  • tx (int) – UART tx pin.

UIFLOW2:

init.png

Methods

GPSModule.set_time_zone(value)

set timezone function.

Parameters:

value (int) – timezone value

UIFLOW2:

set_time_zone.png

GPSModule.get_time_zone()

get timezone function.

Return (int):

timezone value

UIFLOW2:

get_time_zone.png

GPSModule.get_satellite_num()

get satellite numbers.

Return (str):

satellite numbers value.

UIFLOW2:

get_satellite_num.png

GPSModule.get_altitude()

get altitude.

Return (str):

altitude unit is meter.

UIFLOW2:

get_altitude.png

GPSModule.get_time()

get time.

Return (str):

time(hh:mm:ss)

UIFLOW2:

get_time.png

GPSModule.get_date()

get date.

Return (str):

date(dd/mm/yy)

UIFLOW2:

get_date.png

GPSModule.get_latitude()

get latitude.

Return (str):

latitude, using degrees minutes format (ddmm.mmmmmN/S).

UIFLOW2:

get_latitude.png

GPSModule.get_longitude()

get longitude.

Return (str):

longitude, using degrees minutes format (ddmm.mmmmmE/W).

UIFLOW2:

get_longitude.png

GPSModule.get_latitude_decimal()

get latitude decimal.

Return (float):

latitude decimal(dd.dddd).

UIFLOW2:

get_latitude_decimal.png

GPSModule.get_longitude_decimal()

get longitude decimal.

Return (float):

longitude decimal(dd.dddd).

UIFLOW2:

get_longitude_decimal.png

GPSModule.get_speed(type)

get speed.

Return (str):

speed.

Parameters:

type (int) – speed type, 0 km/h, 1 knot/h Options: - km/h: 0 - knot/h: 1

UIFLOW2:

get_speed.png

GPSModule.get_course()

get course.

Return (str):

course unit is °.

UIFLOW2:

get_course.png

GPSModule.is_locate_valid()

get locate status.

Return (bool):

locate status, true is locate, false is not locate.

UIFLOW2:

is_locate_valid.png