mirror of
https://github.com/miguel5612/MQSensorsLib.git
synced 2025-07-03 19:01:03 +03:00
Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
3261318577 | |||
e5578c199f | |||
ff002f9993 | |||
b85e7520d4 | |||
0f912a3c4a | |||
b2616295a3 | |||
886bfd9981 | |||
cfe8ccc6ad | |||
a9aba676e2 |
46
README.md
46
README.md
@ -1,4 +1,4 @@
|
|||||||
[](https://doi.org/10.5281/zenodo.3384299)
|
[](https://zenodo.org/badge/latestdoi/170540207)
|
||||||

|

|
||||||
|
|
||||||
# MQSensorsLib
|
# MQSensorsLib
|
||||||
@ -94,14 +94,44 @@ This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md
|
|||||||
|
|
||||||
## Cite as
|
## Cite as
|
||||||
|
|
||||||
* Plain text: Miguel Angel Califa Urquiza. (2019, September 3). Ghiordy/MQSensorsLib: Arduino Preview V1.0.3 (Version 1.0.3). Zenodo. http://doi.org/10.5281/zenodo.3384299
|
* Plain text: Califa Urquiza, Miguel Angel, Contreras Contreras, Ghiordy, & Carrillo Amado, Yerson Ramiro. (2019, September 3). miguel5612/MQSensorsLib: Arduino Preview V1.03 (Version 1.0.3). Zenodo. http://doi.org/10.5281/zenodo.3384301
|
||||||
|
* CSL: {
|
||||||
|
"publisher": "Zenodo",
|
||||||
|
"DOI": "10.5281/zenodo.3384301",
|
||||||
|
"title": "miguel5612/MQSensorsLib: Arduino Preview V1.03",
|
||||||
|
"issued": {
|
||||||
|
"date-parts": [
|
||||||
|
[
|
||||||
|
2019,
|
||||||
|
9,
|
||||||
|
3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"abstract": "<p>Publishing on Zenodo platform as software in order to extend its applications for other works allowing to recognize MQSensorLib's Authors this work into scientific community using Digital Object Identifier System (DOI).</p>",
|
||||||
|
"author": [
|
||||||
|
{
|
||||||
|
"family": "Califa Urquiza, Miguel Angel"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"family": "Contreras Contreras, Ghiordy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"family": "Carrillo Amado, Yerson Ramiro"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": "1.0.3",
|
||||||
|
"type": "article",
|
||||||
|
"id": "3384301"
|
||||||
|
}
|
||||||
* BibTeX:
|
* BibTeX:
|
||||||
@misc{miguel_angel_califa_urquiza_2019_3384299,
|
@misc{califa_urquiza_miguel_angel_2019_3384301,
|
||||||
author = {Miguel Angel Califa Urquiza},
|
author = {Califa Urquiza, Miguel Angel and
|
||||||
title = {Ghiordy/MQSensorsLib: Arduino Preview V1.0.3},
|
Contreras Contreras, Ghiordy and
|
||||||
|
Carrillo Amado, Yerson Ramiro},
|
||||||
|
title = {miguel5612/MQSensorsLib: Arduino Preview V1.03},
|
||||||
month = sep,
|
month = sep,
|
||||||
year = 2019,
|
year = 2019,
|
||||||
doi = {10.5281/zenodo.3384299},
|
doi = {10.5281/zenodo.3384301},
|
||||||
url = {https://doi.org/10.5281/zenodo.3384299}
|
url = {https://doi.org/10.5281/zenodo.3384301}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,12 +41,16 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
MQ131.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
MQ131.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
||||||
|
/*
|
||||||
|
// Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ131.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
{
|
{
|
||||||
float R0 = MQ131.calibrate();
|
float R0 = MQ131.calibrate();
|
||||||
MQ131.setR0(R0):
|
MQ131.setR0(R0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/***************************** MQReadSensor ****************************************
|
/***************************** MQReadSensor ****************************************
|
||||||
|
@ -41,6 +41,10 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
MQ135.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
MQ135.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
||||||
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ135.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
|
@ -41,12 +41,16 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
MQ2.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
MQ2.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
||||||
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ2.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
{
|
{
|
||||||
float R0 = MQ2.calibrate();
|
float R0 = MQ2.calibrate();
|
||||||
MQ2.setR0(R0):
|
MQ2.setR0(R0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/***************************** MQReadSensor ****************************************
|
/***************************** MQReadSensor ****************************************
|
||||||
|
@ -41,12 +41,16 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
MQ3.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
MQ3.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
||||||
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ3.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
{
|
{
|
||||||
float R0 = MQ3.calibrate();
|
float R0 = MQ3.calibrate();
|
||||||
MQ3.setR0(R0):
|
MQ3.setR0(R0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/***************************** MQReadSensor ****************************************
|
/***************************** MQReadSensor ****************************************
|
||||||
|
@ -41,12 +41,16 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
MQ303.update();
|
MQ303.update();
|
||||||
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ303.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
{
|
{
|
||||||
float R0 = MQ303.calibrate();
|
float R0 = MQ303.calibrate();
|
||||||
MQ303.setR0(R0):
|
MQ303.setR0(R0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/***************************** MQReadSensor ****************************************
|
/***************************** MQReadSensor ****************************************
|
||||||
|
@ -41,12 +41,16 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
MQ309.update();
|
MQ309.update();
|
||||||
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ309.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
{
|
{
|
||||||
float R0 = MQ309.calibrate();
|
float R0 = MQ309.calibrate();
|
||||||
MQ309.setR0(R0):
|
MQ309.setR0(R0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/***************************** MQReadSensor ****************************************
|
/***************************** MQReadSensor ****************************************
|
||||||
|
@ -42,11 +42,15 @@ void setup() {
|
|||||||
void loop() {
|
void loop() {
|
||||||
MQ4.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
MQ4.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
||||||
/*
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ4.setRL(10);
|
||||||
|
*/
|
||||||
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
{
|
{
|
||||||
float R0 = MQ4.calibrate();
|
float R0 = MQ4.calibrate();
|
||||||
MQ4.setR0(R0):
|
MQ4.setR0(R0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/***************************** MQReadSensor ****************************************
|
/***************************** MQReadSensor ****************************************
|
||||||
|
@ -42,12 +42,16 @@ void setup() {
|
|||||||
void loop() {
|
void loop() {
|
||||||
|
|
||||||
MQ5.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
MQ5.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
||||||
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ5.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
{
|
{
|
||||||
float R0 = MQ5.calibrate();
|
float R0 = MQ5.calibrate();
|
||||||
MQ5.setR0(R0):
|
MQ5.setR0(R0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/***************************** MQReadSensor ****************************************
|
/***************************** MQReadSensor ****************************************
|
||||||
|
@ -41,6 +41,10 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
MQ6.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
MQ6.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
||||||
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ6.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
|
@ -44,12 +44,16 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
MQ7.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
MQ7.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
||||||
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ7.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
{
|
{
|
||||||
float R0 = MQ7.calibrate();
|
float R0 = MQ7.calibrate();
|
||||||
MQ7.setR0(R0):
|
MQ7.setR0(R0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/***************************** MQReadSensor ****************************************
|
/***************************** MQReadSensor ****************************************
|
||||||
|
@ -41,12 +41,16 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
MQ8.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
MQ8.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
||||||
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ8.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
{
|
{
|
||||||
float R0 = MQ8.calibrate();
|
float R0 = MQ8.calibrate();
|
||||||
MQ8.setR0(R0):
|
MQ8.setR0(R0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/***************************** MQReadSensor ****************************************
|
/***************************** MQReadSensor ****************************************
|
||||||
|
@ -41,12 +41,16 @@ void setup() {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
MQ9.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
MQ9.update(); // Update data, the arduino will be read the voltaje in the analog pin
|
||||||
|
/*
|
||||||
|
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo:
|
||||||
|
MQ9.setRL(10);
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
//Rutina de calibracion - Uncomment if you need (setup too and header)
|
||||||
if(calibration_button)
|
if(calibration_button)
|
||||||
{
|
{
|
||||||
float R0 = MQ9.calibrate();
|
float R0 = MQ9.calibrate();
|
||||||
MQ9.setR0(R0):
|
MQ9.setR0(R0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/***************************** MQReadSensor ****************************************
|
/***************************** MQReadSensor ****************************************
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name=MQUnifiedsensor
|
name=MQUnifiedsensor
|
||||||
version=1.0.2
|
version=1.0.4
|
||||||
author= Miguel Califa <miguelangel5612@gmail.com>, Yersson Carrillo <miguelangel5612@gmail.com>, Ghiordy Contreras <miguelangel5612@gmail.com>
|
author= Miguel Califa <miguelangel5612@gmail.com>, Yersson Carrillo <miguelangel5612@gmail.com>, Ghiordy Contreras <miguelangel5612@gmail.com>
|
||||||
maintainer= Miguel Califa <miguelangel5612@gmail.com>
|
maintainer= Miguel Califa <miguelangel5612@gmail.com>
|
||||||
sentence= This library allows you to read the MQ sensors very easily.
|
sentence= This library allows you to read the MQ sensors very easily.
|
||||||
|
@ -107,8 +107,12 @@ float MQUnifiedsensor::readSensor(String nameLectureRequeired, bool print)
|
|||||||
setSensorCharacteristics(nameLectureRequeired, print); //In this function update _a and _b
|
setSensorCharacteristics(nameLectureRequeired, print); //In this function update _a and _b
|
||||||
//More explained in: https://jayconsystems.com/blog/understanding-a-gas-sensor
|
//More explained in: https://jayconsystems.com/blog/understanding-a-gas-sensor
|
||||||
_RS_Calc = ((_VOLT_RESOLUTION*_RLValue)/_sensor_volt)-_RLValue; //Get value of RS in a gas
|
_RS_Calc = ((_VOLT_RESOLUTION*_RLValue)/_sensor_volt)-_RLValue; //Get value of RS in a gas
|
||||||
|
if(_RS_Calc < 0) _RS_Calc = 0; //No negative values accepted.
|
||||||
_ratio = _RS_Calc / this->_R0; // Get ratio RS_gas/RS_air
|
_ratio = _RS_Calc / this->_R0; // Get ratio RS_gas/RS_air
|
||||||
|
if(_ratio <= 0 || _ratio>100) _ratio = 0.01; //No negative values accepted or upper datasheet recomendation.
|
||||||
_PPM= _a*pow(_ratio, _b);
|
_PPM= _a*pow(_ratio, _b);
|
||||||
|
if(_PPM < 0) _PPM = 0; //No negative values accepted or upper datasheet recomendation.
|
||||||
|
if(_PPM > 10000) _PPM = 9999; //No negative values accepted or upper datasheet recomendation.
|
||||||
|
|
||||||
if(print)
|
if(print)
|
||||||
{
|
{
|
||||||
@ -522,7 +526,9 @@ float MQUnifiedsensor::calibrate(boolean print) {
|
|||||||
float RS_air; //Define variable for sensor resistance
|
float RS_air; //Define variable for sensor resistance
|
||||||
float R0; //Define variable for R0
|
float R0; //Define variable for R0
|
||||||
RS_air = ((_VOLT_RESOLUTION*_RLValue)/_sensor_volt)-_RLValue; //Calculate RS in fresh air
|
RS_air = ((_VOLT_RESOLUTION*_RLValue)/_sensor_volt)-_RLValue; //Calculate RS in fresh air
|
||||||
|
if(RS_air < 0) RS_air = 0; //No negative values accepted.
|
||||||
R0 = RS_air/_ratioInCleanAir; //Calculate R0
|
R0 = RS_air/_ratioInCleanAir; //Calculate R0
|
||||||
|
if(R0 < 0) R0 = 0; //No negative values accepted.
|
||||||
if(print)
|
if(print)
|
||||||
{
|
{
|
||||||
Serial.println("*******Calibrating*********");
|
Serial.println("*******Calibrating*********");
|
||||||
@ -562,6 +568,14 @@ void MQUnifiedsensor::setR0(double R0) {
|
|||||||
double MQUnifiedsensor::getR0() {
|
double MQUnifiedsensor::getR0() {
|
||||||
return _R0;
|
return _R0;
|
||||||
}
|
}
|
||||||
|
void MQUnifiedsensor::setRL(double RL) {
|
||||||
|
this->_RLValue = RL;
|
||||||
|
}
|
||||||
|
|
||||||
|
double MQUnifiedsensor::getRL() {
|
||||||
|
return _RLValue;
|
||||||
|
}
|
||||||
|
|
||||||
void MQUnifiedsensor::setDefaultGas()
|
void MQUnifiedsensor::setDefaultGas()
|
||||||
{
|
{
|
||||||
if(_type == 2)
|
if(_type == 2)
|
||||||
|
@ -255,6 +255,7 @@ class MQUnifiedsensor
|
|||||||
void inicializar();
|
void inicializar();
|
||||||
void update();
|
void update();
|
||||||
void setR0(double R0 = 10);
|
void setR0(double R0 = 10);
|
||||||
|
void setRL(double RL = 10);
|
||||||
void setVoltResolution(float voltaje = 5);
|
void setVoltResolution(float voltaje = 5);
|
||||||
void setSensorCharacteristics(String nameLectureReqeuired = "", bool print = false);
|
void setSensorCharacteristics(String nameLectureReqeuired = "", bool print = false);
|
||||||
void setDefaultGas();
|
void setDefaultGas();
|
||||||
@ -265,6 +266,7 @@ class MQUnifiedsensor
|
|||||||
|
|
||||||
//get function for info
|
//get function for info
|
||||||
double getR0();
|
double getR0();
|
||||||
|
double getRL();
|
||||||
double getVoltage(int read = true);
|
double getVoltage(int read = true);
|
||||||
double stringToDouble(String & str);
|
double stringToDouble(String & str);
|
||||||
String getnameLecture();
|
String getnameLecture();
|
||||||
@ -273,14 +275,14 @@ class MQUnifiedsensor
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
/************************Private vars************************************/
|
/************************Private vars************************************/
|
||||||
int _pin, _type, _lecturePosInArray;
|
byte _pin, _type, _lecturePosInArray;
|
||||||
double _R0;
|
byte _VOLT_RESOLUTION = 5.0; // if 3.3v use 3.3
|
||||||
|
byte _ratioInCleanAir, _sensor_volt;
|
||||||
|
byte _RLValue = 10; //Value in KiloOhms
|
||||||
|
float _R0, RS_air, _ratio, _PPM, _RS_Calc;
|
||||||
|
float _b;
|
||||||
|
double _a;
|
||||||
String _nameLectureRequeired;
|
String _nameLectureRequeired;
|
||||||
int _VOLT_RESOLUTION = 5.0; // if 3.3v use 3.3
|
|
||||||
int _RLValue = 10; //Value in KiloOhms
|
|
||||||
float _PPM, _RS_Calc;
|
|
||||||
float _ratioInCleanAir, _sensor_volt, RS_air, _a, _b, _ratio;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //MQUnifiedsensor_H
|
#endif //MQUnifiedsensor_H
|
||||||
|
Reference in New Issue
Block a user