All Projects → JVital2013 → Roadapplepi

JVital2013 / Roadapplepi

Licence: gpl-3.0
An elegent "Black Box" solution that can be retrofitted into any car with an OBD(II) port for minimal cost.

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Roadapplepi

Didicallcar
这是我自己做的一个类似滴滴打车的Android出行项目,主要针对滴滴等出行平台一直饱受质疑的“人车不符”问题,以及当前越发火热的或计划和出海战略,给出行项目增加了下面几个功能: 1. RFID识别验证功能:在司机证件或者车内识别硬件嵌入RFID识别芯片,乘客使用手机读取到芯片信息,并且通过网络发送到出行平台数据库进行验证(我用JNI加了一个C语言的MD5加密算法对识别到的信息进行了加密)。如果不是合规的“人”或“车”,则不能完成订单并向平台或监管单位汇报当前位置。(为了方便读者测试,可以使用手机读取任何一个加密或非加密RFID芯片,比如银行卡、公交卡等,我在代码中的验证前阶段把芯片信息都换成我自己的司机信息,确保读者测试时可以收到服务器的回复) 2. 海外版功能:点击切换当前语言。 3. 司机证件号码识别功能:读取司机证件上的证件号码,也可以用来与出行平台数据库的接单司机信息进行。I complete this whole project on my own . Including Android application programming,web server ( Apache + PHP + MySQL), and UI. 1.Map route planing。You can use mobile phone choose pick up & destination address,application provide address name hint and draw optimized route for user , then call car for you. 2.RFID authentication function:User can use application to scan driver license or other RFID hardware, then use NDK MD5 algorithm encrypt RFID number, and send it to Web Server Database, check with driver information and authenticate ID number , if ID number coherent with driver info , send back driver information to User and continue call car order . record user location and alert if ID not coherent. 3.Driver License Number Recognition : Application can recognize driver license digit number ,and also can send to web server for authentication & feed back result to user.
Stars: ✭ 935 (+567.86%)
Mutual labels:  car
Renault Radio Code List
List of all security codes required to activate Renault car radios.
Stars: ✭ 88 (-37.14%)
Mutual labels:  car
Self Driving Car
Automated Driving in NFS using CNN.
Stars: ✭ 105 (-25%)
Mutual labels:  car
Arduino Tachometer
Arduino car tachometer
Stars: ✭ 39 (-72.14%)
Mutual labels:  car
Genivi Dev Platform
GENIVI Development Platform
Stars: ✭ 81 (-42.14%)
Mutual labels:  car
Tesla Api
🚘 A Ruby gem and unofficial documentation of Tesla's JSON API for the Model S, 3, X, and Y.
Stars: ✭ 1,317 (+840.71%)
Mutual labels:  car
Android Obd Reader
Android OBD-II Reader application that uses pure OBD-II PID's Java API.
Stars: ✭ 739 (+427.86%)
Mutual labels:  car
Virtualcar
A virtual car. Because you wouldn't download a car, would you?
Stars: ✭ 114 (-18.57%)
Mutual labels:  car
Machinery Industry Press
本项目预计分享数千册电子书,98%以上为机械工业出版社原版电子书,其余为其它出版社出版的一些经典外文读物的原版译本电子书,每本书都配有当当网一键搜索,可查看书价格和简介。目前共计更新2542册图书
Stars: ✭ 85 (-39.29%)
Mutual labels:  car
Movel
Móvel - Dashboard for Raspberry pi car computer
Stars: ✭ 103 (-26.43%)
Mutual labels:  car
Imbmw
BMW iBus .NET MF SDK and hardware
Stars: ✭ 50 (-64.29%)
Mutual labels:  car
Node Bmw Client
A node.js powered interface for E38/E39/E53 + E6x/E9x BMW vehicles (Client side)
Stars: ✭ 68 (-51.43%)
Mutual labels:  car
3d Boundingbox
PyTorch implementation for 3D Bounding Box Estimation Using Deep Learning and Geometry
Stars: ✭ 95 (-32.14%)
Mutual labels:  car
Carrecognition
This is one of the best vehicle recognition applications. It can determine the car's license plate number, color, model, brand and year.
Stars: ✭ 34 (-75.71%)
Mutual labels:  car
Ttgo T Beam Car Tracker
TTGO-T-Beam Arduino Car Tracker - ESP32 + LoRa + GPS + GSM (optional)
Stars: ✭ 106 (-24.29%)
Mutual labels:  car
Carpark
CarPark is a small application that will allow you to keep the position of your car in memory just to find it easier and especially faster.
Stars: ✭ 16 (-88.57%)
Mutual labels:  car
Kotlin Obd Api
🚙 A Kotlin OBD-II API for reading engine data
Stars: ✭ 91 (-35%)
Mutual labels:  car
Arcarmovement
This is navigation example on google map. Here Marker move as vehicles moves with turns as uber does in their app. Using old and new coordinates animating bearing value the markers are moving.
Stars: ✭ 137 (-2.14%)
Mutual labels:  car
Googlemap
Google Map to use create path on map and play vehicle on path like Uber and Ola
Stars: ✭ 112 (-20%)
Mutual labels:  car
Fine grained classification
Fined grained classification On Car dataset
Stars: ✭ 103 (-26.43%)
Mutual labels:  car

RoadApplePi

RoadApplePi is a simple to install system for your Raspberry Pi designed to record dashcam videos and engine information from your car in real-time, and then make it all accessable from an easy-to-use Web App that can be viewed on your smartphone or computer.

Demonstration video: https://www.youtube.com/watch?v=-G1HIgr2cvU

Features

  • Dashcam Recordings with car stats: Whenever your RoadApplePi is powered on and connected to a webcam and Bluetooth OBD2 reader, it's recording every piece of information it can scrape up. Using hardware-accelerated video encoding, this results in smooth dashcam footage and an instrument cluster that shows exactly what you (and others around you) were doing at any given time.
  • Real-time OBD (II) Information: See what's going on under-the hood in real time with our "Dashboard" view
  • Web App Access: Many "carputers" based around the Raspberry Pi require the installation of a screen in your car, making them difficult to install. RoadApplePi works around this issue by giving you a modern web app that can be accessed from any internet-enabled device.
  • Offline Access: Need to view dashcam recordings while away from your RoadApplePi? Not a problem! The Web App works without an active connection to your Pi, and you can cache videos and instrument clusters for offline viewing.
  • Wireless connectivity: Most of the time, your car will be out of range of any WiFi network. RoadApplePi solves this issue by having the option to create a wireless network, specifically for ease-of-access to the web app. You also have the option to connect to an existing wireless network if you're in range.
  • Set it up and forget about it: If you're going all the way with an automated car power system, you won't have to touch your RoadApplePi again after the initial setup (see "Power and Time Options" for more details)
  • ..And more to come! RoadApplePi is free software, developed in my free time. Depending on your help and support I hope to implement other features, such as:
    • More OBD pids (car stats)
    • The ability to read and log engine trouble codes
    • Tune your ECM
    • Export dashcam recordings with superimposed obd information as a video for complete compatibility
    • Become fully self-aware (just joking ... I hope)

What you need

RoadApplePi is designed to work with as little or much as you have. Bare minimum, you'll need

  • A Raspberry Pi. Any model will work, but the RPi Zero W or RPi 3 is recommended since they have Bluetooth and WiFi built in. Otherwise, a USB Bluetooth/WiFi dongle is required
    • Side note: This software was developed almost entirely on a RPi Zero W with few issues. However, due to the slow processor on this model, some things run slow. The Real-Time dashboard runs around 15 seconds behind, and loading the instrument cluster on recorded videos may take 20-30 seconds (after which, they play fine). If you're opting to use a slower model, I recommend doing the initial setup of a spare Raspberry Pi 2/3 to speed up the software compilation process. After that, the SD Card can be moved to your pi of choice
  • Class 10 SD Card with Raspbian Stretch (optionally, the lite flavor): This software was written to work on Raspbian Stretch, but it may work on other OSs. YMMV. Also, I recommend using at least a 16GB SD Card to give you enough space for your dashcam recordings. I've been using the same 32GB SD Card for the past 6 months with no issues. This gives me enough space to retain, on average, 3 weeks of recordings. If you need help setting up an SD Card with Raspbian, see here.
  • A Webcam: All development was done with an old USB webcam, but any webcam should work including Raspberry Pi-specific ones
  • A power source: Powering the beast is the trickiest part of the whole build. If you're just getting started, I'd recommend a 2A car phone charger with a micro USB cable to power the Pi. This won't automatically/cleanly power off your Pi, but it'll get it powered until you have a better solution in place. See "Power and Time Options" for more details.
  • Bluetooth ELM327 OBDII adapter (optional) While technically optional, a Bluetooth ELM327 adapter is required to record engine information. They're around $10 on Amazon and completely worth the price.

Installation

  1. Flash Raspbian (lite) onto an SD Card and boot your Raspberry Pi, performing any initial setup needed to get it connected to the internet
  2. From the command line, run:
    sudo apt update && sudo apt install -y git
    git clone https://github.com/JVital2013/RoadApplePi
    cd RoadApplePi
    ./setup.sh
    sudo reboot
    
    The setup script may take several hours to run, depending on your Raspberry Pi model
  3. On another device, go to http://raspberrypi/. --Note: Your device hostname can be changed by running sudo raspi-config on your pi. I've changed mine to "roadapplepi". A feature to change this from the web app will be added in the future
  4. Put it into Access Point mode, specifying a network SSID and Password
  5. After verifying that you can connect to the newly created WiFi network, shut down your Pi and move it out to your car. Connect your webcam to the Pi and the OBDII reader to your car and power the Pi back on
  6. With your ignition in the "Run" position, go to http://raspberrypi/ (or other hostname if you changed it). From the settings menu, pair your pi with the OBDII reader. Most of them use "1234" for the PIN.
  7. Go for a drive and see how it works!

Power and Time Options

If you've made it to this point, great! You should have a fully functional black box in your car. However, you have most likely run into two issues

  1. Raspberry Pis don't come with any sort of Real-Time Clock (RTC). In an internet-less location such as your car, your pi won't keep the time when turned off. You can partially solve this issue by synchronizing the time on the Pi with the time on your connected device (e.g. phone) via the web app, but this isn't optimal.
  2. Powering your Pi with your car's cigarette lighter if fraught with peril. In many cars, these ports are not "always on" and turn off with the car. This won't gracefully shut down your Pi, corrupting all your data. Even if the port is always on, you don't want the Pi recording 24/7. There are power management options in the web app, but they again aren't optimal

To solve both of these issues, there are two solutions that I recommend

Mausberry Circuits 3A Car Supply / Switch and an RTC

Out of the two, this is the simplest option, although it requires two components. The Mausberry Circuits 3A Car Supply (https://mausberry-circuits.myshopify.com/collections/frontpage/products/3a-car-supply-switch-1) performs two functions: it steps the car voltage down to a Pi-Friendly level, and gracefully shuts the Pi down automatically when the car powers off. On their web site, they mention wiring the device into your battery and ignition. Don't fret, you don't need to go to this extreme: you can use fuse taps to tap an always-on line, and an ignition-powered line in your fusebox. For more details on this, take a look at the SleepyPi 2 option.

Unfortunately, the Mausberry power supply does not contain an RTC, so you'll need to purchase one separately (unless you don't care about incorrect times). For more information, see https://cdn-learn.adafruit.com/downloads/pdf/adding-a-real-time-clock-to-raspberry-pi.pdf.

Fair warning, I haven't actually tried this, but it should work fine.

SleepyPi 2

Although this option is more complicated in initial setup compared to the Mausberry, it's the path I opted for and I've had great success. The SleepyPi 2 (https://spellfoundry.com/product/sleepy-pi-2/) is inherently an Arduino-based "Hat" for the Raspberry Pi that can be programmed as needed. Out-of-the-box, the SleepyPi 2 performs 2 functions that we care about: voltage transformation to Raspberry Pi friendly voltages, and an easy-to-configure RTC. However, it does not automatically power off the Pi when the car is switched off.

  • It must be programmed to do this. I've already modified one of Spell Foundry's example programs to do just this, and is the RoadApplePi.ino file in this repository. To flash this sketch onto your Sleepy Pi, see https://spellfoundry.com/sleepy-pi/programming-arduino-ide/.
  • You need to build a voltage divider for the program to be able to properly read the current power status of the car. Thanks to Spell Foundry, here's the voltage divider you need to build:
    Voltage Divider
    You can build this circuit on whatever you would like, but I used a solderable breadboard. For those less well-versed in reading schematics, here's a quick explanation of what you're doing
    • (Not shown in this schematic) Wire an always-hot line from your fuse box to the VIN of the SleepyPi
    • Wire an ignition-dependent line into the voltage divider (signified by the 14.4V in the diagram)
    • Wire a ground wire from your car into both the voltage divider (very bottom of the diagram) and the 0V part of the power input on the SleepyPi.
    • The outputs of the voltage divider are on the right of the diagram. If you're using my SleepyPi sketch, wire the 3.09V output into Pin 14 of the Sleepy Pi, and the 0V output to the SleepyPi's GND
  • Once assembled, you're left with a 3-layer sandwich: your raspberry pi, the sleepy pi, and your voltage divider. Here's what mine looks like installed in my car: Isn't it purdy?

Licensing

RoadApplePi is released under the GPLv3. For more information, see COPYING

Credits

The following software has made RoadApplePi possible

Special thanks to Zipcar for making the dream possible! I'd been playing with the idea for this project for quite some time, when on March 14, 2017, Zipcar ran a competition to give away 314 Raspberry Pi Zero Ws. I was a lucky winner with this idea. Thanks to this stroke of luck, I've been able to share this fun project with you all.

Also, extra special thanks to my wife, who put up with me shoving this project under her nose every time I made a tiny bit of progress.

Donate

If you really like this project and want to give back, donations are accepted!

  • Bitcoin: 177S69eip9mqpygozXKq9tzggK5aMpzKxQ
  • Ethereum: 0x40E182eF00F6834936Db68A1868699B0b23D8094
    paypal
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].