Skip to content

Plot your boat on your ESP32-display via AIS (aisstream.io) on a map (OpenStreetMap)

Notifications You must be signed in to change notification settings

arnegue/WhereIsMyBoat

Repository files navigation

Where is My Boat?

ESP32-S3 4.3inch WhereIsMyBoat

Ever wondered where your boat is? With this handy program, you can track your boat's current location and display it right on the touch screen of your ESP32!

Features

  • Live AIS Tracking: Retrieves your boat's AIS (Automatic Identification System) position from aisstream.io (via WebSocketSecure).
  • Dynamic Mapping: Fetches map tiles from OpenStreetMap for your boat’s location, converting PNGs using Pngle library
  • Interactive Display: Displays the map on a 4.3" TouchScreen or this one powered by LVGL

This program combines real-time tracking and intuitive visuals to keep your boat's location just a glance away. Perfect for tech-savvy mariners!

Setup

  1. Checkout repository: git clone --recurse-submodules https://github.com/arnegue/WhereIsMyBoat
  2. Open this Repository with VSCode
  3. Install ESP-IDF extension
  4. Install C/C++ Extension Pack
  5. Setup your ESP
  6. Put your free aisstream-API-Key in main/config.h
  7. Build and upload
  8. Runtime Setup:
    • Setup WiFi (press first button (WiFi Icon))
    • Setup MMSI (press second button (GPS Icon))

TODOs

  • Get rid of main-loop
    • Only display-updates in mainloop
  • Boat-Marker
    • If marker is too much on top border of a tile (e.g. 53.538158 / 9.869338) the boat is cut off. Decided whether to put tile on 1/0 or 1/1 (e.g. if boat marker is in Y < 1/3 of tile, then put tile in 1/1)
    • Rotate boat marker according to COG -> lv_img_set_angle(img, angle) | Need to maybe need to mirror when changing over 0/180? Or just -180?
  • Get rid of in-code-TODOs
  • Add SYMBOL_Close button to keyboard and get rid of abort buttons of wifi and mmsi setup

About

Plot your boat on your ESP32-display via AIS (aisstream.io) on a map (OpenStreetMap)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published