Skip to content

About

A small WiFi / GPS tracker based on the LilyGO T-SIM7080G-S3 and MicroPython

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

71 Commits

Folders and files

Repository files navigation

tests

Marph's Tracker

A small, battery-powered Wi-Fi/GNSS tracker based on the LilyGO T-SIM7080G-S3 and MicroPython.

Motivation

I want a theft protection for our new stroller.

Requirements:

  • Small and mobile
  • Cheap
  • Can send from any location to a configurable endpoint
  • Without vendor-lock (no app/registration)

Images

Tracker Assembled Tracker in Case
Tracker assembled Tracker in case
Tracker in Stroller Tracker in Traccar
Tracker in stroller Tracker in traccar

Overview

  • Hardware:
    • LILYGO T-SIM7080G-S3 including GNSS and LTE antenna
    • 18650 battery
    • IoT SIM card
  • Location methods:
  • Cellular connectivity: LTE-M or NB-IoT

The tracker obtains the location based on GNSS or WIFI. This data is sent to a configurable URL. In my case, this is a ntfy instance. A custom script subscribes to the ntfy instance, converts the data and forwards it to a self-hosted Traccar server in my home lab.

Please check the documentation for setup instructions and further details:

Example Deployment

flowchart LR

    %% =========================================================
    %% DEVICE
    %% =========================================================
    subgraph DEVICE["📍 LILYGO T-SIM7080G"]
        direction TB

        TRACKER["Tracker"] --> WIFI_PATH["📶 WiFi path"]

        WIFI_PATH -->|"Configured home SSID detected"| WIFI_PASSWORD["WiFi password set?"]
        WIFI_PASSWORD -->|"No"| DONE["Cycle finished"]
        WIFI_PASSWORD -->|"Yes -> heartbeat"| WIFI["WiFi"]
        WIFI_PATH -->|"Enough APs detected"| CELLULAR["LTE-M / NB-IoT"]
        WIFI_PATH -->|"Too few APs"| GNSS_PATH["🛰️ GNSS path"]

        GNSS_PATH -->|"Fix -> Location"| CELLULAR
        GNSS_PATH -->|"No fix -> WiFi fallback or heartbeat"| CELLULAR
    end


    %% =========================================================
    %% PUBLIC NETWORK
    %% =========================================================
    subgraph PUBLIC["🌐 PUBLIC NETWORK"]
        NTFY["ntfy"]
        BEACON["BeaconDB\nWiFi geolocation"]
    end


    %% =========================================================
    %% HOME NETWORK
    %% =========================================================
    subgraph HOME["🏠 HOME NETWORK"]
        CONVERTER["Message Converter"]
        TRACCAR["Traccar Server"]
    end


    %% =========================================================
    %% CONNECTIONS
    %% =========================================================

    WIFI -->|"Publish"| NTFY
    CELLULAR -->|"Publish"| NTFY

    NTFY -->|"Subscribe"| CONVERTER

    CONVERTER -->|"WiFi AP lookup"| BEACON
    BEACON -->|"Location"| CONVERTER

    CONVERTER -->|"HTTP Request in OsmAnd format"| TRACCAR
Loading

Abbreviations

Abbreviation Description
AP Access Point. I.e. a WiFi network.
APN Access Point Name. Gateway for the cellular data.
BSSID Basic Service Set Identification. I.e. the MAC address of the WiFi.
GNSS Global Navigation Satellite System. For example GPS or Galileo.
LTE-M / NB-IoT Narrowband Cellular Standards for mobile data.
RSSI Received Signal Strength Indicator. I.e. the strength of the WiFi signal.
SSID Service Set Identifier. I.e. the name of the WiFi.

Code structure

File/Folder Content
.github/workflows Github CI
docs Documentation
firmware Firmware running on the device
ntfy_traccar_bridge Bridge scripts running on the server at a machine in local network
flash_firmware.bash Flash the firmware to the device

Similar projects

About

A small WiFi / GPS tracker based on the LilyGO T-SIM7080G-S3 and MicroPython

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages