Arduino MQ-135

Technogrover
Offline
Зарегистрирован: 23.07.2018

Доброго дня всем!Прошу совета,что я упускаю в коде?Вчера подключил датчик и он начал слишком низкие значения ППМ показывать,решил оставить до утра,сегодня включил и он на несколько секунд пришел в норму,затем опять опустился до 2.66 ППМ,что с ним не так?Контакты проверил,все нормально.

#include <TimeLib.h>
#include <SimpleTimer.h>

#include <DHT.h>
#include "MQ135.h"

#define DHTPIN 10
#define DHTTYPE DHT22

MQ135 gasSensor = MQ135(A0);

DHT dht(DHTPIN, DHTTYPE);
SimpleTimer timer;


void setup()
{
  Serial.begin(9600);
  dht.begin();
  timer.setInterval(5000L, sendSensor);
}
void sendSensor()
{
  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 ppmc = gasSensor.getCorrectedPPM(t, h);
  Serial.print("Temperature: ");
  Serial.println(t);
  Serial.print("Humidity: ");
  Serial.println(h);
  Serial.print("A0 : ");
  Serial.println(analogRead (A0));
  Serial.print("Rzero: ");
  Serial.println(rzero);
  Serial.print("Rzeroc: ");
  Serial.println(rzeroc);
  Serial.print("PPM: ");
  Serial.println(ppm);
  Serial.print("PPMCor: ");
  Serial.println(ppmc);
  Serial.println();
}


void loop() {
  timer.run();

}

В мониторе такая пурга:

Humidity: 47.80
A0 : 33
Rzero: 467.01
Rzeroc: 503.44
PPM: 2.66
PPMCor: 2.16
 
Temperature: 23.10
Humidity: 47.80
A0 : 33
Rzero: 467.01
Rzeroc: 503.44
PPM: 2.66
PPMCor: 2.16
 

 

bwn
Offline
Зарегистрирован: 25.08.2014

Судя по значению с А0, он и отдает что то подобное. Сам то датчик живой, а то злые языки утверждают, что они просто от времени подыхают.

И это, схему вашего  подключения приложите.

Technogrover
Offline
Зарегистрирован: 23.07.2018

Думаете,что провод сигнальный сбои дает?
Так и не понял,как тут фото вставлять?
Схема простая - А0-А0 ардуино,но и питание с землей к таким же контактам шилда для арудины нано.
Сам датчик только купил,поэтому время на него не могло подействовать:))

sadman41
Offline
Зарегистрирован: 19.10.2016

Какой газ измеряете?

Датчики типа MQ требуют 48-часовой прожарки перед использованием.

https://www.winsen-sensor.com/d/files/PDF/Semiconductor%20Gas%20Sensor/MQ135%20(Ver1.4)%20-%20Manual.pdf -> Preheat time Over 48 hours

bwn
Offline
Зарегистрирован: 25.08.2014

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

Technogrover
Offline
Зарегистрирован: 23.07.2018

Co2 пытаюсь мерить.Вот с утра и поставил на 24 часа,но эти значения ППМ мне покоя не дают,почему они в 10 раз меньше должного показывают?Или стабилизируются потом?С утра при первом подключении,они показали,правда не долго,нормальные значения,вот и меня терзают сомнения,что оставив на 24 хотя бы часа,они так и будут показывать чушь,разве нет?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Technogrover пишет:
решил оставить до утра,сегодня включил

Лучше бы Вы оставили его включённым. Вы вообще его даташит читали? У него время разогрева: Preheat time: Over 24 hour.

Практика работы с таким датчиками показывает, что чем дольше он хранился без работы, тем дольше его надо прогревать, чтобы он восстановился и ожил. Если хранился слишком долго (4-5 лет), то не оживёт вовсе. Т.е. это датчики для приборов, которые работают постоянно, не выключаясь.

Так что, оставьте на сутки (не меньше). По крайней мере, нагреватель чтобы работал. Пусть прогреется и восстановится. Потом посмотрите. Если проблема сохранится, будем думать

sadman41
Offline
Зарегистрирован: 19.10.2016

Technogrover пишет:
Co2 пытаюсь мерить.

Для этого, слава богу, есть нормальные NDIR сенсоры. Перед MQ будете скакать как мартышка - калибровать постоянно.

Technogrover пишет:
они так и будут показывать чушь,разве нет?

Не знаю, я не мазохист и не опытный электронщик/метролог, поэтому мимо MQ прохожу сразу.

sadman41
Offline
Зарегистрирован: 19.10.2016

ЕвгенийП пишет:

Практика работы с таким датчиками показывает, что чем дольше он хранился без работы, тем дольше его надо прогревать, чтобы он восстановился и ожил. Если хранился слишком долго (4-5 лет), то не оживёт вовсе.

А есть какие-то системные исследования на этот счёт? В даташитах на разные MQ алгоритмы сбора данных различаются даже.

Technogrover
Offline
Зарегистрирован: 23.07.2018

Скорей всего так и сделаю,а вот подскажите,а сериал-монитор оставить включенным или закрыть в данной ситуации лучше?Просто,например,в Блунке,перезагрузка сериал монитора давала как бы реконнект к серверу,причем удачно,тут он таким же образом действовать будет?Закрыть его на сутки лучше или открытым держать?

Technogrover
Offline
Зарегистрирован: 23.07.2018

sadman41 пишет:

Technogrover пишет:
Co2 пытаюсь мерить.

Для этого, слава богу, есть нормальные NDIR сенсоры. Перед MQ будете скакать как мартышка - калибровать постоянно.

Technogrover пишет:
они так и будут показывать чушь,разве нет?

Не знаю, я не мазохист и не опытный электронщик/метролог, поэтому мимо MQ прохожу сразу.


MH-Z19B оставил напоследок,все равно проект еще полностью не готов,а так вроде для теплички небольшой mq 135 должен работать нормально,но про нормальные НДИР-сенсоры знаю;))

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Коллективный разум этого форума говорит, что даччики серии MQ есть ни что иное, как енераторы случайных чисел.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Знаете, насчёт системных исследований я не в курсе. Также я вполне уважаю Ваше и деда мнение о том, что эти датчики неточны, хотя не могу ни подтвердить его, ни опровергнуть.

Но, мой общий принцип (и в вопросе использования/не использования GOTO, и в вопросе использования/не использования MQ): всякий инструмент хорош, когда используется по назначению и с умом.

В плане MQ "с умом" для меня  значит следующее:

1. Я адекватно оцениваю свой уровень в электронике и понимаю, что точный прибор мне не создать даже с очень хорошими комплектующими.

2. Зато я могу создать не приборы-измерители, а приборы-триггеры.

Например, две реальные (мои, а не из сети) истории про MQ.

1. Самоделка на основе MQ4 уже три года висит у меня в котельной. Её назначение поднять тревогу в случае утечки. Периодически (вернее не периодически, а когда вдруг захочется) я проверяю живо ли устройство. Проверка простая, я беру китайский газовый баллончик с пшикалкой и слегка  пшикаю в комнате. Устройство начинает радостно верещать. Значит, работает. Отключаю, проветриваю, включаю снова и спокойно живу дальше.

2. Зять как-то забеспокоился, что в квартире (на кухне)  кажется чуть попахивает газом, но именно "кажется, чуть-чуть" - уверенности не было. Внук (тогда 11-летнй) спаял на зелёной макетке схему из даташита MQ4 с подстроечным резистором. В коридоре, возле входной двери выкрутил резистор так, что вот-вот заверещит и понёс в сторону кухни. По пути устройство начинало уверенно верещать. Опыт он повторил несколько раз и убедился, что таки утечка есть, т.к. в кухне концентрация выше, чем в коридоре. Вызвали газовиков, те нашили и устранили небольшую утечку.

Как видите, в обоих случаях мне по большому счёту пофиг правильно показывает датчик или нет. Лишь бы он хоть как-то реагировал на изменения концентрации. И в таких триггерных приборах этот датчик отлично служит и вполне исправно выполняет свою работу.

Кстати, Technogrover, суток прогрева может и не хватить. Я тут вспомнил, что моё устройство в котельной вышло на режим только суток через пять. А в течение этого времени несколько раз начинало давать ложную тревогу, т.к. показания постепенно повышались. Но потом стабилизировалось и вот уж три года работает нормально.

Technogrover
Offline
Зарегистрирован: 23.07.2018

ЕвгенийП пишет:

Знаете, насчёт системных исследований я не в курсе. Также я вполне уважаю Ваше и деда мнение о том, что эти датчики неточны, хотя не могу ни подтвердить его, ни опровергнуть.

Но, мой общий принцип (и в вопросе использования/не использования GOTO, и в вопросе использования/не использования MQ): всякий инструмент хорош, когда используется по назначению и с умом.

В плане MQ "с умом" для меня  значит следующее:

1. Я адекватно оцениваю свой уровень в электронике и понимаю, что точный прибор мне не создать даже с очень хорошими комплектующими.

2. Зато я могу создать не приборы-измерители, а приборы-триггеры.

Например, две реальные (мои, а не из сети) истории про MQ.

1. Самоделка на основе MQ4 уже три года висит у меня в котельной. Её назначение поднять тревогу в случае утечки. Периодически (вернее не периодически, а когда вдруг захочется) я проверяю живо ли устройство. Проверка простая, я беру китайский газовый баллончик с пшикалкой и слегка  пшикаю в комнате. Устройство начинает радостно верещать. Значит, работает. Отключаю, проветриваю, включаю снова и спокойно живу дальше.

2. Зять как-то забеспокоился, что в квартире (на кухне)  кажется чуть попахивает газом, но именно "кажется, чуть-чуть" - уверенности не было. Внук (тогда 11-летнй) спаял на зелёной макетке схему из даташита MQ4 с подстроечным резистором. В коридоре, возле входной двери выкрутил резистор так, что вот-вот заверещит и понёс в сторону кухни. По пути устройство начинало уверенно верещать. Опыт он повторил несколько раз и убедился, что таки утечка есть, т.к. в кухне концентрация выше, чем в коридоре. Вызвали газовиков, те нашили и устранили небольшую утечку.

Как видите, в обоих случаях мне по большому счёту пофиг правильно показывает датчик или нет. Лишь бы он хоть как-то реагировал на изменения концентрации. И в таких триггерных приборах этот датчик отлично служит и вполне исправно выполняет свою работу.

Кстати, Technogrover, суток прогрева может и не хватить. Я тут вспомнил, что моё устройство в котельной вышло на режим только суток через пять. А в течение этого времени несколько раз начинало давать ложную тревогу, т.к. показания постепенно повышались. Но потом стабилизировалось и вот уж три года работает нормально.


В принципе,готов и двое суток ждать,мне только непонятно,держать ли монитор открытым все время или закрыть и периодически проверять состояние?
Мне тоже по сути нужен этот прибор как триггер на состояние теплицы.;))

Technogrover
Offline
Зарегистрирован: 23.07.2018

Возможно и пять буду ждать:((Как бы ноут не сварился от такой долгой работы;)

sadman41
Offline
Зарегистрирован: 19.10.2016

Достаточно подать питание на нагреватель сенсора. Т.е. к нормальной USB-зарядке его примотать.

b707
Онлайн
Зарегистрирован: 26.05.2017

Technogrover пишет:
Возможно и пять буду ждать:((Как бы ноут не сварился от такой долгой работы;)

ноут то тут при чем? и монитор порта? все что нужно - это подать питание на ардуину. Включите ее в любой блок питания с USB-выходом, да хоть даже в зарядку для мобильника

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не нужен никакой монитор. Просто подайте питание на нагреватель.

Technogrover
Offline
Зарегистрирован: 23.07.2018

sadman41 пишет:

Достаточно подать питание на нагреватель сенсора. Т.е. к нормальной USB-зарядке его примотать.


То есть,если так можно,то я могу в шилд вставить бп на 7 или 9 вольт,а саму плату оставить подключенной по юсб,верно и так можно было бы сделать?

Technogrover
Offline
Зарегистрирован: 23.07.2018

Просто есть от меги из алика бп на 9в-1а и питерский для наны 7,5в-2,5а,какой из них лучше был бы?И можно так отдельно подать получается два источника питания?

Logik
Offline
Зарегистрирован: 05.08.2014

Уже сто раз перетерто же, в поиске  на форуме видно забанили. Датчик до прогрева выдает сильно завышеные показания, при прогреве они пошти експонентой падают до вменяемых. Ищи Technogrover и обретеш знания, я когдато с картинками даже постил. Прогрев нужен для "выгорания" (каталитического разложения) примесей адсорбированых на поверхности детектора за время хранения. Но если у тебя изначально нихера не показывает - то оно и не станет.

Technogrover
Offline
Зарегистрирован: 23.07.2018

Я не спрашиваю,зачем прогревать или,что Вы там имеете ввиду,мистер Ложик,я спросил про бп лучший для этого дела и все.

Logik
Offline
Зарегистрирован: 05.08.2014

А.. ну успехов ;)

Technogrover
Offline
Зарегистрирован: 23.07.2018

И Вам;))

nik182
Онлайн
Зарегистрирован: 04.05.2015

Я тут достал из стола этот датчик после двух лет лежания. Тогда его откалибровал по азотно-углекислотной смеси. Он даже показывал адекватные значения. Сейчас запитал от другого БП и был сильно удивлён. Оказалось что показания сильно зависят от БП. При разных БП показания в одной и той же комнате менялись от 200 до 700 PPM. При помещении датчика в пакет, который предварительно надут одним выдохом и справочники говорят что СО2 в нем должен при этом быть от 1000 до 1200PPM, показания прыгали на 300 - 400 единиц, но опять же зависили от напряжения БП. 

Logik
Offline
Зарегистрирован: 05.08.2014

Technogrover пишет:
И Вам;))

не  стоит мне желать, у меня уже есть http://arduino.ru/forum/programmirovanie/rabota-s-datchikom-gaza-mq135#comment-257344

Logik
Offline
Зарегистрирован: 05.08.2014

nik182 пишет:

Я тут достал из стола этот датчик после двух лет лежания. Тогда его откалибровал по азотно-углекислотной смеси. Он даже показывал адекватные значения. Сейчас запитал от другого БП и был сильно удивлён. Оказалось что показания сильно зависят от БП. При разных БП показания в одной и той же комнате менялись от 200 до 700 PPM. При помещении датчика в пакет, который предварительно надут одним выдохом и справочники говорят что СО2 в нем должен при этом быть от 1000 до 1200PPM, показания прыгали на 300 - 400 единиц, но опять же зависили от напряжения БП. 

не думаю что от БП зависит. Он и без замены БП уплывет. И какие нафиг ppm у него? для ppm нужна селективность а её нет.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

nik182 пишет:

зависили от напряжения БП. 

Так он же в плечо делителя включается. Чего Вы ждали?

nik182
Онлайн
Зарегистрирован: 04.05.2015

При калибровке были отличные PPMы. И даже дома на балконе ночью летом 400 PPM показывал. Но вот с селективностью это да. Жена лак для ногтей в соседней комнате открывала а  РРМ в гору лезли. 

Technogrover
Offline
Зарегистрирован: 23.07.2018

Logik пишет:

Technogrover пишет:
И Вам;))

не  стоит мне желать, у меня уже есть http://arduino.ru/forum/programmirovanie/rabota-s-datchikom-gaza-mq135#comment-257344


Кстати,тут наверное тоже бы не сошлись во мнениях - ту 5 спорную я убрал из кода,но вы ее почему-то горели желанием оставить;))

nik182
Онлайн
Зарегистрирован: 04.05.2015

Пока один и тот же БП был ничего не ждал. Теперь уже не помню какой. Да и ладно. Z19B приехал на днях. Его будем мучать. Чойто батареи совсем холодные. Форточку проветривать страшно открывать. Будем за со2 следить. 

Logik
Offline
Зарегистрирован: 05.08.2014

nik182 пишет:

 И даже дома на балконе ночью летом 400 PPM показывал. 

И шо он показывал 400? ppm CO2? Нихрена. За окном чего только не летает и все оно дает свой вклад в показания. Может там 300 ppm CO2 а остальное углеводами, фенолами, и пр. дерьмом. Без селективности нет смысла в ppm.

Logik
Offline
Зарегистрирован: 05.08.2014

Technogrover пишет:
Logik пишет:

Technogrover пишет:
И Вам;))

не  стоит мне желать, у меня уже есть http://arduino.ru/forum/programmirovanie/rabota-s-datchikom-gaza-mq135#comment-257344

... ту 5 спорную я убрал из кода,но вы ее почему-то горели желанием оставить;))

Чо?!

Technogrover
Offline
Зарегистрирован: 23.07.2018

Та,на которую автор умножает в cpp файле для getResistance

nik182
Онлайн
Зарегистрирован: 04.05.2015

Logik пишет:

nik182 пишет:

 И даже дома на балконе ночью летом 400 PPM показывал. 

И шо он показывал 400? ppm CO2? Нихрена. За окном чего только не летает и все оно дает свой вклад в показания. Может там 300 ppm CO2 а остальное углеводами, фенолами, и пр. дерьмом. Без селективности нет смысла в ppm.

Я не специалист в РРМ на улице. Верю справочникам. Там пишут что меньше 400 не бывает. Даже Z19B при автокалибровке следит за показаниями и минимальным приписывает 400 РРМ. И MQ при калибровке на 400 настраивал. Так что когда больше 400 показывает то действительно нельзя сказать что там в воздухе плавает, тут согласен. 

Logik
Offline
Зарегистрирован: 05.08.2014

nik182 пишет:

Logik пишет:

nik182 пишет:

 И даже дома на балконе ночью летом 400 PPM показывал. 

И шо он показывал 400? ppm CO2? Нихрена. За окном чего только не летает и все оно дает свой вклад в показания. Может там 300 ppm CO2 а остальное углеводами, фенолами, и пр. дерьмом. Без селективности нет смысла в ppm.

Я не специалист в РРМ на улице. Верю справочникам. Там пишут что меньше 400 не бывает. Даже Z19B при автокалибровке следит за показаниями и минимальным приписывает 400 РРМ. И MQ при калибровке на 400 настраивал. Так что когда больше 400 показывает то действительно нельзя сказать что там в воздухе плавает, тут согласен. 

А это где такое пишут? Я например читал что среднее - 400, а местами точно есть выше, значить местами должно быть ниже. Кроме того, пару лет назад датчик работающий непрерывно многие месяцы вдруг "провалился" на сутки существенно ниже обычного. Попробую найти.

вот http://arduino.ru/forum/apparatnye-voprosy/pomogite-razobratsya-s-datchikami-gaza-mq#comment-272024

nik182
Онлайн
Зарегистрирован: 04.05.2015

Ну так может напряжение в сети подскочило¿

Logik
Offline
Зарегистрирован: 05.08.2014

И еще наблюдал снижение показаний непосредственно перед грозой. Может озон снижает? Или реально воздух чище, субективно то вроде так. Хороше бы чтоб спец какой появился и рассказал бывает ли локальные понижения СО2 например в лесу или на берегу моря или еще где.

Logik
Offline
Зарегистрирован: 05.08.2014

nik182 пишет:

Ну так может напряжение в сети подскочило¿

Та ну! за кучей стабилизаторов. К тому же если опорное АЦП настроено как +5В а делитель датчика от них запитан то оно и не влияет.

nik182
Онлайн
Зарегистрирован: 04.05.2015

В том то и проблема, что зависит от квадрата. Рабочая точка уплывает при изменении напряжения и референс АЦП не поможет в рабочей точке остаться. 

Logik
Offline
Зарегистрирован: 05.08.2014

Ниче никуда не уплывет. Напряжение с делителя и цена разряда АЦП прямо пропорциональны Vcc (опорное напряжение АЦП от Vcc, не от внутреннего Uref!!!). При изменении питания они оба пропорционально одновременно меняются. А количество самих разрядов не меняется и на выходе тоже значение. Главное не включать  АЦП на стабилизированый Uref. Обычно это вредный совет, но в данном случае так.

nik182
Онлайн
Зарегистрирован: 04.05.2015

Я про нагрев спирали датчика говорил. Нагрев нелинейно зависит от напряжения. Соответственно сопротивление спирали датчика меняется тоже нелинейно. Поэтому при изменение в точке с которой снимается сигнал меняется не пропорционально напряжению на Vcc.  

Logik
Offline
Зарегистрирован: 05.08.2014

Если нагреватель металлический (а скорей так) то его нелинейность способствует стабилизации температуры, но то уже суровые дебри как для такого показометра. По ссылке просадка с 35мВ до 25мВ, что явно многовато для реакции на нагреватель с питанием 5В за 2-я стабилизаторами. Что в сети 220 должно произойти для такого? 

Там еще зависимость от температуры окружающей среды есть, чуть ли  не 1% на 1градус, но я температуру контролировал, на графике есть. 

Technogrover
Offline
Зарегистрирован: 23.07.2018

Всех еще раз приветствую! 

Со вчерашнего почти утра и по сию минуту,арудина была включена через бп 7,5в-2,5а вместе с mq135 u dht22,надеялся,что произойдут хоть какие-то изменения,но тщетно.Что порекомендуете,ждать?Или еще есть какие-нибудь мысли?


Temperature: 25.60
Humidity: 45.80
A0 : 35
Rzero: 426.80
Rzeroc: 471.13
PPM: 3.42
PPMCor: 2.40

Temperature: 25.60
Humidity: 45.60
A0 : 35
Rzero: 426.80
Rzeroc: 470.94
PPM: 3.42
PPMCor: 2.60