Skip to content

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))

Colored Status-Dot meaning

In the top right corner is a colored state-marker. The color mean following:

  • Black: Not connected to WiFi
  • Red: Not connected to AIS-Stream
  • Orange: Connected to AIS-Stream but no AIS-Data were received
  • Yellow: Connected to AIS-Stream but no valid AIS-Data were received
  • Green: Connected to AIS-Stream and valid AIS-Data were received at least once

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