Air Quality Sensor
-
Hi all,
I have my library for reading sensor. It is open source and its name is OpenSensor. I think that it's useful for every body.
Besides, I have my a monitoring system in real time using Arduino, MQ2, MQ135, MG811, GP2Y10 sensors and shield wifi ESP8266. It use OpenSensor library to read value from sensor and push it to database of WebServer by ESP826.
This is link: https://github.com/tantt2810
Hoping it helpful for all,
Good job,
-
Hi all,
I have my library for reading sensor. It is open source and its name is OpenSensor. I think that it's useful for every body.
Besides, I have my a monitoring system in real time using Arduino, MQ2, MQ135, MG811, GP2Y10 sensors and shield wifi ESP8266. It use OpenSensor library to read value from sensor and push it to database of WebServer by ESP826.
This is link: https://github.com/tantt2810
Hoping it helpful for all,
Good job,
@tantt2810 Thanks
#define RSRO_CLEAN_AIR_FACTOR 3.7 //The value of Rs/Ro in clean air. According chart in datasheet. #define RL_VALUE 20 //The value of the load resistance on the board, in kilo ohms. #define GET_RO_SAMPLE_TIMES 10 //The times of calibrating #define GET_RS_SAMPLE_TIMES 10Can you please elaborate on how to calibrate the sensor?
Also how do you connect it if it comes on the board like this?http://i.ebayimg.com/00/s/NjAwWDYwMA==/z/vMIAAOxycD9TTOVW/$_1.JPG
-
@tantt2810 Thanks
#define RSRO_CLEAN_AIR_FACTOR 3.7 //The value of Rs/Ro in clean air. According chart in datasheet. #define RL_VALUE 20 //The value of the load resistance on the board, in kilo ohms. #define GET_RO_SAMPLE_TIMES 10 //The times of calibrating #define GET_RS_SAMPLE_TIMES 10Can you please elaborate on how to calibrate the sensor?
Also how do you connect it if it comes on the board like this?http://i.ebayimg.com/00/s/NjAwWDYwMA==/z/vMIAAOxycD9TTOVW/$_1.JPG
@alexsh1 said:
Also how do you connect it if it comes on the board like this?
http://i.ebayimg.com/00/s/NjAwWDYwMA==/z/vMIAAOxycD9TTOVW/$_1.JPGeasy here, the AOUT is the one you will put on an analog one.
the DOUT (Digital OUT) is just an alarm linked to a level you could change on the board)
-
@alexsh1 said:
Also how do you connect it if it comes on the board like this?
http://i.ebayimg.com/00/s/NjAwWDYwMA==/z/vMIAAOxycD9TTOVW/$_1.JPGeasy here, the AOUT is the one you will put on an analog one.
the DOUT (Digital OUT) is just an alarm linked to a level you could change on the board)
-
@epierre said:
the DOUT (Digital OUT) is just an alarm linked to a level you could change on the board)
So DOUT is not used. Just AOUT?
-
@epierre For the air quality purpose which sensor would you recommend TSG-2600 or TS2602? They are slightly different, but both detect aiir contaminants (based on ppm of H2 and EtOH).
So far, I got MH-Z14A and the Dust sensor working with OLED screen and Domoticz and I just want to add 1-2 sensors to finish the project.
-
How do i get the Airquality sensor to show in domoticz? I use the AirQuality example from the library and MQ2.
I can see that it works in the serial, and it shows as a node under the mysensors hardware, but nothing in log or the device list when i expose it for gas. -
How do i get the Airquality sensor to show in domoticz? I use the AirQuality example from the library and MQ2.
I can see that it works in the serial, and it shows as a node under the mysensors hardware, but nothing in log or the device list when i expose it for gas.@Tore-André-Rosander said:
ut nothing in log or the device list when i expose it for gas.
huh you're on which version of mysensors ? have you tried the console (in arduino programmer) to see if there are some readings or a good wiring ?
-
@epierre Hi! The dev branch (v 2) and the raspberry pi gateway (nrf24 directly connected to RPi GPIO). This is what i get in the serial console when i test with gas from a lighter:
Starting sensor (RNNNA-, 2.0.0-beta) Radio init successful. find parent send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc: find parent send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc: read: 0-0-255 s=255,c=3,t=8,pt=1,l=1,sg=0:0 parent=0, d=1 req id send: 255-255-0-0 s=255,c=3,t=3,pt=0,l=0,sg=0,st=ok: req id send: 255-255-0-0 s=255,c=3,t=3,pt=0,l=0,sg=0,st=ok: read: 0-0-255 s=255,c=3,t=4,pt=0,l=2,sg=0:5 send: 5-5-0-0 s=255,c=3,t=15,pt=0,l=2,sg=0,st=ok: send: 5-5-0-0 s=255,c=0,t=17,pt=0,l=10,sg=0,st=ok:2.0.0-beta send: 5-5-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=fail:0 id=5 Init complete, id=5, parent=0, distance=1 0 LPG:0ppm CO:0ppm SMOKE:0ppm 0 LPG:8ppm CO:47ppm SMOKE:18ppm send: 5-5-0-0 s=0,c=1,t=37,pt=2,l=2,sg=0,st=ok:95 0 LPG:0ppm CO:0ppm SMOKE:0ppm send: 5-5-0-0 s=0,c=1,t=37,pt=2,l=2,sg=0,st=ok:0``` -
@Tore-André-Rosander said:
t=37
I don't know, would it be possible to have someone knowing the difference of the gateway with domoticz for 2.0 ? here it seems correct to me, some value are well seend from the sensor, so it is between the gateway and domoticz for me.
-
@epierre I am attempting to apply this code to work with the MQ-8. I am trying to get rid of all of the radio and gw stuff that is in the code. Do you have anything that just calibrates the sensor and reads out the value without of all these other libraries?
-
@epierre Also, what is the purpose of #define MQ135_MAXRSRO 2.428 //for CO2
#define MQ135_MINRSRO? I don't see them being referenced after they're defined?@tuimanso said:
@epierre Also, what is the purpose of #define MQ135_MAXRSRO 2.428 //for CO2
#define MQ135_MINRSRO? I don't see them being referenced after they're defined?Datasheet defines min and max values they should guarantee, this is an application of it.
if(validinterval<MQ135_MAXRSRO && validinterval>MQ135_MINRSRO) { -
Your previous message
Hello,
I have a question about the MQ-8 sensor module . The potentiometer that is soldered onto the board, is it to control the sensitivity of the LED light or for the sensor itself? According to the datasheet for the sensor, the RL (load resistance) for the sensor should be at minimum 10k Ohm, yet I only see an SMD 102 resistor on the board, which is a 1K Ohm resistor. I have used a multimeter to connect the 5V pin and the AOUT pin, and I get precisely a measurement of about 1K Ohm... Does that mean that I should connect a load resistor to this?
This value seems very important since it is referenced in the code, the RL is part of the calculations, yet it is already pre-written 10K ohms...
Please Clarify
Thanks -
Hello everyone,
I have a few of these sensors, but lately I have been concentrating on a MQ131 ozone sensor module from SainSmart. I am building an array utilizing MQ gas sensors and an Arduino that can be attached to a drone to measure vertical concnentration profiles of ground level ozone.
I am using an ozone generator and a 2B Technologies Ozone Monitor for the calibration of the sensor.
I have done the 24 hour burn in period on my sensors.
I have warmed them up to get steady values on my serial monitor.The problem that I am having is that I am creating nearly 20,000 ppb O3 and the analog output is only around 25 to 30 units. It works out to around 922 ppb per unit.
Example before ozone is added the sensor reading is steady at 41. After raising the concentration of O3 to 18,727.5 ppb the reading drops to around 17-18.
Recently I have added a 22,000 ohm resistor in series with the analog output so that my readings start out at 971. But I am still only dropping around 20 units to 951 when ozone levels rise to nearly 20,000 ppb.
My question is how do I use a larger range of the units. There are 1023 possible values and I would like to see my reading drop from 971 to maybe the 200 area so that I am using more of the range. I would like each unit to be worth about 0.5 ppb. Ambient outdoor concentrations very rarely go higher than maybe 150 ppb so with the setup I have that would not even register on the serial output.
Thank you in advance for any help.
-
Hello everyone,
I have a few of these sensors, but lately I have been concentrating on a MQ131 ozone sensor module from SainSmart. I am building an array utilizing MQ gas sensors and an Arduino that can be attached to a drone to measure vertical concnentration profiles of ground level ozone.
I am using an ozone generator and a 2B Technologies Ozone Monitor for the calibration of the sensor.
I have done the 24 hour burn in period on my sensors.
I have warmed them up to get steady values on my serial monitor.The problem that I am having is that I am creating nearly 20,000 ppb O3 and the analog output is only around 25 to 30 units. It works out to around 922 ppb per unit.
Example before ozone is added the sensor reading is steady at 41. After raising the concentration of O3 to 18,727.5 ppb the reading drops to around 17-18.
Recently I have added a 22,000 ohm resistor in series with the analog output so that my readings start out at 971. But I am still only dropping around 20 units to 951 when ozone levels rise to nearly 20,000 ppb.
My question is how do I use a larger range of the units. There are 1023 possible values and I would like to see my reading drop from 971 to maybe the 200 area so that I am using more of the range. I would like each unit to be worth about 0.5 ppb. Ambient outdoor concentrations very rarely go higher than maybe 150 ppb so with the setup I have that would not even register on the serial output.
Thank you in advance for any help.
@AtmosCheme the datasheet gives the MQ131from 1 to 1000 ppb, so you reach the limit obviously
-
@AtmosCheme the datasheet gives the MQ131from 1 to 1000 ppb, so you reach the limit obviously
Thank you for the reply epierre.
I was going off of the SainSmart website that says the range for their module is 10 ppb to 200 ppm. That would cover 10 ppb to 200,000 ppb.
The values keep dropping down as more and more ozone is added, I'm not thinking it is a problem with range as much as a problem with resolution. I have gone as high as around 50,000 ppb and continue to get response from the sensor.
Ive thought of using mapping functions in my code as well as resolution functions. But I just wasn't sure if there was a component I could add to the circuit to improve resolution.
In my latest sketch I have used a calibration code that analog reads the sensor for 6 minutes, and then remaps the min and max values observed during that time. I though this would get a broader range of values. The problem is that the longer the sensor is on it becomes stable so the min and max values become the same and there is nothing to map. So the longer it runs the smaller the range of values in the serial monitor.
-
Thank you for the reply epierre.
I was going off of the SainSmart website that says the range for their module is 10 ppb to 200 ppm. That would cover 10 ppb to 200,000 ppb.
The values keep dropping down as more and more ozone is added, I'm not thinking it is a problem with range as much as a problem with resolution. I have gone as high as around 50,000 ppb and continue to get response from the sensor.
Ive thought of using mapping functions in my code as well as resolution functions. But I just wasn't sure if there was a component I could add to the circuit to improve resolution.
In my latest sketch I have used a calibration code that analog reads the sensor for 6 minutes, and then remaps the min and max values observed during that time. I though this would get a broader range of values. The problem is that the longer the sensor is on it becomes stable so the min and max values become the same and there is nothing to map. So the longer it runs the smaller the range of values in the serial monitor.
@AtmosCheme said:
I was going off of the SainSmart website that says the range for their module is 10 ppb to 200 ppm. That would cover 10 ppb to 200,000 ppb.
check their datasheet (or ask for it !)
The values keep dropping down as more and more ozone is added, I'm not thinking it is a problem with range as much as a problem with resolution. I have gone as high as around 50,000 ppb and continue to get response from the sensor.
yes it should be possible but you don't know from the datasheet the value. On a power regression you make an estimation with error, but that may change outside of know datapoints.
Ive thought of using mapping functions in my code as well as resolution functions. But I just wasn't sure if there was a component I could add to the circuit to improve resolution.
some as the Particle Photon has a better ADC that goes up to 4096