Skip to content
An IoT device that enforces better driving habits.
C++ Other C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


SpeedSpy is aimed at correcting (or monitoring) one of the most common driver habits: excessive speeding. The project consists of a Particle Photon configured with an Adafruit Ultimate GPS Breakout and external antenna, a 4-ohm speaker, an external LED, and an Adafruit Mono 2.5W Class D Audio Amplifier. Together, along with a Blynk app integration, SpeedSpy monitors your vehicle's location and speed, pushes that information to the Blynk app, and emits a shrill alert via the speaker when the speed limit for the current road is exceeded.

A demo of SpeedSpy can be viewed here.


The core of SpeedSpy lies in the Adafruit Ultimate GPS. The GPS unit interfaces with GPS satellites via the external antenna, providing the Photon with the approximate latitude, longitude, altitude, and speed of the device. The latitude and longitude provided by the GPS are used to determine the speed limit of the current road. If the current speed reported by the GPS exceeds this speed limit, a tone is emitted from the speaker and the Blynk app is sent a notification. The tone's note denotes the degree to which the current speed limit is exceeded. Each increase in 5 miles per hour over the speed limit results in the tone going up a note on the C-major scale.

The hardware components of SpeedSpy are fully integrated with the vehicle. The Photon, speaker, antenna, and external LED are designed to sit within the console of a vehicle. The Photon is powered via USB to the vehicle's stereo (a cigarette lighter DC socket would also work). Internet connectivity is achieved via tethering to a mobile phone. The external LED indicates whether or not the GPS has acquired enough satellites. A steady flashing LED indicates that the GPS is currently acquiring satellites while an occasional flash indicates satellite acquisition (a "fix").

The SpeedSpy Blynk app includes a map widget for plotting locations where readings were taken along with the speed at the time of the reading. The below image depicts the interface of the Blynk app with a GPS coordinate selected, showing a speed of 43 miles per hour for that reading.


The SpeedSpy Blynk app also includes a mute button for silencing the speeding alarm, a speedometer for visualizing the current GPS speed, and two indicators that respectively signal speeding and a GPS fix.

Wiring diagram

Wiring diagram


The Particle Photon runs SpeedSpy's firmware, connects to the internet and interfaces with Blynk, and handles reading from the GPS and driving the speaker. The Photon is powered by the vehicle's stereo via USB. WiFi connectivity and Blynk functionality is provided via a tethered cell phone.

The Adafruit Ultimate GPS is a GPS board that is powered by the Photon and delivers data containing location and speed. Its ability to acquire a satellite fix is enhanced through connection to an external antenna via a SMA to uFL adapter.

The speaker is driven by an amplifier that allows for volume control via an onboard trim potentiometer.

Lastly, an external LED is connected to the FIX pin of the GPS board to allow easy visualization of satellite connectivity from the console of the vehicle. Without it, it would be impossible to know if the GPS had acquired a fix without opening up the console of the vehicle and inspecting the GPS board.

Shown below are the connected hardware components of SpeedSpy outside of the vehicle's console enclosure.


The main breadboard with the Photon, amplifier, and GPS unit installed is show below.


You can’t perform that action at this time.