Connecting OOM202 Oxygen Sensor to Arduino

Sdílet
Vložit
  • čas přidán 4. 09. 2024
  • This vedio explains how to connect Envitec OOM202 oxygen sensor with Arduino

Komentáře • 82

  • @kaustavsengupta8757
    @kaustavsengupta8757 Před 3 lety +11

    I accidentally stumble upon this oxygen analyser video, though I throughouly enjoy it, it's seems like you are in beginning of your career as electronic engineer and myself as electronic engineer, I would like to share my 2 cents knowledge and some constructive criticism.
    1. I strongly not recommend using external ADC, because all ADC is limited by stability of input reference voltage. More stable you reference voltage, higher stability of ADC reading. Since Arduino uses linear regulator( high Frequency noise can easily passed through it) its major culprit of not getting stable one reading( I m sure you might observed some fluctuations in adc while making this circuit).
    2. I will strongly advise you to use Arduino internal reference ADC which is 1.1v( as it is more stable form). As far as sensor is concern most electrochemical sensor like oxygen ( which you are using) tend to give out reading between 9-13 mV in naked air. You just need to use op-amp to amplify this, I will suggest "Low Pass Filter Sallen Key ", as this will not only amplify the signal but even reduce the noise generated by sensor too. You can use DSP(digital Signals Processing)running exponentially FIR filter to further smooth out the signal.
    3. Last but not least, always remember Ideal Gas Equation i.e PV= nRT, which state that Pressure is directly proportional to N( number of moles),if you applied pressure more than 1 atm,your sensor will give higher reading. So make sure that pressure is 1 atm to get best reading( can use flow meter).
    If follow this, maybe you can sell this to industry and manufacture as commerical product. Normal benchtop O2 analyser retail for 15-30k in India

    • @shakir507
      @shakir507 Před 2 lety

      HI Kaustav!...I find your explanation appealing even though I am not an engineer. Could you share some resources where I can read about these issues as a novice and also where I can buy "Low Pass Filter Sallen Key" for using it the way you suggested? Thanks a lot for putting in your invaluable insights here. I commented particularly because I am getting very unstable readings from this ADA as you have also pointed out. Sometimes I am just not sure what the actual reading is!

    • @ulaganathand
      @ulaganathand Před rokem

      These sensors works on Volume based, if you apply more number of moles of o2 and simulatenously other gas molecules also since result no change in the result. I tested this pratically, for various pressure range

  • @lavimittal86
    @lavimittal86 Před 3 lety +7

    For connections please follow below:
    The OOM202 sensor had three pins, of which the ground pin (white wire) and analog output (blue wire ) are used centre pin is not used.. The analog output is connected to A0 terminal of the ADS (ADS1115) whereas the white cable is connected to GND port of the Arduino UNO target board. The ADS1115 has two outputs, the SCL and SDA pins which connect to the corresponding SCL and SDA pins on the Arduino UNO target. The ADS1115 takes a 5 V power input and a ground connection, both of which are drawn from the UNO target. This completes the circuit.

  • @parthapaul5241
    @parthapaul5241 Před 3 lety +1

    Good topics sir

  • @growthmantra1105
    @growthmantra1105 Před 3 lety

    Very nice video and content too

  • @AjayVerma-ub5xm
    @AjayVerma-ub5xm Před 7 měsíci

    Dear Manas Sir, can we use A09 sensor instead of current sensor

  • @sivasundarvijaivijai4039
    @sivasundarvijaivijai4039 Před 10 měsíci

    sir i am basic learner , Very useful sir, AO-o8 oxygen sensor How I connect sir , 3.5mm jack only there . How I connect give me a suggestion

  • @amalkumar3430
    @amalkumar3430 Před 3 lety +5

    Sir , can you please provide the arduino code...? 🙏

    • @lavimittal86
      @lavimittal86 Před 3 lety +3

      [code]
      #include
      Adafruit_ADS1115 ads;
      void setup(void)
      {
      Serial.begin(9600);
      ads.begin();
      }
      void loop(void)
      {
      int16_t adc0, adc1, adc2, adc3;
      adc0 = ads.readADC_SingleEnded(0);
      adc1 = ads.readADC_SingleEnded(1);
      adc2 = ads.readADC_SingleEnded(2);
      adc3 = ads.readADC_SingleEnded(3);
      Serial.print("AIN0: ");
      Serial.print(adc0);
      Serial.print("\t");
      Serial.print(adc0*0.2625);
      Serial.println("%");
      delay(1000);
      }
      [/code]

    • @amalkumar3430
      @amalkumar3430 Před 3 lety

      @@lavimittal86 sir , can you provide your email address, we need your help 🙏

    • @lavimittal86
      @lavimittal86 Před 3 lety

      @@amalkumar3430 sure, its lavi.mittal86@gmail.com

    • @virajkhapre4551
      @virajkhapre4551 Před 3 lety +1

      @@lavimittal86 what is the use of AIN1, AIN2 &AIN3?

  • @unfiltered_24
    @unfiltered_24 Před 3 lety +1

    This ckt and the same sensor after using using connection as shown in your video gives negative values for AIN0 :
    I have following in the output
    16:59:46.070 -> AIN0: -336 ?????
    16:59:46.070 -> 0 V ?????
    16:59:46.070 -> ADC0*0.2625 : 84 Calculated using absolute value of AIN0
    16:59:46.105 -> Inside OxyConc() :23.52 Calculated using multiplier values in comments in this video.
    I have used the code which gives this result as follows:
    #include
    #include
    Adafruit_ADS1115 ads; /* Use this for the 16-bit version */
    int16_t adc0; // Declaration of Global Variable
    void setup() {
    Serial.begin(9600);
    ads.setGain(GAIN_TWOTHIRDS);
    ads.begin();
    void loop() {
    //SINGLE ENDED-------------------------------------------------------------------
    int16_t adc0 = ads.readADC_SingleEnded(0);
    int16_t volts0 = ads.computeVolts(adc0);
    Serial.println("-----------------------------------------------------------");
    Serial.print("AIN0: "); Serial.print(adc0); Serial.println(" "); Serial.print(volts0); Serial.println(" V");
    Serial.print(OxyConc()); Serial.println(" %");
    }
    float OxyConc() {
    int16_t x = abs(ads.readADC_SingleEnded(0))*0.2625; // This is being done Since AIN0 values comes negative
    Serial.print("ADC0*0.2625 : ");Serial.println(x); // 0.2625 is multiplied as was mentioned in the comment here in youtube
    if (x < 73){
    Serial.print("Oxygen lower than 20%");
    }else if (x > 73){
    float O2percent = x*0.28; // 0.28 is multipied as was mentioned in the comment here in youtube.
    Serial.print("Inside OxyConc() :"); Serial.println(O2percent);
    return O2percent;
    }

  • @technomania2752
    @technomania2752 Před 2 lety

    pls share wiring diagram there is some confusion .
    if you connect AREF to the ADC Board then why are you connect 5v

  • @oxyartis
    @oxyartis Před 2 lety

    Which is the lower % of O2 can be read with this sensor? There is a data sheet of this sensor model?

  • @arkoakex5581
    @arkoakex5581 Před 3 lety +4

    Sir, plz share the UNO code

    • @lavimittal86
      @lavimittal86 Před 3 lety +5

      [code]
      #include
      Adafruit_ADS1115 ads;
      void setup(void)
      {
      Serial.begin(9600);
      ads.begin();
      }
      void loop(void)
      {
      int16_t adc0, adc1, adc2, adc3;
      adc0 = ads.readADC_SingleEnded(0);
      adc1 = ads.readADC_SingleEnded(1);
      adc2 = ads.readADC_SingleEnded(2);
      adc3 = ads.readADC_SingleEnded(3);
      Serial.print("AIN0: ");
      Serial.print(adc0);
      Serial.print("\t");
      Serial.print(adc0*0.2625);
      Serial.println("%");
      delay(1000);
      }
      [/code]

  • @vinayakmhetar7318
    @vinayakmhetar7318 Před 3 lety

    i am using this sensor,but its reading change as soon as pressure increases or descreses.
    and one thing i also done that i have check sensor by giving normal air from compressor using flow gauge set to 8 psi,at that time also sensor showing values.
    why this is happening?

  • @aniketkatoch6451
    @aniketkatoch6451 Před 2 lety

    Have you made code for 21 percent and 100 percentage code for o2 calibration

  • @bikash4ify
    @bikash4ify Před rokem +1

    Can you please share the code ??

  • @sk.sayyad
    @sk.sayyad Před 2 měsíci

    Oxygen sensor rate?

  • @delishthomasmathew5101
    @delishthomasmathew5101 Před 3 lety +4

    Can you please share the code

    • @lavimittal86
      @lavimittal86 Před 3 lety

      [code]
      #include
      Adafruit_ADS1115 ads;
      void setup(void)
      {
      Serial.begin(9600);
      ads.begin();
      }
      void loop(void)
      {
      int16_t adc0, adc1, adc2, adc3;
      adc0 = ads.readADC_SingleEnded(0);
      adc1 = ads.readADC_SingleEnded(1);
      adc2 = ads.readADC_SingleEnded(2);
      adc3 = ads.readADC_SingleEnded(3);
      Serial.print("AIN0: ");
      Serial.print(adc0);
      Serial.print("\t");
      Serial.print(adc0*0.2625);
      Serial.println("%");
      delay(1000);
      }
      [/code]

  • @tpthaler
    @tpthaler Před 3 lety +1

    Have you considered the need for re-calibrating the o2 sensor on a regular basis, as these sensors change / grow old over time and often require recalibration to a known source/percentage of oxygen (ie: 0, 21, 100)...

    • @Carrertalk
      @Carrertalk  Před 3 lety

      Yes, Recalibration req . It's better to do it in every 6 months

    • @sahilchitrapur3018
      @sahilchitrapur3018 Před 2 lety

      @@Carrertalk how is recalibration conducted for this sensor? Any idea

  • @TechnicalidEas07
    @TechnicalidEas07 Před 3 lety +2

    Oky😶👍

  • @herbertdaimari2391
    @herbertdaimari2391 Před 3 lety +2

    can you post the interfacing code and ckt diagram of it

    • @EEESharulKunkolkar
      @EEESharulKunkolkar Před 3 lety

      Bro did you get the code?

    • @dipanjanbanerjee1574
      @dipanjanbanerjee1574 Před 3 lety +1

      @@EEESharulKunkolkar Its very Simple bro..., just use the adafruit library you can make it,

    • @tecfundabyvivek4931
      @tecfundabyvivek4931 Před 3 lety

      @@dipanjanbanerjee1574 Bro if possible please post the code explained in video

    • @lavimittal86
      @lavimittal86 Před 3 lety +1

      [code]
      #include
      Adafruit_ADS1115 ads;
      void setup(void)
      {
      Serial.begin(9600);
      ads.begin();
      }
      void loop(void)
      {
      int16_t adc0, adc1, adc2, adc3;
      adc0 = ads.readADC_SingleEnded(0);
      adc1 = ads.readADC_SingleEnded(1);
      adc2 = ads.readADC_SingleEnded(2);
      adc3 = ads.readADC_SingleEnded(3);
      Serial.print("AIN0: ");
      Serial.print(adc0);
      Serial.print("\t");
      Serial.print(adc0*0.2625);
      Serial.println("%");
      delay(1000);
      }
      [/code]

    • @upendarprajapat5282
      @upendarprajapat5282 Před 3 lety

      Link for all the details: learn.adafruit.com/adafruit-4-channel-adc-breakouts/overview

  • @venkatkrishnavk3959
    @venkatkrishnavk3959 Před 3 lety

    hello manas ,
    could you explain the formula you used in the program ?
    and tell me about the value 73 ,how it can be changed in to the oxygen % level ?

  • @saikatbhattacharya3790

    can you please explain why we have to multiply with 0.2625 with the adc data Serial.print(adc0*0.2625);

  • @rikkibanerjee4229
    @rikkibanerjee4229 Před 3 lety +2

    Kindly please provide the program

    • @lavimittal86
      @lavimittal86 Před 3 lety

      [code]
      #include
      Adafruit_ADS1115 ads;
      void setup(void)
      {
      Serial.begin(9600);
      ads.begin();
      }
      void loop(void)
      {
      int16_t adc0, adc1, adc2, adc3;
      adc0 = ads.readADC_SingleEnded(0);
      adc1 = ads.readADC_SingleEnded(1);
      adc2 = ads.readADC_SingleEnded(2);
      adc3 = ads.readADC_SingleEnded(3);
      Serial.print("AIN0: ");
      Serial.print(adc0);
      Serial.print("\t");
      Serial.print(adc0*0.2625);
      Serial.println("%");
      delay(1000);
      }
      [/code]

  • @sarathsm1664
    @sarathsm1664 Před 3 lety

    Why only GND and signal connected to the sensor?.. isn't the VCC missing?

    • @kuntaldas3708
      @kuntaldas3708 Před 3 lety

      It generate electrical signal from reaction with air O2 so it not need vcc

  • @jayabharathi6156
    @jayabharathi6156 Před 3 lety +1

    Can u provide the code for lcd interface with arduino

  • @dnyaneshvarsalve2984
    @dnyaneshvarsalve2984 Před 3 lety

    why you have not connected power (vcc) connection to sensor?
    sensor must need some i/p voltage to work?

    • @Carrertalk
      @Carrertalk  Před 3 lety +2

      There are two types of sensor. one is active, other one passive. Active sensor do not need any power. Oxygen sensor is active sensor

    • @dnyaneshvarsalve2984
      @dnyaneshvarsalve2984 Před 3 lety

      @@Carrertalk ok, please tell me pin outs of sensor as its not mentioned in datasheet also

    • @designcad2738
      @designcad2738 Před 3 lety

      @@Carrertalk where is Arduino code ? and ADS1115 with UNO R3 interface is hardwired or I2C ?

    • @buildthis2324
      @buildthis2324 Před 3 lety

      I guess this sensor works like a resistor that changes value with % of Oxygen content in the air. So you drive power through it; and expect certain resistances or sensor reading voltage based on how much oxygen it is sensing at the moment.

  • @zakirhusensunasara4891

    Hii
    Can we use this without using ADC 1115??

    • @NiteshAgarwalGeek
      @NiteshAgarwalGeek Před 3 lety

      probably not as the arduino will not be able to detect the output from the sensor as the sensor values are so low and even if it does you wont get the accuracy required.

  • @nikhilverma2995
    @nikhilverma2995 Před 3 lety +1

    sir what is the code of the program

    • @lavimittal86
      @lavimittal86 Před 3 lety

      [code]
      #include
      Adafruit_ADS1115 ads;
      void setup(void)
      {
      Serial.begin(9600);
      ads.begin();
      }
      void loop(void)
      {
      int16_t adc0, adc1, adc2, adc3;
      adc0 = ads.readADC_SingleEnded(0);
      adc1 = ads.readADC_SingleEnded(1);
      adc2 = ads.readADC_SingleEnded(2);
      adc3 = ads.readADC_SingleEnded(3);
      Serial.print("AIN0: ");
      Serial.print(adc0);
      Serial.print("\t");
      Serial.print(adc0*0.2625);
      Serial.println("%");
      delay(1000);
      }
      [/code]

  • @nikhilverma2995
    @nikhilverma2995 Před 3 lety +1

    Sir please can you give the program

    • @lavimittal86
      @lavimittal86 Před 3 lety +1

      [code]
      #include
      Adafruit_ADS1115 ads;
      void setup(void)
      {
      Serial.begin(9600);
      ads.begin();
      }
      void loop(void)
      {
      int16_t adc0, adc1, adc2, adc3;
      adc0 = ads.readADC_SingleEnded(0);
      adc1 = ads.readADC_SingleEnded(1);
      adc2 = ads.readADC_SingleEnded(2);
      adc3 = ads.readADC_SingleEnded(3);
      Serial.print("AIN0: ");
      Serial.print(adc0);
      Serial.print("\t");
      Serial.print(adc0*0.2625);
      Serial.println("%");
      delay(1000);
      }
      [/code]

  • @BiqBanq
    @BiqBanq Před 3 lety

    Any Recommended website for Oxygen Sensor?

  • @siddhantdeshmukh5595
    @siddhantdeshmukh5595 Před 3 lety +1

    Where is the program?

    • @lavimittal86
      @lavimittal86 Před 3 lety

      [code]
      #include
      Adafruit_ADS1115 ads;
      void setup(void)
      {
      Serial.begin(9600);
      ads.begin();
      }
      void loop(void)
      {
      int16_t adc0, adc1, adc2, adc3;
      adc0 = ads.readADC_SingleEnded(0);
      adc1 = ads.readADC_SingleEnded(1);
      adc2 = ads.readADC_SingleEnded(2);
      adc3 = ads.readADC_SingleEnded(3);
      Serial.print("AIN0: ");
      Serial.print(adc0);
      Serial.print("\t");
      Serial.print(adc0*0.2625);
      Serial.println("%");
      delay(1000);
      }
      [/code]

  • @internipro3d965
    @internipro3d965 Před 3 lety +1

    Please provide library file for sensor

    • @lavimittal86
      @lavimittal86 Před 3 lety

      Go to Tools>Manage library>search for Adafruit_ADC>install latest version

  • @faisalnajeeb713
    @faisalnajeeb713 Před rokem

    sir can you please give me the code

  • @docamitverma
    @docamitverma Před 3 lety

    Will arduino nano work

  • @sanjivdube
    @sanjivdube Před rokem

    I need product

  • @techhome23
    @techhome23 Před 2 lety

    Sensors prise

  • @16phoenixlast
    @16phoenixlast Před rokem

    can you provide me the source code ?

  • @shubhamsaraf5974
    @shubhamsaraf5974 Před 3 lety

    Hello Manas,
    I want to pair this sensor with ESP32 in my project. Please provide your contact details.

  • @jayabharathi6156
    @jayabharathi6156 Před 3 lety

    Programing code not found

  • @EEESharulKunkolkar
    @EEESharulKunkolkar Před 3 lety

    Plz share the code, or copy paste in the chat box

    • @lavimittal86
      @lavimittal86 Před 3 lety

      [code]
      #include
      Adafruit_ADS1115 ads;
      void setup(void)
      {
      Serial.begin(9600);
      ads.begin();
      }
      void loop(void)
      {
      int16_t adc0, adc1, adc2, adc3;
      adc0 = ads.readADC_SingleEnded(0);
      adc1 = ads.readADC_SingleEnded(1);
      adc2 = ads.readADC_SingleEnded(2);
      adc3 = ads.readADC_SingleEnded(3);
      Serial.print("AIN0: ");
      Serial.print(adc0);
      Serial.print("\t");
      Serial.print(adc0*0.2625);
      Serial.println("%");
      delay(1000);
      }
      [/code]

  • @biplabmajumder2605
    @biplabmajumder2605 Před 2 lety

    দাদা আপনার ফোন নম্বরটা দিলে আমি আপনার কাছে শিখতে চাই।

  • @internipro3d965
    @internipro3d965 Před 3 lety +1

    Please post code

    • @lavimittal86
      @lavimittal86 Před 3 lety

      [code]
      #include
      Adafruit_ADS1115 ads;
      void setup(void)
      {
      Serial.begin(9600);
      ads.begin();
      }
      void loop(void)
      {
      int16_t adc0, adc1, adc2, adc3;
      adc0 = ads.readADC_SingleEnded(0);
      adc1 = ads.readADC_SingleEnded(1);
      adc2 = ads.readADC_SingleEnded(2);
      adc3 = ads.readADC_SingleEnded(3);
      Serial.print("AIN0: ");
      Serial.print(adc0);
      Serial.print("\t");
      Serial.print(adc0*0.2625);
      Serial.println("%");
      delay(1000);
      }
      [/code]

    • @shyamlallal5469
      @shyamlallal5469 Před 3 lety

      github.com/karantarade/OxygenAnalyserOOM202