Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Hardware
  3. MH-Z14A CO2 sensor

MH-Z14A CO2 sensor

Scheduled Pinned Locked Moved Hardware
25 Posts 5 Posters 16.9k Views 6 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • FotoFieberF Offline
    FotoFieberF Offline
    FotoFieber
    Hardware Contributor
    wrote on last edited by FotoFieber
    #5

    The sensor is really simple to use, when attached via serial-ttl (3.3V) and powered with 5 volt.

    https://www.youtube.com/watch?v=Vk4oQpy98sc

    You get the values directly from the sensor and don't need to make calculations. Here is what I use:

    /*
       The MySensors Arduino library handles the wireless radio link and protocol
       between your home built sensors/actuators and HA controller of choice.
       The sensors forms a self healing radio network with optional repeaters. Each
       repeater and gateway builds a routing tables in EEPROM which keeps track of the
       network topology allowing messages to be routed to nodes.
    
       Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
       Copyright (C) 2013-2015 Sensnology AB
       Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
    
       Documentation: http://www.mysensors.org
       Support Forum: http://forum.mysensors.org
    
       This program is free software; you can redistribute it and/or
       modify it under the terms of the GNU General Public License
       version 2 as published by the Free Software Foundation.
    
     *******************************
    
       DESCRIPTION
    
        MH-Z14 CO2 sensor via rx/tx serial
    
        */
    
    // Enable debug prints to serial monitor
    //#define MY_DEBUG
    
    // Enable and select radio type attached
    //#define MY_RADIO_NRF24
    
    #define MY_RADIO_RFM69
    #define MY_RFM69_FREQUENCY RF69_868MHZ
    #define MY_RFM69_NETWORKID 13
    #define MY_RFM69_ENABLE_ENCRYPTION
    #define MY_IS_RFM69HW
    
    #include <MySensors.h>
    #include <SoftwareSerial.h>
    #include <Wire.h>
    #include "Adafruit_HTU21DF.h"
    
    SoftwareSerial mySerial(A0, A1); // RX, TX соответственно
    
    Adafruit_HTU21DF htu = Adafruit_HTU21DF();
    
    byte cmd[9] = {0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79};
    char response[9];
    
    #define CHILD_ID_AIQ 0
    #define CHILD_ID_TEMP  1
    #define CHILD_ID_HUM   2
    
    unsigned long SLEEP_TIME = 30 * 1000; // Sleep time between reads (in milliseconds)
    unsigned int TEMP_HUM_ROUNDS = 5; // wait 5 rounds for sending TEMP_HUM
    unsigned int loop_round = 0;
    boolean preheat = true;  // wait TEMP_HUM_ROUNDS for preheat
    
    int lastppm = 0;
    
    MyMessage msg(CHILD_ID_AIQ, V_LEVEL);
    MyMessage msg2(CHILD_ID_AIQ, V_UNIT_PREFIX);
    MyMessage msgHum(CHILD_ID_HUM, V_HUM);
    MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
    
    boolean isMetric = true;
    
    void setup()
    {
      mySerial.begin(9600);
      isMetric = getConfig().isMetric;
    
      if (!htu.begin()) {
        Serial.println("Couldn't find sensor htu21!");
      }
    }
    
    void presentation() {
      // Send the sketch version information to the gateway and Controller
      sendSketchInfo("AIQ Sensor CO2 MH-Z14 Serial, HTU21 Temp Hum", "1.0");
    
      // Register all sensors to gateway (they will be created as child devices)
      present(CHILD_ID_AIQ, S_AIR_QUALITY);
      send(msg2.set("ppm"));
    
      present(CHILD_ID_TEMP, S_TEMP);
      present(CHILD_ID_HUM, S_HUM);
    }
    
    void loop() {
    
      mySerial.write(cmd, 9);
      mySerial.readBytes(response, 9);
      int responseHigh = (int) response[2];
      int responseLow = (int) response[3];
      int ppm = (256 * responseHigh) + responseLow;
    
      if ((loop_round == 0) || (abs(ppm - lastppm) >= 10)) {
        if (!preheat) {
          send(msg.set(ppm));
          lastppm = ppm;
        }
      }
    
    
    
      if (loop_round == 0) {
        float temp = htu.readTemperature();
        if (!isMetric) {
          temp = temp * 9 / 5 + 32; // convert to farenheit
        }
        send(msgTemp.set(temp, 1));
    
        float hum = htu.readHumidity();
        send(msgHum.set(hum, 1));
      }
    
      loop_round++;
      if (loop_round >= TEMP_HUM_ROUNDS) {
        loop_round = 0;
        preheat = false;
      }
    
      // Power down the radio.  Note that the radio will get powered back up
      // on the next write() call.
      sleep(SLEEP_TIME); //sleep for: sleepTime
    }
    
    1 Reply Last reply
    3
    • korttomaK Offline
      korttomaK Offline
      korttoma
      Hero Member
      wrote on last edited by
      #6

      Thanks @FotoFieber for providing the information how to read the MH-Z14 via serial communication.
      Works like a charm.

      • Tomas
      1 Reply Last reply
      1
      • korttomaK Offline
        korttomaK Offline
        korttoma
        Hero Member
        wrote on last edited by
        #7

        Seems like my MH-Z14 sensor is faulty after all. My problem was that the sensor reported the value 562 like 80% of the time. I was hoping I could solve this by using the serial method to read the value from the sensor but I stil had the same problem. Luckily I just received another MH-Z14 so I could replace it. Now it seems to work better.

        • Tomas
        FotoFieberF 1 Reply Last reply
        1
        • korttomaK korttoma

          Seems like my MH-Z14 sensor is faulty after all. My problem was that the sensor reported the value 562 like 80% of the time. I was hoping I could solve this by using the serial method to read the value from the sensor but I stil had the same problem. Luckily I just received another MH-Z14 so I could replace it. Now it seems to work better.

          FotoFieberF Offline
          FotoFieberF Offline
          FotoFieber
          Hardware Contributor
          wrote on last edited by FotoFieber
          #8

          @korttoma
          It is working like a charme for me. Important is, to have 5V for voltage and 3.3 V on the logical level. Here is a graf, the green "Badezimmer" line is the mysensors sensor with MH-Z14A, the others are from netatmo. The mysensors sensor is in the bathroom and therefore it will have usually less CO2.

          0_1479399795680_co2.JPG

          korttomaK 1 Reply Last reply
          2
          • FotoFieberF FotoFieber

            @korttoma
            It is working like a charme for me. Important is, to have 5V for voltage and 3.3 V on the logical level. Here is a graf, the green "Badezimmer" line is the mysensors sensor with MH-Z14A, the others are from netatmo. The mysensors sensor is in the bathroom and therefore it will have usually less CO2.

            0_1479399795680_co2.JPG

            korttomaK Offline
            korttomaK Offline
            korttoma
            Hero Member
            wrote on last edited by
            #9

            @FotoFieber My new sensor is giving me the exact same behaivour. Could it be that the problem is that I'm using a 5V Pro Mini?

            • Tomas
            1 Reply Last reply
            0
            • FotoFieberF Offline
              FotoFieberF Offline
              FotoFieber
              Hardware Contributor
              wrote on last edited by
              #10

              @korttoma said:

              @FotoFieber My new sensor is giving me the exact same behaivour. Could it be that the problem is that I'm using a 5V Pro Mini?

              Yes. You have to use a 3.3V arduino and power the sensor with 5V (seperate voltage). The sensor may break with a 5V arduino. I use a 3.3V 8 MHz pro mini.

              korttomaK 1 Reply Last reply
              0
              • FotoFieberF FotoFieber

                @korttoma said:

                @FotoFieber My new sensor is giving me the exact same behaivour. Could it be that the problem is that I'm using a 5V Pro Mini?

                Yes. You have to use a 3.3V arduino and power the sensor with 5V (seperate voltage). The sensor may break with a 5V arduino. I use a 3.3V 8 MHz pro mini.

                korttomaK Offline
                korttomaK Offline
                korttoma
                Hero Member
                wrote on last edited by
                #11

                @FotoFieber

                So the symptom I see as the sensor constantly reporting the value 562 could be because it is already broken?
                Or would a broken sensor just stop communicating via serial?

                • Tomas
                FotoFieberF 1 Reply Last reply
                0
                • korttomaK korttoma

                  @FotoFieber

                  So the symptom I see as the sensor constantly reporting the value 562 could be because it is already broken?
                  Or would a broken sensor just stop communicating via serial?

                  FotoFieberF Offline
                  FotoFieberF Offline
                  FotoFieber
                  Hardware Contributor
                  wrote on last edited by
                  #12

                  @korttoma
                  As I do not have a broken sensor, I can not tell you.
                  If I were you, I would try to fix the voltage issues and check, if it is working then.

                  The sensor requires a preheat. Have you used my sketch from above?

                  korttomaK 1 Reply Last reply
                  0
                  • FotoFieberF FotoFieber

                    @korttoma
                    As I do not have a broken sensor, I can not tell you.
                    If I were you, I would try to fix the voltage issues and check, if it is working then.

                    The sensor requires a preheat. Have you used my sketch from above?

                    korttomaK Offline
                    korttomaK Offline
                    korttoma
                    Hero Member
                    wrote on last edited by
                    #13

                    @FotoFieber I swapped out the 5V Pro Mini with a 3.3V Pro Mini yesterday and I'm afraid it did not help at all. If the Sensor would have had a problem with the 5V on the serial pins I bet it would no longer communicate.

                    I used some parts of your sketch but since I use an Si7021 and a different radio I had to do some modifications:

                    /**
                     * The MySensors Arduino library handles the wireless radio link and protocol
                     * between your home built sensors/actuators and HA controller of choice.
                     * The sensors forms a self healing radio network with optional repeaters. Each
                     * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                     * network topology allowing messages to be routed to nodes.
                     *
                     * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                     * Copyright (C) 2013-2015 Sensnology AB
                     * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                     *
                     * Documentation: http://www.mysensors.org
                     * Support Forum: http://forum.mysensors.org
                     *
                     * This program is free software; you can redistribute it and/or
                     * modify it under the terms of the GNU General Public License
                     * version 2 as published by the Free Software Foundation.
                     *
                     *******************************
                     *
                     * DESCRIPTION
                     *
                     *  MH-Z14 CO2 sensor
                     * 
                     *  Wiring:
                     *   Pad 1, Pad 5: Vin (Voltage input 4.5V-6V) 
                     *   Pad 2, Pad 3, Pad 12: GND 
                     *   Pad 6: PWM output ==> pin 6
                     *
                     *  From: http://davidegironi.blogspot.fr/2014/01/co2-meter-using-ndir-infrared-mh-z14.html
                     *    MH-Z14 has a PWM output, with a sensitivity range of 0ppm to 2000ppm CO2, an accurancy of ±200ppm.
                     *    The cycle is 1004ms±5%, given the duty cicle Th (pulse high), Tl is 1004-Th, we can convert it to CO2 value using the formula:
                     *    CO2ppm = 2000 * (Th - 2ms) /(Th + Tl - 4ms)
                     *  From: http://airqualityegg.wikispaces.com/Sensor+Tests
                     *    - response time is less than 30 s
                     *   - 3 minute warm up time
                     *  datasheet: 
                     * 
                    * Contributor: epierre
                    **/
                    //#define MY_DEBUG 
                    
                    #define MY_RADIO_NRF24
                    
                    #define MY_NODE_ID  6
                    #define SN "AIQ CO2 MH-Z14 TxRx"
                    #define SV "2.1"
                    #define MY_BAUD_RATE  9600
                    #include <MyConfig.h>
                    #include <MySensors.h>
                    #include <Wire.h>
                    #include <SI7021.h>
                    #include <SPI.h>
                    #include <RunningAverage.h>
                    #include <SoftwareSerial.h>
                    // Define a static node address, remove if you want auto address assignment
                    
                    SoftwareSerial mySerial(6, 7); // RX, TX
                    
                    byte cmd[9] = {0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79};
                    char response[9];
                    
                    // Child sensor ID's
                    #define CHILD_ID_AIQ 1
                    #define CHILD_ID_HUM   2
                    #define CHILD_ID_TEMP  3
                    
                    //#define AIQ_SENSOR_ANALOG_PIN 5
                    
                    // TEMP_TRANSMIT_THRESHOLD for temperature threshold.
                    #define HUMI_TRANSMIT_THRESHOLD 0.5
                    #define TEMP_TRANSMIT_THRESHOLD 0.5
                    #define AVERAGES 2
                    
                    unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
                    
                    float valAIQ =0.0;
                    float lastAIQ =0.0;
                    unsigned int loop_round = 0;
                    int lastppm = 0;
                    boolean preheat = true;  // wait TEMP_HUM_ROUNDS for preheat
                    
                    SI7021 humiditySensor;
                    
                    
                    MyMessage msg(CHILD_ID_AIQ, V_LEVEL);
                    MyMessage msg2(CHILD_ID_AIQ, V_UNIT_PREFIX);
                    MyMessage msgHum(CHILD_ID_HUM, V_HUM);
                    MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
                    
                    // Global settings
                    
                    boolean isMetric = true;
                    
                    
                    // Storage of old measurements
                    float lastTemperature = -100;
                    int lastHumidity = -100;
                    
                    RunningAverage raHum(AVERAGES);
                    
                    void setup()  
                    {
                    
                      mySerial.begin(9600);
                        
                      humiditySensor.begin();
                      
                      sleep(SLEEP_TIME);
                      
                      //pinMode(AIQ_SENSOR_ANALOG_PIN, INPUT);
                      
                      isMetric = getConfig().isMetric;
                      Serial.print(F("isMetric: ")); Serial.println(isMetric);
                      raHum.clear();
                         wait(200);
                    
                      send(msg2.set("ppm"));
                    }
                    
                    void presentation()  
                    { 
                     // Send the sketch version information to the gateway and Controller
                      
                      sendSketchInfo(SN, SV);
                      // Register all sensors to gateway (they will be created as child devices)
                      present(CHILD_ID_AIQ, S_AIR_QUALITY);
                      present(CHILD_ID_TEMP,S_TEMP);
                      present(CHILD_ID_HUM,S_HUM);
                    
                      wait(200);
                    
                      send(msg2.set("ppm"));
                    }
                    
                    void loop() { 
                    
                    
                        mySerial.write(cmd, 9);
                      mySerial.readBytes(response, 9);
                      int responseHigh = (int) response[2];
                      int responseLow = (int) response[3];
                      int co2ppm = (256 * responseHigh) + responseLow;
                      Serial.print(F("c02ppm :"));Serial.println(co2ppm);
                      if ( (abs(co2ppm - lastppm) >= 10)) {
                       
                          send(msg.set(co2ppm));
                          lastppm = co2ppm;
                        
                      }
                      
                      
                      si7021_env data = humiditySensor.getHumidityAndTemperature();
                      
                      raHum.addValue(data.humidityPercent);
                      
                      float diffTemp = abs(lastTemperature - (isMetric ? data.celsiusHundredths : data.fahrenheitHundredths)/100.0);
                      float diffHum = abs(lastHumidity - raHum.getAverage());
                    
                      Serial.print(F("TempDiff :"));Serial.println(diffTemp);
                      Serial.print(F("HumDiff  :"));Serial.println(diffHum); 
                    
                      
                      if (diffTemp > TEMP_TRANSMIT_THRESHOLD) {
                        float temperature = (isMetric ? data.celsiusHundredths : data.fahrenheitHundredths) / 100.0;
                        Serial.print("T: ");Serial.println(temperature);
                        send(msgTemp.set(temperature,1));
                        lastTemperature = temperature;
                      }
                      if (diffHum > HUMI_TRANSMIT_THRESHOLD) {
                        int humidity = data.humidityPercent;
                        
                        Serial.print("H: ");Serial.println(humidity);
                            
                        send(msgHum.set(humidity));
                        
                        lastHumidity = humidity;
                        
                      }
                    
                      
                      //Serial.println();
                      
                      // Power down the radio.  Note that the radio will get powered back up
                      // on the next write() call.
                      sleep(SLEEP_TIME); //sleep for: sleepTime
                    }
                    

                    I hope I made a mistake in the sketch since I'm running out of ideas and I don't want the sensors to be broken.
                    From where did you buy your sensor? I got them from aliexpress...

                    • Tomas
                    1 Reply Last reply
                    0
                    • FotoFieberF Offline
                      FotoFieberF Offline
                      FotoFieber
                      Hardware Contributor
                      wrote on last edited by
                      #14

                      @korttoma
                      Where is the preheat logic in your sketch?

                      Values in the preheat time could be wrong....

                      korttomaK 1 Reply Last reply
                      0
                      • FotoFieberF FotoFieber

                        @korttoma
                        Where is the preheat logic in your sketch?

                        Values in the preheat time could be wrong....

                        korttomaK Offline
                        korttomaK Offline
                        korttoma
                        Hero Member
                        wrote on last edited by
                        #15

                        @FotoFieber Yeah, I don't have preheat logic but that would only account for values when I first plug it in. I get the strange values even if it has been running for weeks. I will try to get a graph of what I see this evening so you can see what I mean. I'm seriously considering to just exclude the value 562 from being sent to the controller.

                        • Tomas
                        alexsh1A 1 Reply Last reply
                        0
                        • korttomaK korttoma

                          @FotoFieber Yeah, I don't have preheat logic but that would only account for values when I first plug it in. I get the strange values even if it has been running for weeks. I will try to get a graph of what I see this evening so you can see what I mean. I'm seriously considering to just exclude the value 562 from being sent to the controller.

                          alexsh1A Offline
                          alexsh1A Offline
                          alexsh1
                          wrote on last edited by
                          #16

                          @korttoma Sounds like you have a faulty sensor. Did you try analogue output? This is just to make sure the sensor is working.

                          There are PWM or UART.
                          Did you try both of them? I am using 5V Arduino Nano with no problem.

                          The digital pins communicate via PWM or UART. Output (and input for UART) of these ports work on 3.3 Volts - this means you should change the ARef of your Arduino - or rescale your values
                          
                          
                          1 Reply Last reply
                          0
                          • korttomaK Offline
                            korttomaK Offline
                            korttoma
                            Hero Member
                            wrote on last edited by
                            #17

                            0_1479910781525_InluftCO2.JPG

                            • Tomas
                            1 Reply Last reply
                            0
                            • alexsh1A Offline
                              alexsh1A Offline
                              alexsh1
                              wrote on last edited by
                              #18

                              @korttoma try to put it outside for some time to recalibrate. If it does not help, you may need to calibrate it.

                              Or you just got a bad one.

                              korttomaK 1 Reply Last reply
                              0
                              • alexsh1A alexsh1

                                @korttoma try to put it outside for some time to recalibrate. If it does not help, you may need to calibrate it.

                                Or you just got a bad one.

                                korttomaK Offline
                                korttomaK Offline
                                korttoma
                                Hero Member
                                wrote on last edited by korttoma
                                #19

                                @alexsh1 Will the sensor really recalibrate by itself if I put it outside?

                                I could send a "zero calibration" command via serial but then I would need to "input Nitrogen gas for 5 minutes when make zero calibration. "

                                Instead of exposing it to nitrogen gas could I just like you said put it outside and then send the "zero calibration" command?

                                To do the " span calibration" I would need to know what kind of values to send to it and I have no idea.

                                btw, here are some values I read now via serial at the office (I do not get the 562 value so far) but does these values seem reasonable for a well ventilated office?

                                
                                HiResp :3
                                LoResp :-21
                                Tem.channel :63
                                c02ppm :747 
                                
                                HiResp :3
                                LoResp :124
                                Tem.channel :63
                                c02ppm :892
                                
                                
                                HiResp :3
                                LoResp :21
                                Tem.channel :63
                                c02ppm :789
                                
                                HiResp :2
                                LoResp :-57
                                Tem.channel :63
                                c02ppm :455
                                
                                HiResp :2
                                LoResp :-110
                                Tem.channel :63
                                c02ppm :402
                                
                                HiResp :2
                                LoResp :99
                                Tem.channel :63
                                c02ppm :611
                                
                                HiResp :2
                                LoResp :51
                                Tem.channel :63
                                c02ppm :563
                                
                                HiResp :2
                                LoResp :20
                                Tem.channel :63
                                c02ppm :532
                                
                                HiResp :1
                                LoResp :-2
                                Tem.channel :63
                                c02ppm :254
                                
                                HiResp :1
                                LoResp :-32
                                Tem.channel :63
                                c02ppm :224
                                
                                HiResp :1
                                LoResp :-55
                                Tem.channel :63
                                c02ppm :201
                                
                                HiResp :1
                                LoResp :-68
                                Tem.channel :63
                                c02ppm :188
                                
                                HiResp :1
                                LoResp :-75
                                Tem.channel :63
                                c02ppm :181
                                
                                HiResp :1
                                LoResp :-79
                                Tem.channel :63
                                c02ppm :177
                                
                                HiResp :1
                                LoResp :-98
                                Tem.channel :63
                                c02ppm :158
                                
                                HiResp :1
                                LoResp :-102
                                Tem.channel :63
                                c02ppm :154
                                
                                HiResp :1
                                LoResp :-109
                                Tem.channel :63
                                c02ppm :147
                                
                                HiResp :1
                                LoResp :-116
                                Tem.channel :63
                                c02ppm :140
                                
                                HiResp :1
                                LoResp :-125
                                Tem.channel :63
                                c02ppm :131
                                
                                HiResp :1
                                LoResp :-124
                                Tem.channel :63
                                c02ppm :132
                                
                                HiResp :1
                                LoResp :111
                                Tem.channel :63
                                c02ppm :367
                                
                                HiResp :1
                                LoResp :115
                                Tem.channel :63
                                c02ppm :371
                                
                                HiResp :1
                                LoResp :121
                                Tem.channel :63
                                c02ppm :377
                                
                                HiResp :1
                                LoResp :114
                                Tem.channel :63
                                c02ppm :370
                                
                                HiResp :1
                                LoResp :-62
                                Tem.channel :63
                                c02ppm :194
                                
                                HiResp :1
                                LoResp :-7
                                Tem.channel :63
                                c02ppm :249
                                
                                HiResp :1
                                LoResp :-53
                                Tem.channel :63
                                c02ppm :203
                                
                                HiResp :1
                                LoResp :-68
                                Tem.channel :63
                                c02ppm :188
                                
                                HiResp :1
                                LoResp :-96
                                Tem.channel :63
                                c02ppm :160
                                
                                HiResp :1
                                LoResp :-111
                                Tem.channel :63
                                c02ppm :145
                                
                                HiResp :1
                                LoResp :-121
                                Tem.channel :63
                                c02ppm :135
                                
                                HiResp :1
                                LoResp :-127
                                Tem.channel :63
                                c02ppm :129
                                
                                HiResp :1
                                LoResp :-124
                                Tem.channel :63
                                c02ppm :132
                                
                                HiResp :1
                                LoResp :-126
                                Tem.channel :63
                                c02ppm :130
                                
                                HiResp :1
                                LoResp :-126
                                Tem.channel :63
                                c02ppm :130
                                
                                HiResp :1
                                LoResp :-110
                                Tem.channel :63
                                c02ppm :146
                                
                                HiResp :1
                                LoResp :-110
                                Tem.channel :63
                                c02ppm :146
                                
                                HiResp :1
                                LoResp :-60
                                Tem.channel :63
                                c02ppm :196
                                
                                HiResp :1
                                LoResp :-69
                                Tem.channel :63
                                c02ppm :187
                                
                                HiResp :1
                                LoResp :-101
                                Tem.channel :63
                                c02ppm :155
                                
                                HiResp :1
                                LoResp :-104
                                Tem.channel :63
                                c02ppm :152
                                
                                HiResp :1
                                LoResp :-114
                                Tem.channel :63
                                c02ppm :142
                                
                                HiResp :1
                                LoResp :-128
                                Tem.channel :63
                                c02ppm :128
                                
                                HiResp :1
                                LoResp :-122
                                Tem.channel :63
                                c02ppm :134
                                
                                HiResp :1
                                LoResp :122
                                Tem.channel :63
                                c02ppm :378
                                
                                HiResp :1
                                LoResp :119
                                Tem.channel :63
                                c02ppm :375
                                
                                HiResp :1
                                LoResp :-128
                                Tem.channel :63
                                c02ppm :128
                                
                                HiResp :1
                                LoResp :-86
                                Tem.channel :63
                                c02ppm :170
                                
                                HiResp :1
                                LoResp :-110
                                Tem.channel :63
                                c02ppm :146
                                
                                HiResp :1
                                LoResp :-123
                                Tem.channel :63
                                c02ppm :133
                                
                                HiResp :1
                                LoResp :-101
                                Tem.channel :63
                                c02ppm :155
                                
                                HiResp :1
                                LoResp :-75
                                Tem.channel :63
                                c02ppm :181
                                
                                HiResp :1
                                LoResp :-92
                                Tem.channel :63
                                c02ppm :164
                                
                                HiResp :1
                                LoResp :-101
                                Tem.channel :63
                                c02ppm :155
                                
                                HiResp :1
                                LoResp :-123
                                Tem.channel :63
                                c02ppm :133
                                
                                HiResp :1
                                LoResp :-114
                                Tem.channel :63
                                c02ppm :142
                                
                                HiResp :1
                                LoResp :-127
                                Tem.channel :63
                                c02ppm :129
                                
                                HiResp :1
                                LoResp :-120
                                Tem.channel :63
                                c02ppm :136
                                
                                HiResp :1
                                LoResp :126
                                Tem.channel :63
                                c02ppm :382
                                
                                HiResp :1
                                LoResp :118
                                Tem.channel :63
                                c02ppm :374
                                
                                HiResp :1
                                LoResp :-127
                                Tem.channel :63
                                c02ppm :129
                                
                                HiResp :1
                                LoResp :118
                                Tem.channel :63
                                c02ppm :374
                                
                                HiResp :1
                                LoResp :120
                                Tem.channel :63
                                c02ppm :376
                                
                                HiResp :1
                                LoResp :118
                                Tem.channel :63
                                c02ppm :374
                                
                                HiResp :1
                                LoResp :115
                                Tem.channel :63
                                c02ppm :371
                                
                                HiResp :1
                                LoResp :124
                                Tem.channel :63
                                c02ppm :380
                                
                                HiResp :1
                                LoResp :120
                                Tem.channel :63
                                c02ppm :376
                                
                                HiResp :1
                                LoResp :-119
                                Tem.channel :63
                                c02ppm :137
                                
                                HiResp :1
                                LoResp :-126
                                Tem.channel :63
                                c02ppm :130
                                
                                HiResp :1
                                LoResp :-127
                                Tem.channel :63
                                c02ppm :129
                                
                                HiResp :1
                                LoResp :-124
                                Tem.channel :63
                                c02ppm :132
                                
                                HiResp :1
                                LoResp :121
                                Tem.channel :63
                                c02ppm :377
                                
                                HiResp :1
                                LoResp :114
                                Tem.channel :63
                                c02ppm :370
                                
                                HiResp :1
                                LoResp :108
                                Tem.channel :63
                                c02ppm :364
                                
                                HiResp :1
                                LoResp :108
                                Tem.channel :63
                                c02ppm :364
                                
                                HiResp :1
                                LoResp :119
                                Tem.channel :63
                                c02ppm :375
                                
                                HiResp :1
                                LoResp :-110
                                Tem.channel :63
                                c02ppm :146
                                
                                HiResp :1
                                LoResp :124
                                Tem.channel :63
                                c02ppm :380
                                
                                HiResp :1
                                LoResp :127
                                Tem.channel :63
                                c02ppm :383
                                
                                HiResp :1
                                LoResp :-43
                                Tem.channel :63
                                c02ppm :213
                                
                                HiResp :1
                                LoResp :-72
                                Tem.channel :63
                                c02ppm :184
                                
                                HiResp :1
                                LoResp :-77
                                Tem.channel :63
                                c02ppm :179
                                
                                HiResp :1
                                LoResp :-63
                                Tem.channel :63
                                c02ppm :193
                                
                                HiResp :1
                                LoResp :-92
                                Tem.channel :63
                                c02ppm :164
                                
                                HiResp :1
                                LoResp :-105
                                Tem.channel :63
                                c02ppm :151
                                
                                HiResp :1
                                LoResp :-116
                                Tem.channel :63
                                c02ppm :140
                                
                                HiResp :2
                                LoResp :41
                                Tem.channel :63
                                c02ppm :553
                                
                                HiResp :2
                                LoResp :47
                                Tem.channel :63
                                c02ppm :559
                                
                                HiResp :2
                                LoResp :26
                                Tem.channel :63
                                c02ppm :538
                                
                                HiResp :2
                                LoResp :-107
                                Tem.channel :63
                                c02ppm :405
                                
                                HiResp :2
                                LoResp :-76
                                Tem.channel :63
                                c02ppm :436
                                
                                HiResp :2
                                LoResp :-97
                                Tem.channel :63
                                c02ppm :415
                                
                                HiResp :2
                                LoResp :-109
                                Tem.channel :63
                                c02ppm :403
                                
                                HiResp :2
                                LoResp :106
                                Tem.channel :63
                                c02ppm :618
                                
                                HiResp :2
                                LoResp :-96
                                Tem.channel :63
                                c02ppm :416
                                
                                HiResp :2
                                LoResp :80
                                Tem.channel :63
                                c02ppm :592
                                
                                HiResp :2
                                LoResp :69
                                Tem.channel :63
                                c02ppm :581
                                
                                HiResp :2
                                LoResp :40
                                Tem.channel :63
                                c02ppm :552
                                
                                HiResp :2
                                LoResp :84
                                Tem.channel :63
                                c02ppm :596
                                
                                HiResp :2
                                LoResp :45
                                Tem.channel :63
                                c02ppm :557
                                
                                HiResp :2
                                LoResp :3
                                Tem.channel :63
                                c02ppm :515
                                
                                HiResp :1
                                LoResp :-30
                                Tem.channel :63
                                c02ppm :226
                                
                                HiResp :1
                                LoResp :-62
                                Tem.channel :63
                                c02ppm :194
                                
                                HiResp :1
                                LoResp :-73
                                Tem.channel :63
                                c02ppm :183
                                
                                HiResp :1
                                LoResp :-75
                                Tem.channel :63
                                c02ppm :181
                                
                                HiResp :1
                                LoResp :-96
                                Tem.channel :63
                                c02ppm :160
                                
                                HiResp :1
                                LoResp :-89
                                Tem.channel :63
                                c02ppm :167
                                
                                HiResp :1
                                LoResp :-101
                                Tem.channel :63
                                c02ppm :155
                                
                                HiResp :1
                                LoResp :-112
                                Tem.channel :63
                                c02ppm :144
                                
                                HiResp :1
                                LoResp :-107
                                Tem.channel :63
                                c02ppm :149
                                
                                HiResp :1
                                LoResp :-112
                                Tem.channel :63
                                c02ppm :144
                                
                                HiResp :1
                                LoResp :-110
                                Tem.channel :63
                                c02ppm :146
                                
                                HiResp :1
                                LoResp :-124
                                Tem.channel :63
                                c02ppm :132
                                
                                HiResp :1
                                LoResp :-120
                                Tem.channel :63
                                c02ppm :136
                                
                                HiResp :1
                                LoResp :-75
                                Tem.channel :63
                                c02ppm :181
                                

                                Some of the values seem a bit low to me. Especially while the HiResp is 1 or the LoResp is negative.

                                I will do this test again at home when I get the chance.

                                • Tomas
                                1 Reply Last reply
                                0
                                • FotoFieberF Offline
                                  FotoFieberF Offline
                                  FotoFieber
                                  Hardware Contributor
                                  wrote on last edited by
                                  #20

                                  @korttoma
                                  In the technical specification I only find the calibration with nitrogen. I don't think, that putting it outside, will help, as it is usually at around 400 ppm at the moment. (AFAIK netatmo sets the lowest measured value in the last one or two weeks to 400 for calibration).

                                  alexsh1A 1 Reply Last reply
                                  0
                                  • alexsh1A Offline
                                    alexsh1A Offline
                                    alexsh1
                                    wrote on last edited by alexsh1
                                    #21

                                    @korttoma values are completely off. Co2 cannot go down below 300 level. This is a value of co2 outside (300-400).

                                    You have to calibrate it regularly. Zero calibration (this is what you are talking about) is different.

                                    8.1 The sensor should be calibrated regularly. The cycle time is better to be no more than 6 months. 8.2 Do not use the sensor in the high dusty environment for long time.
                                    8.3 Please use the sensor with correct power supply.
                                    8.4 Forbidden to cut the sensor pin.
                                    

                                    Try to put it outside for 10mins and then short pins 8 and 12 (see the photo below). This worked for me when I had some weird readings

                                    0_1479978102464_image.jpeg

                                    korttomaK 1 Reply Last reply
                                    1
                                    • FotoFieberF FotoFieber

                                      @korttoma
                                      In the technical specification I only find the calibration with nitrogen. I don't think, that putting it outside, will help, as it is usually at around 400 ppm at the moment. (AFAIK netatmo sets the lowest measured value in the last one or two weeks to 400 for calibration).

                                      alexsh1A Offline
                                      alexsh1A Offline
                                      alexsh1
                                      wrote on last edited by
                                      #22

                                      @FotoFieber Netatmo is using index also cannot be compared with mh-z14a.

                                      I think the idea putting the sensor outside is to stabilise it - the reading is in the range of 300-400

                                      1 Reply Last reply
                                      0
                                      • alexsh1A alexsh1

                                        @korttoma values are completely off. Co2 cannot go down below 300 level. This is a value of co2 outside (300-400).

                                        You have to calibrate it regularly. Zero calibration (this is what you are talking about) is different.

                                        8.1 The sensor should be calibrated regularly. The cycle time is better to be no more than 6 months. 8.2 Do not use the sensor in the high dusty environment for long time.
                                        8.3 Please use the sensor with correct power supply.
                                        8.4 Forbidden to cut the sensor pin.
                                        

                                        Try to put it outside for 10mins and then short pins 8 and 12 (see the photo below). This worked for me when I had some weird readings

                                        0_1479978102464_image.jpeg

                                        korttomaK Offline
                                        korttomaK Offline
                                        korttoma
                                        Hero Member
                                        wrote on last edited by
                                        #23

                                        @alexsh1 said:

                                        Try to put it outside for 10mins and then short pins 8 and 12 (see the photo below). This worked for me

                                        Where did you get this kind of information from? The MH-Z14.pdg I found online does not mention anything about this.

                                        • Tomas
                                        alexsh1A 1 Reply Last reply
                                        0
                                        • korttomaK korttoma

                                          @alexsh1 said:

                                          Try to put it outside for 10mins and then short pins 8 and 12 (see the photo below). This worked for me

                                          Where did you get this kind of information from? The MH-Z14.pdg I found online does not mention anything about this.

                                          alexsh1A Offline
                                          alexsh1A Offline
                                          alexsh1
                                          wrote on last edited by
                                          #24

                                          @korttoma It was recommended by an Aliexpress seller who sold me the sensor.

                                          Let's agree that Chinese documentation is not always comprehensive :)

                                          1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          20

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          Posts


                                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular