MiCS5524 Calibration and Transfer Function

Breakout boards, sensors, other Adafruit kits, etc.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
djzman
 
Posts: 27
Joined: Mon Jun 27, 2016 8:19 pm

MiCS5524 Calibration and Transfer Function

Post by djzman »

Hello.

I'm using the MiCS5524 to remotely monitor a shop where forging in a propane oven takes place.

I have it successfully integrated with the ADS1015 A/D and an ESP8266 module. That all works great,
sending digitized raw values from the sensor via MQTT to a Pi based data aggregator.

Now, I'm trying to make sense of the data and somewhat convert it and calibrate it to PPM. I realize that
precisely calibrating the sensor is tough. I'm just trying to get it in the ballpark and have the output act
more like PPM than the raw sensor data.

Empirically, the raw data makes sense. When the forge is running, producing CO, I can see the output
steadily rise as expected. However, at the same time, a commercially available home CO alarm reads
0. So, I suspect that the the raw sensor output is very sensitive.

So, I took a look at the MiCS5524 datasheet and found a plot of "resistance" versus PPM. It's a log-log
relationship with negative slope. However, I noticed that the output voltage goes up as the concentration
of gas increases (at this point, I have to admit that I opened up an unlit torch and let the gas float over the
sensor ... come on, I can't be the only one to try this !). So ... the first question: does the Adafruit board invert
the behavior?


If not, there is a chance that the way I'm connecting it to the A/D (differential mode with a variable voltage
reference to subtract off the baseline voltage). I put the fixed voltage on A0 and the sensor voltage (divided by
two with a resistor network) on A1. I suppose if it's A0-A1 then it might invert things?

Ok, assuming that one of the two cases is true, I at least want to have the output behave like PPM . So, I'm thinking
that log-log equation is appropriate. Something like:

PPM = pow((V/3.5), -1.1792) ... if I read the values for CO off of the graph correctly (I'm not a math major :-) ). I'm probably
sure that there are other factors/adjustments to make. Second question: does this approach make sense?

For propane, I think it is something like PPM = 10500 * pow(V/0.065, -2.2561).

OH, forgot to mention ... to calibrate the curve on an absolute basis, I was just thinking of taking the sensor outside
and assuming it's close to zero CO. I did a little research and the "internet" says that the background level of CO is
less than 1 PPM. Maybe close?

Now, interesting, that the curves are different for different gasses. So, I'm thinking that I'll send two values and
say something like "if the gas is CO, the value is X" and "if the gas is propane the value is Y". Do note that the sensor
is way more sensitive for CO than propane or other gases.

Now remember this is all for rough alarming based on big changes from the baseline. Not precision measurement.

OK, third question ... does this approach make any sense? Anybody worked this out?

Thanks for any conversation on this topic !

Locked
Please be positive and constructive with your questions and comments.

Return to “Other Products from Adafruit”