MQ-131 sensor

Hi all together,

i guess here are a lot of my questions answered:
https://forum.arduino.cc/index.php?topic=447393.0

but there are some questions left.

I use a cheap breakout board for the MQ131.
The RL is announced with 1kOhm.

the basic implementation is from
sandboxelectronics.com/?p=165

But since i use the raspberry to read out all the stuff with an ADS1115, minor changes had to be made.

My implementation can be found here (if anyone is interested):

these two documents show a complete different behavior (i suppose the first is correct!?):

the first shows that Rs/R0 is basically 1 when exposed to fresh air. (which i corrected in the python script)
I understand that the resistance is rising with higher concentration of the gas.

but if i calculate that i end up with 20 ug/m3 as 0.01ppm/10ppb as shown in the graph.
That seems a lot to me. (source: https://www.lfu.bayern.de/luft/doc/ozoninfo.pdf)
Google told me that today the concentration should be around 2ug/m3.

And the raw value measurement in regular air results stretch from 200 to like 800 (of i believe 2048 which should be the max for this ADC). I also verified that the ADC reading is correct, 5V max, and with like ADC value 800 ~ 1.2V over RL.

Is the humidity and temperature such a big thing?
If not. How can these huge differences be explained?

My goal is to measure the ozone concentration inside the building. So i thought the temp should be constant enough and the humidity as well.
We bought an ozone generator and i would like to see the concentration in that room over time and if it is clear to enter.

Edit:
Sorry it was super late last night :wink:
My background is a degree in electrical engineering and like 15 years of experience as a software engineer.

subbamaggus:
Is the humidity and temperature such a big thing?
If not. How can these huge differences be explained?

So your overall question is more of a meteorological question? What's the difference between humidity and temperature? Or what did you want to ask?

I don't think I'm allowed to send you the scripts from my lectures, therefore, I found a tutorial that explains this as simple as possible I think.

https://cran.r-project.org/web/packages/humidity/vignettes/humidity-measures.html

Hi,

Thank you for your answer.

I guess my goal was to get a better feeling how sensitive the measurement is (experience).

If the ozone measurement is basically not doable without humidity/temperature measurement and the according corrections.

Today i tried the "calibration" which is basically a "tara" of the calculation.
The raw value for clean air varies a lot.
Even for the same temperature and humidity.

Inside my condo ... from 200 to like 800.

If that is "normal" it leads me to the assumption that side effects are bigger than the real data.
In other words noise is bigger than the signal.
At least without temp/humid measurement.

Or (what could help) that i oversee some details...?!

Ah, sorry. I have never tried this kind off experiment.

That is a horrible datasheet! There is nearly no way to get a suitable transfer function in my opinion.

No matter the sensors electrified or not, if exposed to adverse environment for long time, such as high humidity, high temperature, or high pollution etc., it will influence the sensors’ performance badly

Maybe this person has some better information in his library:

:wink:

I tried to answer to the topic i refered to. The owner of this github project responded there... he is hooked up to this board here :wink:
But the forum did not let me.

I also went through that implementation.
But i do not have a humid/temp sensor. (Yet)

If that is necessary i will get some...

The transfer function itself (theoretically) works. I implemented a loop and output table in that script... and it correlates ok with the datasheet (at least one of them)

So raw value to calculated is ok for me. But the variation of the raw value is what bothers me.

Yes, I agree, you need a temp and humidity sensor. The correlation of the humidity and the resistance ratio is very badly explained in the graph. I hope you can make something good out of that.

I believe that with the measurements you are making, the results should be near to exact even without the temperature measurement since the test conditions were 20°C and 55% RH. But, maybe you can make an estimation using your mobile phone?

I also think this project is way out of my league and I don't know if this is of any help.

i do have a manual gauge for humidity and temp.
But both are quite normal 20°C and like 50% hr today.

So i thought i can start without correcting both.

And even if they would have to be corrected i would expect sth constant. Maybe the value is not accurate but constant.
But the values are so different if i just let it run inside my appartement.
Walking around with the sensor would influence the value more than anything i would consider possible.

maybe someone can shed some light in that :wink:

subbamaggus:
i do have a manual gauge for humidity and temp.
But both are quite normal 20°C and like 50% hr today.

Then you had the perfect test conditions, right?
Did you figure out your problem? I'm interested. :smiley:

Unfortunately the MQ series of sensors respond to lots of different gases, and it is generally impossible to distinguish between them.

But, if you are sure that ozone will be the main gas to which your sensor is responding, then the ONLY way to calibrate that sensor is to compare its readings with those of an certified commercial ozone sensor, for several ozone concentrations and environmental conditions that you expect to encounter. And you will need to recalibrate frequently.

i would like to see the concentration in that room over time and if it is clear to enter.

The MQ series of sensors is NOT suitable for use in human safety applications.

Hi,

thank you a lot for your answers!
At the beginning i was looking for a "real" measurement device.
The only thing i could find is around 500-600eur. There was no way to find anything to rent/borrow.

The description for the ozone generator is that the gas is produced with the UV approach, which should not generate any side effects (meaning other gases like NOx ...). Another thing to mention for a ozone generator is that the room should be clear after like 30min. So i thought the sensor would not be influenced by other gases. (closed room, UV generated with little side effects, constant temperature, constant humidity).

So i thought there is no real danger in creating a device that "proofs" this. (If i respect the 30 min). And another thing is that the 8h "risk" concentration is 180ug/m3 (warning), 240ug/m3 (critical). The important thing is that ozone is bothersome from like 40ug/m3 (you can smell it).

here a measurement with pretty settled values, and i just used a pastic plate to get some air to the sensor.
what i can picture is that i changed the temperature of the sensor itself.

https://drive.google.com/drive/folders/1W6sD5xLNXZXACMb45Nc_-DWDuFQy61kk

Description of the sensor that i bought:
MQ131 Ozone O3 Gas Sensor Sensing Module Detection Concentration Range 10PPB-2PPM

https://www.lfu.bayern.de/luft/doc/ozoninfo.pdf says:
200 µg/m3 = 0,200 mg/m3 = 0,100 ppm = 100 ppb

so my measurement should be right in the work range (20ug/m3 to 4000 ug/m3)

i also tried to "protect" the sensor with a towel... but maybe it gets to hot then...
the internal heater is not able to keep the sensor temperature at a constant level, i suppose.

maybe it is just a "too bad", at least it was not super expensive.... i would like to know if that is already the case...

anyways, thank you for your input!

Hi,

so i did a raw value chart over a day.
the screenshot is uploaded to my gdrive.
scrn20201224075007.png

i did not turn on the ozone generator, the sensor was just sitting on the dining table for like 24h.
sometimes the door to the paddio was opened so a little temperatur or humidity drop was possible.
humidity and temp (measured with my analog gauge) did not change much (not more than like 1-2 ° C).

even different gases should not play a bigger role (at least my assumption).

if this is a "normal" behavior of the sensor, thats fine... i would like to know if that is the case.

because, i dont think this can be done with a separate humidity/temp sensor to correct this.

A few comments, mostly from a science pov.

The MQ series of sensors is indeed not specific, that is your first problem: know what you measure! Ozone, or one of the other gases the sensor is sensitive to, especially NOx is a prime candidate in outside air. If you are near a major road (as are pretty much all buildings in this world) you WILL have significant quantities of NOx in the air, a major pollutant from internal combustion engines.

That immediately explains your variation in readings from "clean" air, which I believe to you is a synonym for untreated outdoors air.

The ADS1115, by the way, reads 0-32765 single ended. It has a gain option that you can set. It has its own fixed reference voltage, so changes in supply voltage (the MQ131 is ratiometric) will result in changes in your readings. Readings of 200-800 means you are at the very low end of the range, measuring very low voltages. That by nature is difficult, you can improve the reading by increasing the ADS1115's gain, but you also have to look at theMQ131 itself: how stable can you expect the signal to be, really, especially so close to the limit.

If what you really need to know is whether a room is safe to enter from an ozone perspective, put down the 500-600 Euro and be done with it. Besides the unsuitability of the sensor you picked for such an application, you don't want to risk your contraption malfunctioning and someone getting hurt by the ozone. If the commercial sensor malfunctions you still have to get rid of the body, but at least it's not your responsibility.

Hi,

One thing i like to measure is the safety.... the other one the efficiency of the generator (i bought a second one).

I know that the ads has a gain setting. But i just started off of default values. And a reading of like 700 was like 1.3 V. Which lead me to the conclusion that the max is 2048(5V). Unfortunately i have no potentiometer here and no variable power source either. Thats why i assumed it is that way.

Another note... since i measured in my appartement i did not expect a higher concentration of NOx especially not a fluxuating concentration.

The datasheet of the ozon generators says that they produce almost nothing when it comes to NOx (UV type compared to the cheaper plasma type).

I was thinking that the slope of ozone concentration could give me the hint if one or the other generator is better or worse.

As soon as i have the possibility to test the ads. I will share my results.

Then another question: doesdoes anybody know about better sensors than the mq series?

Sorry if i am too bad equipped or blunt with those thoughts... i am working on that :confused:

Hi,

well last night was christmas eve, and here in germany we get our presents :wink:

so i got a whole box of sensors and actors for the arduino :smiley:

basically i was able to check the range for the ADS1115, and the range goes from 0 to 2047.
so the sensor should not be in the range for measuring voltages should be not tooo sensitiv.

i also did a measurement with the generators turned on. and the raw reading goes down to like 50-60.
which is way over the measurement range that is specified for the sensor.

i will also calculate the resistance and post them here.
but i will call it a day...

Merry X-Mas to everybody!!

subbamaggus:
basically i was able to check the range for the ADS1115, and the range goes from 0 to 2047.

Are you sure that's not an ADS1015? That's a 12-bit ADC (11-bit with sign) vs the ADS1115 which is 16-bit.

Are you sure that's not an ADS1015?

Even if the seller claims a module to be an ADS1115, lots of counterfeit or mislabeled modules have been reported to contain the ADS1015 instead.

You made me wonder... and a check on digikey confirms... the ADS1015 is indeed much cheaper (about USD 1.7 vs USD 3.7 each @100 qty) than the ADS1115. That explains why you may have mislabelled boards!

The marking on the chip itself should still be correct, though.

this is my module (the best i could get)

if the chip is fake/not the good one... this would be super hard to tell for me.

i attached a "joystick" module to the ads.
and it shows that the middle position is like in the "middle" range of the values (~1200 with little variation).
minimum value is 0 and max is 2047.

this is the image from the raw values of the ozone sensor:


(i did not have a chance to upload it somewhere else than the google drive before, but this should be easier to see)

looks to me that the value is not at the edge of the value range.
but i might be wrong.

Use a magnifying glass and see what the markings on the big chip say. It's always a good idea to know what you really have.

this would be super hard to tell for me

Why? Either it gives you a 15 bit result for the maximum voltage on an input, or not.

This recent thread discusses the issue.