ESP8266: Calibrating the Wifi Scale With Temperature Compensation

In my last post I talked about my self made scale. There are plenty of applications for a sensor that can sense the weight of things. But I guess the scale should not be tared (or set to zero) every time the ESP8266 wakes up from sleep. The load cell is basically a resistor that reacts to tearing and pushing of the metal bar. But like all resistors, they are prone to temperature drift. This means if I want to measure the weight of an object over a long time it either has to be under constant (room) temperature or I compensate for the drifting readings from the sensor by measuring the temperature and correcting the drift by software.

So for this test run I put the scale attached to the NodeMCU in a plastic box on my balcony. Together with the weight (drift) I’m also measuring the temperature. My hope is that this way I can learn how the load cell drifts with temperature. So now I hope for a cold night and a hot day to get a big range for my test;-)

Update (next day)

So with thingspeak I could collect some good samples: The temperature went from 15°C up to 21°C and a scatter plot showed that the drift of the load cell was pretty much linear in this range:
Scatter Plot of the load cell’s temperature drift: on the Y axis
is the deviation from a tared cell, on the X axis the temperature
So I got a sloap and an offset for line fitting into this scatter plot using the SLOAP and INTERCEPT functions in Excel and Google Spreadsheet. I then used these values to find the offset depending on the current temperature. Now see the result:
The uncompensated deviation from zero
The temperature at the same moment
The weight calculated after subtracting the temperature drift
Looks pretty good to me! I am aware that I made some possibly wrong assumptions, but hey, this is hobby science and pragmatism is all I can afford with the little time I have for this project;-).
blank
Posted by Daniel Eichhorn

Daniel Eichhorn is a software engineer and an enthusiastic maker. He loves working on projects related to the Internet of Things, electronics, and embedded software. He owns two 3D printers: a Creality Ender 3 V2 and an Elegoo Mars 3. In 2018, he co-founded ThingPulse along with Marcel Stör. Together, they develop IoT hardware and distribute it to various locations around the world.

4 comments

  1. It look very promising, but the Compensated Weight curve does clearly show the result.
    I assume the unit for Compensated Weight is grams. The y scale span is 150 and your drift is only -5. So even uncompensated the curve would show pretty much the same. -LCL

  2. Hi Dani, are you using some table for offset in each temperature point (previously measured) or you are using some function derived from the measurement ?
    Thanks, Peter

Leave a Reply