Calibration procedure of a MQ135

Thread Starter

PsySc0rpi0n

Joined Mar 4, 2014
1,772
Please do let us know how this turns out. :)

Ron
I just did the test to both sensors and they responded kinda ok but values in normal conditions (clean air) are a bit higher than when I ran the tests at my house. I wasn't expecting higher values because at work, I am out of city centre.
I did the calibration (getRZERO()) procedure again outside of the office and then collected some results inside the office!
Sensor with original 1kΩ resistor I got higher values than the sensor with 10kΩ.
 

Reloadron

Joined Jan 15, 2015
7,523
Sensor with original 1kΩ resistor I got higher values than the sensor with 10kΩ.
While not quite what I expected these sensors are not quite an exacting science. You can likely get them to read the same with some circuit modifications but that gets into hacking the modules. There is no easy way to know which module is close to the truth.

Ron
 

Thread Starter

PsySc0rpi0n

Joined Mar 4, 2014
1,772
While not quite what I expected these sensors are not quite an exacting science. You can likely get them to read the same with some circuit modifications but that gets into hacking the modules. There is no easy way to know which module is close to the truth.

Ron
Yeah, sensors seems more something to play with than to build anything reliable.
I'm now testing a CCS811 and this one seems not to need of calibration, as it is performed by software, if I understood it correctly!
I need to study more about this CCS811 though, and tVOC (total volatile organic compounds)!
 

Reloadron

Joined Jan 15, 2015
7,523
If you are using a uC like for example an Arduino Uno it's convenient because it has an I2C bus out. My brief read is the sensor operates on 3.3 volts so it can be easily powered from an Arduino Uno 3.3 volt output line. It also features two addresses depending on if the address line is held high or low. Also looks like the chip is available on a module which is nice. Note that I have not really researched this part but what I see is at a glance.

Ron
 

Thread Starter

PsySc0rpi0n

Joined Mar 4, 2014
1,772
If you are using a uC like for example an Arduino Uno it's convenient because it has an I2C bus out. My brief read is the sensor operates on 3.3 volts so it can be easily powered from an Arduino Uno 3.3 volt output line. It also features two addresses depending on if the address line is held high or low. Also looks like the chip is available on a module which is nice. Note that I have not really researched this part but what I see is at a glance.

Ron
Indeed.
I'm using Arduino Nano 33 BLE Sense and Sparkfun CCS811.
I already ran 2 sketches and they seem to work. However, I find something weird which is that this sensor sets a lower limit for CO2 values at 400ppm. I'm not sure why this limit is set.

There is also something I still didn't fully understood. It's why this module has a INT pin. If this pin only signals where there is data available to be read (by the uC ADC) and we can read data whenever it is available, why the need of an INT pin?

I tried these 2 codes for now.

Basic reading:
https://github.com/sparkfun/SparkFu...ple1_BasicReadings/Example1_BasicReadings.ino

WAKEUP and INT
https://github.com/sparkfun/SparkFu...akeAndInterrupt/Example5_WakeAndInterrupt.ino
 

Reloadron

Joined Jan 15, 2015
7,523
I find something weird which is that this sensor sets a lower limit for CO2 values at 400ppm. I'm not sure why this limit is set.
I really don't know. I looked at the library code and I still don't know why that is done other than the 400 PPM is a universal average. Maybe another member has a thought on this?

There is also something I still didn't fully understood. It's why this module has a INT pin. If this pin only signals where there is data available to be read (by the uC ADC) and we can read data whenever it is available, why the need of an INT pin?
Again, I don't get it either. Pin 3:
nINT is an active low optional output. It is pulled low by the CCS811 to indicate end of measurement or a set threshold value has been triggered.
My best guess is the actual chip allows a threshold to be set and if that threshold is exceeded pin 3 will go low. Purely a guess as to the actual chip.

Ron
 

Thread Starter

PsySc0rpi0n

Joined Mar 4, 2014
1,772
Thanks for your thoughts @Reloadron .
Anyway, we are going off topic right now.
As for the MQ135, I already stated here at work that this sensor is not suitable to anything we need some reliability so I think I'm going to stop working with it for now, and focus on CCS811 a bit more. Maybe I'll create a thread on it.

Thanks
Psy
 

Essam ali

Joined Dec 16, 2023
5
When you refer to R_Load, you meant the potentiometer at the back of the module, right?
However, the R_Load in the project you mention is a different resistor in the module. Not the potentiometer.
And the project you mention (as others I also read yesterday), suggest to change that R_Load (which is an SMD resistor on the back of the module PCB) to a 22kΩ resistor. In that regard, I replaced the original 1kΩ resistor that comes with the sensor module with an 18kΩ one because I didn't have a 22kΩ at home to replace it.

But we have R_0 which is the same as R_S but at a specific scenario of 100ppm of NH3 in clean air, if I understand it correctly.
Then we have that rpot that I'm not sure what to call it. The datasheet obviously says nothing about it because it's not part of the sensor itself.

Regarding the rpot, this module comes with a 10kΩ. Right now, I can't runway from that. I don't have any rpot at home of the same size and with higher resistance.



This is done by reading the A0 pin of the sensor using the A0 pin of an Arduino, right?


Yes, this is just to have a proof of concept to show to the "bosses", so yeah, no worries with a hobby level outcome!
i want to ask a small question please, how to replace the Rload on the sensor. By adding a new external resistor? and if yes, what would i connect the resistance between.
 

Reloadron

Joined Jan 15, 2015
7,523
Which module as there are several. This is one example of a MQ 135 module.

MQ 135.png

This module offers a digital and analog output. Rload is the 1 K resistor. You would remove it and replace it with a Rload of your choosing. This is the module.

Ron
 

Essam ali

Joined Dec 16, 2023
5
Which module as there are several. This is one example of a MQ 135 module.

View attachment 310248

This module offers a digital and analog output. Rload is the 1 K resistor. You would remove it and replace it with a Rload of your choosing. This is the module.

Ron
Thanks for your effort, i want to ask another question, can i join the external resistance by the method of welding the resistance in the "102" part in the sensor, 102 part is the buikt in Rload. or just connect it to the Ground and the A0 pins of the sensor?
 

Reloadron

Joined Jan 15, 2015
7,523
By welding I assume you refer to soldering. A resistor labeled 102 is a 1,000 ohm resistor or simply a 1.0 K ohm resistor. I still have no idea what module you have? Is it like the link I posted to you?

Ron
 

Reloadron

Joined Jan 15, 2015
7,523
Unsolder it. Even a single surface mount part can be desoldered and removed and replaced. You do need a soldering pencil. Just the basics. If you have not done it before I suggest finding a scrap board and practice a little.

Ron
 
Top