The idea for this project originated from a need to monitor and collect data during the testing of Li-Po batteries. Specifically, Li-Po batteries used for a FSAE electric car, which pushes the batteries to near their specified limits. The car uses 600, 18650 size batteries, and before purchasing all 600 cells, the team wanted to simulate various loading conditions on a smaller amount of batteries from various manufacturers.
There were two options, purchase a load tester that could simulate the desired load (over 200 amps) for thousands of dollars, or... Build one!
Pictured above is the test rig constructed to test batteries at three different levels of load. Each level of load turns on a corresponding amount of H3 car headlight bulbs. When powered, these bulbs are so bright that they need a tinted shield to be viewed, as shown below.
To monitor the batteries, we thought; why not use an IOT device? Three Particle Argons are used to monitor the following parameters: Is the circuit on/off? Circuit current, and circuit voltage. Implementing the use of webhooks within our code, and Thingspeak to graph collected data, the IOT devices prove themselves as a simple yet effective method of data acquisition. A flow chart illustrating the bi-directional communications can be seen below, all three of the Argons publish data via webhooks, and subscribe to a set of data.
When the circuit is turned on, the first Argon in the chain of communication sends a confirmation to Thingspeak, via a webhook and data collected via pin D0. This data is either a 1, or a 0. A reading of 1 corresponds to the toggle switch in the "ON" position, and a reading of 0 corresponds to the toggle switch in the "OFF" position.
The second Argon in the chain of communication measures the voltage of the circuit. When this Argon is first powered up, it receives confirmation from the webhook that the toggle switch is on, and turns on the LED for 5 seconds. Once this communication is completed, the second Argon can begin sending the voltage data collected to Thingspeak via a webhook. This voltage data is scaled by a factor of 4 within the code, because a voltage divider is used to drop the voltage from 12v to 3v for the signal to be read by the Argon. This data is collected via the A0 pin.
The third, and last Argon in the chain of communication measures the current of the circuit. When this Argon is first powered up, it receives confirmation from the webhook corresponding to the voltage sensor data. When this data is confirmed, the LED is turned on for 5 seconds. Once this communication is completed, the third Argon can begin sending the current data collected to Thingspeak via a webhook. An equation is used within the code to convert the voltage reference signal to a current value (String(100.42*(CurrentSensorRef)-251.37), where CurrentSensorRef is pin A0).
Lastly, the first Argon in the chain of communication receives a signal from the current sensor webhook, once this signal is received, the LED turns on for 5 seconds.
In conclusion, the Particle Argons are a simple and effective way to monitor and collect data for our project. The Argons can be easily reformatted to accept different types of sensors, and can send the collected data to various different monitoring packages such as Thingspeak.
Check out this video for a more detailed explanation of the battery testing rig!
Thank you for checking out our IOT battery testing project!