Car Battery Monitor

Monitor the voltage of a 12V car battery in order to get early warning that the battery is becoming discharged

Similar projects worth following
Particle Photon based WiFi 12v car battery monitor. The idea is to monitor the battery voltage in order to get early warning that the battery is becoming discharged. The project is intended to be directly connected to the battery via its main terminals.

The program uses the deep sleep mode of the Photon between voltage measurements, in this state the current draw from the battery is ~1mA. It takes about 15 seconds to wake-up, connect to WiFi, take a measurement and send an event containing the measured voltage. With a sleep time of 1 hour, a 1mA current should have negligible impact on charge state of the battery in a car which is driven every day.

Over the air (OTA) firmware update is supported by a node.js script, which when the Photon wakes, sends an event to prevent it going back to sleep. Updated firmware can then be flashed using Particle Dev or Particle Build.

We have been having problems with our car battery becoming discharged at irregular intervals of a few weeks, but so far we have had no luck tracking down the cause. So I decided build a monitoring device in the hope that this might give me some more information.

Several problems needed to be solved:

  • A car is quite a hostile environment in the terms of temperature and moisture.
  • Significant electrical noise and surges can occur in a cars system.
  • I wanted to support firmware updates without having to remove the device from the car.

This is the circuit diagram for the project:

The battery monitor was been running continuously for 2 weeks now with no problems during some quite cold and wet weather. I have successfully done one over the air firmware update. So at least in the short term the problems seem to have been addressed!

The data so far logged in ThingSpeak can be seen in this graph. The peak at the beginning is due to the battery being charged with a battery charger.

  • 1 × Particle Photon
  • 1 × Traco Power TSR-1-2450 DC/DC Step-Down Converter
  • 1 × 1N4747 Zener Diode, 20V, 1 Watt
  • 1 × 1000uF 35V Electrolytic Capacitor
  • 1 × 0.1uF 50V Ceramic Capacitor

View all 11 components

View all 6 project logs

  • 1
    Step 1

    A detailed circuit diagram and firmware for the Particle Photon can be found on GitHub; Car Battery Monitor

View all instructions

Enjoy this project?



Padraig Boru wrote 04/23/2020 at 21:48 point

What is the size and pitch of the strip board that you have used?

  Are you sure? yes | no

Chris wrote 07/21/2020 at 07:48 point

Pitch is 2.54 mm, size - not sure looks like ~5x10cm, I guess you could do a rough count of holes from the photo.

  Are you sure? yes | no

Jeff wrote 05/07/2019 at 02:24 point

Awesome idea! I borrowed and modified your code to work on an ESP32 and log to my local InfluxDB/Grafana server. Great to be able to check on my car's battery (it's a second car I don't use much and tends to kill it's battery after awhile) and chart the change over time. I've got it setup to report the voltage every 4 hours or so, and then go back to sleep.

I did not use any of the capacitors or diode's in your circuit. Just a cheap Voltage converter. Voltage readings are accurate and it seems to work fine even after jumping the car and driving around a few times.

  Are you sure? yes | no

Chris wrote 05/07/2019 at 06:04 point

Thanks. At the time I built this I was not aware of ESP devices, but would use one now if a rebuilt it. I was quite paranoid about electrical noise killing it based on some googling hence most of the diodes, caps, etc.

What voltage converter did you use?

  Are you sure? yes | no

Jeff wrote 05/07/2019 at 12:30 point

I do love the Particle devices, I've used them on a few other projects. 

I used one of these for the voltage converter:

If the whole thing blows up, I think I'm only out about $5 for all the parts.

  Are you sure? yes | no

Jeff wrote 05/08/2019 at 12:17 point

I'm tempted to put a remote starter on the car, and tie this into it. Whenever the voltage drops too far, remote start the car for 10 minutes. Also add a switch so that it is only enabled when I have the car parked outside somewhere.

  Are you sure? yes | no

rockfishon wrote 08/28/2019 at 17:49 point

Jeff, do you mind sharing your Arduino code?  I was starting a similar project to monitor the state of the 3 batteries in my RV.

  Are you sure? yes | no

Martin wrote 09/20/2016 at 08:27 point

Please use a fuse! 1Amp or something, if you connect this directly to the battery terminals. Place it as close as possible to the battery (+) terminal. Without a fuse any short circuit will give you glowing wires and a severe fire risk. Car batteries can deliver 100s of Amps.

Otherwise connect it in the fuse box.

  Are you sure? yes | no

Chris wrote 09/20/2016 at 08:32 point

Agreed, this is a serious omission I will update the project. Thx

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates