MQ135 - датчик качества воздуха + DHT22 - датчик температуры, контроль уровня CO2 на ARDUINO

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ม.ค. 2025

ความคิดเห็น • 55

  • @volgaleoking3264
    @volgaleoking3264 5 ปีที่แล้ว +11

    В указанной Вами библиотеке оч много ошибок в частности определения сопротивления датчика, то что вы удаляете умножение на значение опорного напряжения ровным счетом ничего не дает получаются попугаи и соответственно результат погоды в соседней галактике...
    На мой взгляд функция должна выглядеть вот так:
    float MQ135::getResistance() {
    float val = analogRead(_pin)*(5. / 1023.);
    return (5. - val)/val*RLOAD;
    }
    как результат показания в КОм при условии что RLOAD задается в КОм
    В этом варианте бьются единицы размерности Воль Ом, т.к. с аналогового входа вы считываете доли от опорного напряжения, вы что-то делаете с этими попугаями и хотите чтоб у вас получились Ом... такого не бывает!

  • @Serghei1958
    @Serghei1958 5 ปีที่แล้ว +5

    //MQ135 - датчик качества воздуха + DHT22 - датчик температуры, контроль уровня CO2 на ARDUINO
    #include "MQ135.h"
    #include "DHT.h"
    #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
    #define DHTPIN 7 // what digital pin we’re connected to
    DHT dht(DHTPIN, DHTTYPE);
    MQ135 gasSensor = MQ135(A0); //GAS Sensor PIN AO
    #include
    #include
    SimpleTimer timer;
    void setup() {
    Serial. begin{115200);
    dht.begin();
    timer.setInterval(5000L, sendTemps);
    }
    void sendTemps(){
    float h = dht.readHumldity(); // переменная влажности
    float t = dht.readTemperature(); // переменная температуры
    if (isnan(h) ll isnan(t)) {
    return;
    }
    float rzero = gasSensor.getRZero();
    float ppm = gasSensor.getPPM();
    float rzeroc = gasSensor.getCorrectedRZero( t, h);
    float ppsc = gasSensor.getCorrectedPPM(t, h);
    Serial.print("Temperature: ");
    Serial.println(t);
    Serial.print("Humidity: ");
    Serial.prlntln(h);
    Serial.print("AO: ");
    Serial.prlntln(analogRead (AO));
    Serial.print("Rzero: ");
    Serial.printIn(rzero);
    Serial.print("Rzeroc: ");
    Serial, pnntln (rzeroc);
    Serial.print("PPM: ");
    Serial.prlntln(ppm );
    Serial.print("PPMCcr: ");
    Serial.prlntln(ррвс);
    Serial.prlntln();
    }
    void loop() {
    timer.run();
    }

  • @МистерЭлджи
    @МистерЭлджи 3 ปีที่แล้ว +1

    Спасибо за видео с датчико воздуха

  • @Rudik4455
    @Rudik4455 6 ปีที่แล้ว +1

    какая погрешность у этого датчика? почему уже готовые приборы для измерения CO2 стоят в 10-30 раз дороже данного датчика?

    • @npoenergokom
      @npoenergokom  6 ปีที่แล้ว +1

      Виталий Сергеевич, большая у него погрешность. Для бытового применения с большой натяжкой.

    • @anatoliigrynchuk3325
      @anatoliigrynchuk3325 5 ปีที่แล้ว

      @@npoenergokom Так этот же датчик срабатывает на кучу газов... ?

    • @npoenergokom
      @npoenergokom  5 ปีที่แล้ว +1

      @@anatoliigrynchuk3325 , да

  • @ДмитрийСердюк-ч1й
    @ДмитрийСердюк-ч1й 5 ปีที่แล้ว

    Вопрос: А как Вам удалось в хорошо проветриваемом помещении получить влажность воздуха 20%???
    И это при температуре 20 градусов.... Ну я понимаю при минусовой температуре...

    • @npoenergokom
      @npoenergokom  5 ปีที่แล้ว +1

      Душно и жарко летом, солнечная сторона.
      Если открывать окна, будет еще жарче.

    • @olegyozhikov5577
      @olegyozhikov5577 3 ปีที่แล้ว

      Они используют копеечные китайские датчики, неужели вы думаете что от них можно получить точный результат?)

    • @ЕвгенийПанкратов-г5ь
      @ЕвгенийПанкратов-г5ь ปีที่แล้ว

      @@olegyozhikov5577 может быть корявая библиотека. Сам датчик довольно точный.

  • @dimakuro
    @dimakuro 6 ปีที่แล้ว

    Настроил esp8266+ MQ-135 + DHT-22 + OLED + Blynk. Все просто и понятно.
    Но есть проблема с калибровкой. MQ-135 калибрую в квартире +25, 25%, 400ppm. В моем случае, калибровочный rzeroc = 70. Далее несу в теплицу там +15, 90% и 1300ppm и текущий rzeroc=50.
    И сразу возникает вопрос. Можно ли верить в 1300ppm оставляя в прошивке квартирный rzeroc = 70 или все же перезалить прошивку с rzeroc=50... Если заменю калибровочный параметр, то 1300ppm превратятся примерно в 600ppm. Разница катастрофически огромная.
    Ну и стоит добавить, что реальная влажность по аналоговому гигрометру всего 75%, а цифровой датчик не рассчитан на влажность выше 60% и его глючит, а данные PPM формируются в том числе с учетом влажности. Короче не погодная станция, а колода карт для гадания :))
    Тем не менее, толк от нее есть. Вчера намерил 2200ppm, проветрил до 1300ppm и уже не так страшно. Теперь осталось понять 1300ppm у меня и еще усилить вентиляцию или 600ppm и вентиляция достаточная.
    Понятно, что нужен MH-Z19, но наша доблестная таможня уже 2 месяца как арестовала мою посылку с двумя этими датчиками. Жаба душит покупать еще два, жду решения таможни.

    • @npoenergokom
      @npoenergokom  6 ปีที่แล้ว

      Дмитрий Курочкин , таможня датчики арестовала??? Основания???
      Ко мне тоже последнее время посылки не доходят, но арестовывают их или просто теряются не знаю. Как узнали, что таможня арестовала посылку?
      С esp8266 и mq135 еще большая колода карт, так как ацп зависит от Wi-Fi. Т.е напряжение чуть проедет при отправке данных, что сказывается на точности. Лучше делать на atmege и данные отправть по npf24l01 на nodemcu или одноплатник. У меня так устроено

    • @dimakuro
      @dimakuro 6 ปีที่แล้ว

      Просто статус отправления "задержано таможней", отправлял за дорого через SPSR, а оно лежит на московской таможне уже второй месяц. Переписываюсь с таможней, но пока стандартные отписки типа "будем разбираться и возможно что-то вам ответим, а пока сами не знаем кто задержал, зачем и где оно вообще находится" :) SPSR вообще на меня наплевать, мотивируют тем, что пока они не получили у таможни, то они к этой посылке вообще отношения не имеют и это 100% мои проблемы :) Чудный бизнес.
      Для меня точность особо не важна. Нужно просто понимать больше 1000ppm или меньше. Не думаю, что погрешность от самой esp8266 будет выше 20%.
      Что думаете по поводу rzeroc? Брать его из среды настройки с +25 и 25%? Или из среды эксплуатации с +15 и 80%? От этой переменной многое зависит.
      Понятно, что MQ-135 - это "сферический конь в вакууме", но хоть на что-то хочется опираться при построении вентиляции, пока нормальный датчик растаможивается.
      Вот два дня назад было 2000-2500ppm и это прямо сильно ощущалось при вдыхании воздуха. А сейчас то ли 1300ppm то ли 600ppm... не понятно. Но дышать уже можно.
      И второй вопрос сразу. Может сталкивались с датчиками влажности для влажных помещений? Чтобы давал точные данные при влажности воздуха 75-95%. Мне важно чтобы было 85%. 75% - мало, 95% - уже много. Сейчас решаю проблему вручную через аналоговые датчики, электронные все врут.

    • @npoenergokom
      @npoenergokom  6 ปีที่แล้ว

      Дмитрий Курочкин , в комментариях к самой библиотеке написано при какой температуре надо брать зеро (надо глянуть) Берите лучше 25ºС и 25%.

    • @ВладиславХохлов-и4ж
      @ВладиславХохлов-и4ж 6 ปีที่แล้ว

      здравствуйте, а могли бы поделиться скетчем, заранее благодарен

  • @1raskumar
    @1raskumar 5 ปีที่แล้ว

    большое спасибо за пояснения.но при выводе нет данных.только крякозябры.при этом каждый датчик по отдельности отлично все передает на моих скетчах.возможно проблема в бибилотеках TimeLib.h и SimpleTimer,и я скачал какие-то другие с теми же названиями.вы можете дать сылки на те,что использовали?

    • @npoenergokom
      @npoenergokom  5 ปีที่แล้ว

      Скорость сериал порта и монитора порта сверяли!

  • @Huymamin
    @Huymamin 7 ปีที่แล้ว +1

    А каким датчиком нюхать утечку газа на даче из балона

    • @npoenergokom
      @npoenergokom  7 ปีที่แล้ว +1

      Huymamin можете этим же датчиком "нюхать", он хорошо реагирует на гарючие газы.
      Можно просто подключть к цифровому пину - реле, или использовать модуль SIM800l он будет звонить к Вам как учюет утечку газа.
      скоро соберу устройство для теплицы, на sim800l и этих двух датчиках (MQ135 и DHT22) для контроля температуры и СО2.
      (В зависимости значений будет открываться окошко теплицы)
      Можно будет через мобильный интернет мониторить показания с датчиков.

  • @Одинденьизжизниселянина
    @Одинденьизжизниселянина 7 ปีที่แล้ว

    Подскажите пожалуйста. Приобрел датчик MG811 сдесь: ru.aliexpress.com/item/wholesale-MG811-carbon-dioxide-sensor-CO2-sensor-gas-sensor-module-free-shipping/1160134439.html?spm=a2g0s.9042311.0.0.diD8j5
    залил код вот отсюда: sandboxelectronics.com/?p=147#Signal_Conditioning_Circuit
    Вроде как работает но на то что я на него дую или зажигалкой газ подаю не реагирует а сам выдает очень высокий ppm может он сломанный прибыл? Или подскажите что не так плиз. Еще где код копировал там датчик чем то отличается вроде.
    Монитор выдает это: yadi.sk/i/NmzsGI973Rki6A

    • @npoenergokom
      @npoenergokom  7 ปีที่แล้ว

      Тимофеев Евгений , посмотрите какие данные на аналоговом порту

    • @Одинденьизжизниселянина
      @Одинденьизжизниселянина 7 ปีที่แล้ว

      НПО ЭнергоКомплект, вроде как 4.6в

    • @npoenergokom
      @npoenergokom  7 ปีที่แล้ว

      Тимофеев Евгений, аналоглвый пин не в вольтах выдает, а в значениях от 0 до 1023.
      Простой скетч с выводом в сериал монитор данные с аналогово порта, загрузите и протестируйте датчик. Зажигалкой или по дыша на него

    • @Одинденьизжизниселянина
      @Одинденьизжизниселянина 7 ปีที่แล้ว

      Добрый день НПО ЭнергоКомплект. Датчик протестировал на выходе выдает 856 на зажигалку не реагирует и т.д. Светодиод тоже не загорается хотя я его подкрутил до того момента где он переходит в рабочее положение (горит) и немного отпустил чтобы погас дышу, газом ни как не работает. Хотя мультимитром протестировал сам датчик сопротивление есть может что то можно перепоять? Р.С. Сам датчик при подключении немного греется что говорит что он работает.

    • @npoenergokom
      @npoenergokom  7 ปีที่แล้ว

      Тимофеев Евгений попробуйте найти даташит на датчик и проверить радиоэлементы

  • @night_wolfq
    @night_wolfq 7 ปีที่แล้ว

    не могу понять сделал все правильно но ppm и с корректировкой у меня около 16-20

    • @npoenergokom
      @npoenergokom  7 ปีที่แล้ว

      SIB NIC , какой микроконтроллер?

    • @night_wolfq
      @night_wolfq 7 ปีที่แล้ว

      uno, за место DHT22 у меня AM2320

    • @night_wolfq
      @night_wolfq 7 ปีที่แล้ว

      TEMP: 23.60
      Vlah: 30.20
      A0: 70
      rzero: 211.93
      rzeroc: 222.17
      ppm: 23.74
      ppmc: 21.73

    • @night_wolfq
      @night_wolfq 7 ปีที่แล้ว

      единственная аномалия на выходе не 5v а 4.87v, usb через хаб не дает 5, похоже надо калибровать хз как только

    • @night_wolfq
      @night_wolfq 7 ปีที่แล้ว

      пересмотрел пару десятков видовос... там у всех от 20 до 200, все нормально с датчиком просто я живу за городом.. а вы видимо в центре города?

  • @АлексейАртемов-э1я
    @АлексейАртемов-э1я 7 ปีที่แล้ว +6

    скетч зажал?

    • @Serghei1958
      @Serghei1958 5 ปีที่แล้ว +4

      //MQ135 - датчик качества воздуха + DHT22 - датчик температуры, контроль уровня CO2 на ARDUINO
      #include "MQ135.h"
      #include "DHT.h"
      #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
      #define DHTPIN 7 // what digital pin we’re connected to
      DHT dht(DHTPIN, DHTTYPE);
      MQ135 gasSensor = MQ135(A0); //GAS Sensor PIN AO
      #include
      #include
      SimpleTimer timer;
      void setup() {
      Serial. begin{115200);
      dht.begin();
      timer.setInterval(5000L, sendTemps);
      }
      void sendTemps(){
      float h = dht.readHumldity(); // переменная влажности
      float t = dht.readTemperature(); // переменная температуры
      if (isnan(h) ll isnan(t)) {
      return;
      }
      float rzero = gasSensor.getRZero();
      float ppm = gasSensor.getPPM();
      float rzeroc = gasSensor.getCorrectedRZero( t, h);
      float ppsc = gasSensor.getCorrectedPPM(t, h);
      Serial.print("Temperature: ");
      Serial.println(t);
      Serial.print("Humidity: ");
      Serial.prlntln(h);
      Serial.print("AO: ");
      Serial.prlntln(analogRead (AO));
      Serial.print("Rzero: ");
      Serial.printIn(rzero);
      Serial.print("Rzeroc: ");
      Serial, pnntln (rzeroc);
      Serial.print("PPM: ");
      Serial.prlntln(ppm );
      Serial.print("PPMCcr: ");
      Serial.prlntln(ррвс);
      Serial.prlntln();
      }
      void loop() {
      timer.run();
      }

    • @BizonBess
      @BizonBess 4 ปีที่แล้ว +1

      ​@@Serghei1958 есть косяки, Поковырял его до состояния "заливается на дуню" но по двум показателям есть вопросы.
      //MQ135 - датчик качества воздуха + DHT22 - датчик температуры, контроль уровня CO2 на ARDUINO
      #include "MQ135.h"
      #include "DHT.h"
      #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
      #define DHTPIN 7 // what digital pin we’re connected to
      DHT dht(DHTPIN, DHTTYPE);
      MQ135 gasSensor = MQ135(A0); //GAS Sensor PIN AO
      #include
      #include
      SimpleTimer timer;
      void setup()
      {
      Serial.begin(115200);
      dht.begin();
      timer.setInterval(5000L, sendTemps);
      Serial.println("Connect Epta"); delay (500); Serial.print("B"); delay (200); Serial.print("I"); delay (200); Serial.print("Z"); delay (200); Serial.print("O"); delay (200); Serial.println("N"); delay (200);
      }
      void sendTemps()
      {
      float h = dht.readHumidity(); // переменная влажности
      float t = dht.readTemperature(); // переменная температуры
      if (isnan(h) || isnan(t))
      {
      return;
      }
      float rzero = gasSensor.getRZero();
      float ppm = gasSensor.getPPM();
      float rzeroc = gasSensor.getCorrectedRZero( t, h);
      float ppsc = gasSensor.getCorrectedPPM(t, h);
      Serial.print("Temperature: ");
      Serial.println(t);
      Serial.print("Humidity: ");
      Serial.println(h);
      Serial.print("AO: ");
      Serial.println(analogRead (A0));
      Serial.print("Rzero: ");
      Serial.println(rzero);
      Serial.print("Rzeroc: ");
      Serial.println (rzeroc);
      Serial.print("PPM: ");
      Serial.println(ppm);
      Serial.print("PPMCcr: ");
      Serial.println(ppsc);
      Serial.println();
      }
      void loop()
      {

      timer.run();
      }

  • @FiremanSindikat
    @FiremanSindikat 5 ปีที่แล้ว

    и как он понимает, что это СО а не любой другой газ?

    • @npoenergokom
      @npoenergokom  5 ปีที่แล้ว

      Ни как, расчёт делается по формуле исходя из сопростивления.
      И расчет приблизительный. Более точные датчики стоят от 900р

  • @olegilenkiv4774
    @olegilenkiv4774 6 ปีที่แล้ว +6

    Спасибо что скетч не дал. Жмот

    • @npoenergokom
      @npoenergokom  6 ปีที่แล้ว +2

      Пожалуйста. В качестве благодарности, можете на поддержку канала отправить, Вы же не жмот.

    • @npoenergokom
      @npoenergokom  5 ปีที่แล้ว +3

      @@Serghei1958 , что бы у тебя сгорели не только ардуино!))))

  • @АлексПам
    @АлексПам 6 ปีที่แล้ว

    CO2 это углекислый газ который сравнительно безопасен. Как датчик реагирует на угарный газ CO?, он то и опасен.

    • @npoenergokom
      @npoenergokom  6 ปีที่แล้ว

      Алекс Пам на угарный газ он так же отреагирует

    • @deviantstudio
      @deviantstudio 6 ปีที่แล้ว +4

      co2 безопасен? предлагаю подышать тебе чистым co2 пару минут

  • @ЕвгенийПанкратов-г5ь
    @ЕвгенийПанкратов-г5ь ปีที่แล้ว

    В чем смысл этого датчика, он не точный. Библиотека корявая

    • @npoenergokom
      @npoenergokom  ปีที่แล้ว

      На вытяжку его можно поставить

  • @rytsar
    @rytsar 6 ปีที่แล้ว

    непонятно

    • @npoenergokom
      @npoenergokom  6 ปีที่แล้ว

      Надо изучать с++, тогда будет понятно

  • @serg-jy4mj3br8f
    @serg-jy4mj3br8f 3 ปีที่แล้ว +1

    НПО ЭнергоКомплект - сайт пустобрехов.......

  • @valenok
    @valenok 5 ปีที่แล้ว

    Где скетчи для ардуино? ептить, пожалейте свое и моё время, никому не интересно что вы можете спаять два проводка.

    • @npoenergokom
      @npoenergokom  5 ปีที่แล้ว

      Пожалейте моё время, скачайте и установите библиотеку и скетч появится в примерах.

  • @anatolysokolov
    @anatolysokolov 4 ปีที่แล้ว +1

    "открываем cpp wordpad-ом" :)

  • @Serghei1958
    @Serghei1958 5 ปีที่แล้ว +2

    ЖМОТ - да чтоб у тебя СГОРЕЛИ все Ардуино!!!
    ууууууууууууууу!!!!!!!!!!!!!!!!!!

  • @fillife2646
    @fillife2646 5 ปีที่แล้ว +1

    сак кок