====== M_Q135.h ====== Rzero is the value of the resistor in the MQ-135 sensor in the presence of clean air. Where the CO 2 value is around 400 ppm as given below. The Rzero value varies for each individual sensor and can be found using another Arduino [[amc2021:groupl:extras:r0:start|code]] *RLOAD meanwhile is the external resistor value that is connected to the MQ-135 sensor, which in this case is 10kΩ. *Important parameters are for calculating CO2 of 116.6 and 2.79 are taken from a calibration graph as seen from the [[https://www.electronicoscaldas.com/datasheet/MQ-135_Hanwei.pdf|datasheet]]. This shows the sensitivity of the sensor varies for each gas. {{ :amc2021:groupL:extras:mq-135:screenshot_2021-09-03_at_01.11.54.png |here}} From the below code, we replace the Rzero value(which we get with the function getRzero()) and use the float getPPM() to get the level of CO2 /**************************************************************************/ /*! @file MQ135.h @author G.Krocker (Mad Frog Labs) @license GNU GPLv3 @section HISTORY v1.0 - First release */ /**************************************************************************/ #ifndef MQ135_H #define MQ135_H #if ARDUINO >= 100 #include "Arduino.h" #else #include "WProgram.h" #endif /// The load resistance on the board #define RLOAD 10.0 /// Calibration resistance at atmospheric CO2 level #define RZERO 65 //Dependent on the sensor /// Parameters for calculating ppm of CO2 from sensor resistance #define PARA 116.6020682 #define PARB 2.769034857 /// Parameters to model temperature and humidity dependence #define CORA 0.00035 #define CORB 0.02718 #define CORC 1.39538 #define CORD 0.0018 /// Atmospheric CO2 level for calibration purposes #define ATMOCO2 400 class MQ135 { private: uint8_t _pin; public: MQ135(uint8_t pin); float getCorrectionFactor(float t, float h); float getResistance(); float getCorrectedResistance(float t, float h); float getPPM(); float getCorrectedPPM(float t, float h); float getRZero(); float getCorrectedRZero(float t, float h); }; #endif [[amc2021:groupl:report:start|Back to report]]