pyupm_mg811 module

class pyupm_mg811.MG811(pin, dpin, aref=5.0)[source]

Bases: object

API for the DFRobot CO2 Sensor.

ID: mg811

Name: CO2 Sensor

Other Names: MG811

Category: gaseous

Manufacturer: dfrobot

Link:http://www.dfrobot.com/index.php?route=product/product&product_id=1023

Connection: analog This sensor returns an an analog voltage that falls as the concentration of CO2 increases. It contains a heater that must be allowed to ‘warm’ up the sensor before measurements are stable (hours to days is the recommendation). It requires that the MCU be powered from an external power supply (not USB) at 5v, since the heater will consume significant current.

The sensor should be allowed to ‘heat’ up for some time before beginning use, typically a couple of hours minimum. It also needs fairly precise calibration at 400ppm and 1000ppm to return meaningful results.

The sensor also incorporates a potentiometer that can be adjusted to specific threshold. Once that threshold is reached, an LED on the sensor will light, and the digital pin will be driven high.

C++ includes: mg811.hpp

getReferenceVoltage()[source]

float getReferenceVoltage()

Return a cumputed reference voltage to be used in calibration. Computed reference voltage

ppm()[source]

float ppm()

Returns the computed CO2 concentration in ppm (Parts Per Million). This method will return 0.0 if the reference voltage is greater than the ppm400 value. Essentially, ppm values below 400 will be reported as 0.

The computed CO2 concentration in ppm

setCalibration(ppm400, ppm1000)[source]

void setCalibration(float ppm400, float ppm1000)

Set calibration parameters. You should measure the reference voltage you get when at CO2 concentrations of 400ppm (ambient) and 1000ppm using the getReferenceVoltage() method. Then specify those voltages here for more accurate results.

ppm400: The measured reference voltage at 400 ppm

ppm1000: The measured reference voltage at 1000 ppm

thresholdReached()[source]

bool thresholdReached()

Read the digital pin and return true if the set threshold has been reached or exceeded. This threshold is set by adjusting the potentiometer on the sensor.

true if the threshold has been reached, false otherwise

volts()[source]

float volts()

Returns the voltage detected on the analog pin

The detected voltage