Giter Club home page Giter Club logo

smartcar's Introduction

SmartCar Actions Status Docker Hub

A collection of karmen containers to build a distributed car container network

Smartcar footage:

smartcar gif

Current Functionality

  • Starts and stops recording with ignition
  • Transfers footage to NAS when you come home
  • Collects obdii sensor data locally on an interval

Current containers

More containers on the way (OBDII) - make new containers and make a pull request!

Getting started

You need some hardware and handywork to get this started in your car.

  1. Look at your car's wiring diagram. Find out where you can tap into 12V (w/ a buck converter and a fuse)
  2. Also see what wire corelates to your ignition
  3. (I used wires going to my car radio (12V & ignition on/off))
  4. You'll need a latch relay that is triggered with ignition on. This powers the Pi
  5. Once the Pi is on, smartcar will emit "key_on" by default, starting the recording process
  6. You'll need another relay system to determine when the ignition went off, but on a different pin, that does not turn off the Pi (remember, your Pi is on because of the former latch relay)

NOTE: as of writing the pin numbers are hardcoded in gpio.py

Configuration

config.yml

See my example RPi config. TLDR; karmen takes a declarative mapping of container events to container actions

docker-compose.yml

See my example RPi compose.

smartcar's People

Contributors

dependabot[bot] avatar jrcichra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

smartcar's Issues

Check filesizes match before deleting local copy

This is a feature I had in the original PoC. Somehow, it didn't make it to the smartcar project. This will prevent issues where the file was not transferred properly.

If filesizes don't match, don't delete the local file!

Rewrite controller in Go

Current spagetti code is too confusing to maintain and scale. Now that I got v1 of the controller built - it's time to use go to make the concurrency better.

Write Electron GUI

Try to use mapbox for navigation, flexible enough for new features and panes for a touchscreen

Poll KEY_ON/KEY_OFF

Instead of interrupts, poll the KEY_ON/KEY_OFF every few seconds and emit when there's a state change

Simplify Python Client Library

The current method requires knowledge of the internal JSON. This shouldn't be the case.

Try using python async await.

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.