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!
- Checkout repository:
git clone --recurse-submodules https://github.com/arnegue/WhereIsMyBoat
- Open this Repository with VSCode
- Install ESP-IDF extension
- Install C/C++ Extension Pack
- Setup your ESP
- Put your free aisstream-API-Key in main/config.h
- Get it from API-Key from aisstream.io (need to be signed in)
- Build and upload
- Runtime Setup:
- Setup WiFi (press first button (WiFi Icon))
- Setup MMSI (press second button (GPS Icon))
- 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