Code Monkey home page Code Monkey logo

pilot's Introduction

PiLot

The PiLot is a Raspberry Pi based system for boating. It's used with any device having a browser and wifi. It's completely autonomous and works perfectly without internet access. All data is fully controlled by the owner, as it's stored locally in simple formats and thus easily accessible.

Features:

Maps

  • Offline maps (osm and openseamap)
  • GPS Position on the map
  • Historic track on the map
  • Course and speed over ground vector
  • Waypoints on the map, showing distance, bearing and ETA
  • POIs (points of interest): manage manually and import from OSM
  • Anchor alarm

Routes

  • Define an unlimited number of routes
  • Each route can have any number of waypoints
  • The route shows total distance, distance and bearing between each waypoint

GPS data

  • Position
  • COG (course over ground)
  • SOG (speed over ground)
  • VMC (velocity made good on course)
  • XTE (cross track error)

Logbook

  • Create logbook entries automatically fed with meteo and GPS data
  • Select boat setup (engine, sails etc, freely configurable) for each logbook entry
  • Create a logbook entry with one click, e.g. when leaving port or setting sails
  • Visualize the boat setup with freely configurable boat images

Diary

  • Show logbook, diary text, track and photos for one day on the diary page

Meteo

  • Show actual and historic sensor data
  • Temperature
  • Air pressure, with 48h barograph and trend indicator
  • Humidity
  • Moon phase

Entertainment

  • Games
  • eBook library

Other

  • User interface language: english or german
  • Export track as GPX, CSV, JSON or tabular data
  • Import TCX data
  • Download offline maps for any desired region and detail level
  • Publish diary data to any other pilot
  • Online live tracking
  • Configurable Boattime (when moving from one timezone to the other)
  • User management with specific permission levels
  • Night mode
  • Responsive user interface adapting to all sizes of screens

Screenshots

Map with route, waypoint information, track, position and cog-vector: map

Navigation data with waypoints: nav

Diary page: diary

Meteo page with all environment sensor data: meteo

Mobile views

map-mobile1 map-mobile2 map-mobile3 nav-mobile home-mobile

Getting started

For users

If you have a bit of time and curiosity, you can set up your own PiLot at no cost (except the hardware). You will end up having a free and open system to plan, track and relive your adventures on the water.

BE AWARE that the PiLot does in no way replace neither reliable, professional navigation equipment nor up-to-date charts. The PiLot might be wrong, or might even fail entirely.

See Getting started for Users for further details.

For developers

If you feel like contributing to the PiLot ecosystem, then you are more than welcome. It's just HTML, vanilla Javascript and dotnet core with C#. No bloat, no frameworks, just straightforward code. All you need is your favourite IDE, the dotnet SDK, a webserver (such as nginx) and git. See Getting started for developers for further details.

Using the PiLot on a kayak at night (for those who can't afford a proper yacht): kayak

pilot's People

Contributors

didosa avatar rcgmbh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pilot's Issues

De-jQuery Nav.js

There are some jQuery leftovers in /View/Nav.js that need to be removed. Just the sortable of the RouteDetail might remain, this could be replaced by PlainDraggable in #10

Improve BoatSetupForm

There are some improvements needed in PiLot.View.Boat.BoatSetupForm:

  • remove jQuery dependencies
  • place form in the middle of the screen, maybe even draggable.
    Make sure it work well and looks good both on the start page and the logbook page.

Andoid

This seems to be interesting. Can this be used as part of an Android application?

Add Points of interest

We want to show points of interest on the map, e.g. for marinas, locks, temporary impediments, events etc. A poi has a category (e.g. "Marina") and features (e.g. fresh water, waste, power). It must be possible to show pois on the map based on filters (categories, features). Pois must be delivered by the backend for the currently displayed map area (and a bit more).

  • add on Map (right-click > add POI)
  • edit, delete on map (open > edit, delete icons)
  • manage in tools (search, filter, add, edit, delete)
  • show on map with marker and title (new map options dialog to show/hide, select categories/features)
  • cluster on map by category: https://github.com/Leaflet/Leaflet.markercluster
  • save in DB

Android

Can this be integrated to our Android application?

Switch to PostgreSQL

Instead of text/json files, store all data within PostgreSQL. Use PostGIS to store and query all geo data. This will allow to quickly find close data, such as pictures, POIs, past nearby positions etc.

The goal here is to do some basic work (db connection, general thoughts), and additional issues will need to be created to implement the specific DataConnectors. The existing file based connectors will be kept to allow for low-profile backup clients. So maybe we will build this against common interfaces for file- and pg- based data storage.

Only one config for the list of services

The list of services, which the web app allows to start/stop is currently hard coded in SystemHelper.cs (all accepted services) and in Config.js (the services listed in the web app). We want to have the configuration in one single place, and it must be on the server.

Add meteo forecast

(probably split the issue later)

  • download openweathermap data with a service when online
  • download data for current location and for waypoints on the active route
  • show forecast in meteo area for current locations
  • show forecast for waypoints (maybe based on ETA), in meteo area or in compact form on the map
  • download grib files
  • offer grib layer on the map (with time slider)
  • remove moon thing from sensors page, create new page with moon phase, moonrise/-set, sunrise/sunset and maybe some more geodesy/astronomy data, nicely presented

Add .net GPS Logger

Replace the Python GPS Logger by a dotnet core based version.

Add multilingual support

Implement the easiest possible support for language specific texts, tooltips, images etc.
let the user select his language from a set of predefined (start with de, en, fr)
save the selected language in browser data, re-apply when the user loads a page
apply texts as early in the page lifecycle as possible
keep the performance impact as low as possible
no need for translation administration at runtime

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.