Skip to main content

Grove - Gas Sensor(O₂)


Grove - Oxygen Sensor(ME2-O2-Ф20) is a kind of sensor to test the oxygen concentration in air, which is based on the principle of the electrochemical cell to the original work. You can know clearly the current oxygen concentration when you output voltage values proportional to the concentration of oxygen and refer to the oxygen concentration linear characteristic graph. It's very suitable for detecting oxygen concentration in the environment protection. Grove - Gas Sensor(O2) is an organic reaction module, it can provide a little current while putting it in the air, we don't need to provide an external power to it, and output voltage will change as time current changes.


:::Tip We've released the Seeed Gas Sensor Selection Guide, it will help you choose the gas sensor that best suits your needs. ::: ##Feature

  • High-precision
  • High sensitivity
  • Wide linearity range
  • Strong anti-interference ability
  • Extraordinary reliability

:::Tip More details about Grove modules please refer to Grove System ::: ##Specification

Measurement Range0-25%
Detect Lifetwo years
Sensitivity0.05~0.15 mA(in air)
Temperature Range-20 oC~50 oC
Preheat Time20 minutes
Input voltage3.3V / 5V


Voltage Convertor


The XC6206332MR converts 3.3v/5v input to 3.3v.

ME2-O2 current source


The ME2-O2 is current source. The voltage of the label #3 point is R7 * Current(ME2-O2).



The gain of the amplifer is 121, SIGA voltage is 121 times of label #3 point voltage.


Here is the correlation between ME2-O2 output current and concentration of O2. The current of 20% concentration O2 is around 120uA. So the Grove SIGA voltage @ 20% concentration = R7 Current(ME2-O2) 121 = 100 120uA 121 = 1.452V.

The current ranage of ME2-O2 is 80uA~160uA due to individual difference. So the sensor ouput voltage also will different. Please explosure the sensor to fresh air and get reading of output voltage as reference at beginning. You can refer to [this example]( to get the calibration at beginning and then read the sensor values.   

Platforms Supported

ArduinoRaspberry Pi



The platforms mentioned above as supported is/are an indication of the module's software or theoritical compatibility. We only provide software library or code examples for Arduino platform in most cases. It is not possible to provide software library / demo code for all possible MCU platforms. Hence, users have to write their own software library.

##Getting Started

This chapter is based on Win10 and Arduino IDE 1.6.9

This an easy-to-use module, what you need to do is connect the signal pin (the YELLOW pin of Grove cable) to the ADC input of your controller. If there's no internal ADC in your controller, Grove - I2C ADC is recommend.

Here we will show you how this Grove - Gas Sensor(O2) works via a simple demo. First of all, you need to prepare the below stuffs:

Seeeduino V4Grove - Oxygen Sensor(ME2-O2-Ф20)Base Shield




Get ONE NowGet ONE NowGet ONE Now


Thanks to the benefit of Grove series modules, you don't need to make soldering or bread board, what you need to do is connect the modules to the right port of Base Shield. For this demo, we have only one Grove module.

  • Grove - Oxygen Sensor(ME2-O2-Ф20) is an analog input module, we connect it to A0 at this demo


###Upload the code to Arduino

Copy the below code to Arduino IDE.

// Grove - Gas Sensor(O2) test code
// Note:
// 1. It need about about 5-10 minutes to preheat the sensor
// 2. modify VRefer if needed

const float VRefer = 3.3; // voltage of adc reference

const int pinAdc = A0;

void setup()
// put your setup code here, to run once:
Serial.println("Grove - Gas Sensor Test Code...");

void loop()
// put your main code here, to run repeatedly:
float Vout =0;
Serial.print("Vout =");

Vout = readO2Vout();
Serial.print(" V, Concentration of O2 is ");

float readO2Vout()
long sum = 0;
for(int i=0; i<32; i++)
sum += analogRead(pinAdc);

sum >>= 5;

float MeasuredVout = sum * (VRefer / 1023.0);
return MeasuredVout;

float readConcentration()
// Vout samples are with reference to 3.3V
float MeasuredVout = readO2Vout();

//float Concentration = FmultiMap(MeasuredVout, VoutArray,O2ConArray, 6);
//when its output voltage is 2.0V,
float Concentration = MeasuredVout * 0.21 / 2.0;
float Concentration_Percentage=Concentration*100;
return Concentration_Percentage;

Then choose the right Board and COM port, and then click on the Upload button, this process take few seconds.

###Get data

Open serial monitor of your Arduino IDE, and you will get the data now.

It need about 20~30 minutes to preheat the sensor, or you will get a larger value.


Schematic Online Viewer



LoRa IoTea: An automatic information collection system applied to tea plantation. It is part of intelligent agricultural information collection.

A Plant Box with Lighting and Raining You never seen such a way to water you plant.

Tech Support & Product Discussion

Upgradable to Industrial Sensors

With the SenseCAP S2110 controller and S2100 data logger, you can easily turn the Grove into a LoRaWAN® sensor. Seeed not only helps you with prototyping but also offers you the possibility to expand your project with the SenseCAP series of robust industrial sensors.

The IP66 housing, Bluetooth configuration, compatibility with the global LoRaWAN® network, built-in 19 Ah battery, and powerful support from APP make the SenseCAP S210x the best choice for industrial applications. The series includes sensors for soil moisture, air temperature and humidity, light intensity, CO2, EC, and an 8-in-1 weather station. Try the latest SenseCAP S210x for your next successful industrial project.

Loading Comments...