upm  1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
Public Member Functions

API for the MQ7 CO Gas Sensor. More...

Detailed Description

The Grove MQ7 Gas Sensor module is useful for detecting Carbon Monoxide (CO) concentrations in the air. It has a detection range of 20-2000 ppm.

For optimum use, it requires calibration after a pre-heat time of 48 hours. See the datasheet for details.

main(int argc, char** argv)
// Attach gas sensor to Analog A0
upm::MQ7 sensor(0);
signal(SIGINT, sig_handler);
uint16_t buffer[128];
ctx.averageReading = 0;
ctx.runningAverage = 0;
ctx.averagedOver = 2;
// Infinite loop, ends when script is cancelled
// Repeatedly, take a sample every 2 microseconds;
// find the average of 128 samples; and
// print a running graph of asteriskss as averages
while (shouldRun) {
int len = sensor.getSampledWindow(2, 128, buffer);
if (len) {
int thresh = sensor.findThreshold(&ctx, 30, buffer, len);
sensor.printGraph(&ctx, 5);
if (thresh) {
// do something ....
cout << "Exiting" << endl;
return 0;

Public Member Functions

 MQ7 (int gasPin)
 ~MQ7 ()
std::string name ()
- Public Member Functions inherited from Gas
 Gas (int gasPin)
virtual ~Gas ()
virtual int getSampledWindow (unsigned int freqMS, int numberOfSamples, uint16_t *buffer)
virtual int findThreshold (thresholdContext *ctx, unsigned int threshold, uint16_t *buffer, int len)
virtual int getSampledData (thresholdContext *ctx)
virtual int getSample ()
virtual void printGraph (thresholdContext *ctx, uint8_t resolution)

Additional Inherited Members

- Protected Attributes inherited from Gas
mraa::Aio m_aio

Constructor & Destructor Documentation

MQ7 ( int  gasPin)

MQ7 constructor

gasPinAnalog pin where the sensor is connected
~MQ7 ( )

MQ7 destructor

Member Function Documentation

std::string name ( )

Returns the name of the sensor

Inheritance diagram for MQ7:
Inheritance graph
Collaboration diagram for MQ7:
Collaboration graph

The documentation for this class was generated from the following files: