Arduino MQ-135
- Войдите на сайт для отправки комментариев
Пт, 08/11/2019 - 11:50
Доброго дня всем!Прошу совета,что я упускаю в коде?Вчера подключил датчик и он начал слишком низкие значения ППМ показывать,решил оставить до утра,сегодня включил и он на несколько секунд пришел в норму,затем опять опустился до 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
Судя по значению с А0, он и отдает что то подобное. Сам то датчик живой, а то злые языки утверждают, что они просто от времени подыхают.
И это, схему вашего подключения приложите.
Думаете,что провод сигнальный сбои дает?
Так и не понял,как тут фото вставлять?
Схема простая - А0-А0 ардуино,но и питание с землей к таким же контактам шилда для арудины нано.
Сам датчик только купил,поэтому время на него не могло подействовать:))
Какой газ измеряете?
Датчики типа 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
Ну возьмите ватку с нашатырем, бензином или спиртом, подуйте через нее на него, посмотрите, что изменится, и изменится ли.
А только что купил, ничего не доказывает, он на складе мог десять лет валяться.
Co2 пытаюсь мерить.Вот с утра и поставил на 24 часа,но эти значения ППМ мне покоя не дают,почему они в 10 раз меньше должного показывают?Или стабилизируются потом?С утра при первом подключении,они показали,правда не долго,нормальные значения,вот и меня терзают сомнения,что оставив на 24 хотя бы часа,они так и будут показывать чушь,разве нет?
Лучше бы Вы оставили его включённым. Вы вообще его даташит читали? У него время разогрева: Preheat time: Over 24 hour.
Практика работы с таким датчиками показывает, что чем дольше он хранился без работы, тем дольше его надо прогревать, чтобы он восстановился и ожил. Если хранился слишком долго (4-5 лет), то не оживёт вовсе. Т.е. это датчики для приборов, которые работают постоянно, не выключаясь.
Так что, оставьте на сутки (не меньше). По крайней мере, нагреватель чтобы работал. Пусть прогреется и восстановится. Потом посмотрите. Если проблема сохранится, будем думать
Для этого, слава богу, есть нормальные NDIR сенсоры. Перед MQ будете скакать как мартышка - калибровать постоянно.
Не знаю, я не мазохист и не опытный электронщик/метролог, поэтому мимо MQ прохожу сразу.
Практика работы с таким датчиками показывает, что чем дольше он хранился без работы, тем дольше его надо прогревать, чтобы он восстановился и ожил. Если хранился слишком долго (4-5 лет), то не оживёт вовсе.
А есть какие-то системные исследования на этот счёт? В даташитах на разные MQ алгоритмы сбора данных различаются даже.
Скорей всего так и сделаю,а вот подскажите,а сериал-монитор оставить включенным или закрыть в данной ситуации лучше?Просто,например,в Блунке,перезагрузка сериал монитора давала как бы реконнект к серверу,причем удачно,тут он таким же образом действовать будет?Закрыть его на сутки лучше или открытым держать?
Для этого, слава богу, есть нормальные NDIR сенсоры. Перед MQ будете скакать как мартышка - калибровать постоянно.
Не знаю, я не мазохист и не опытный электронщик/метролог, поэтому мимо MQ прохожу сразу.
MH-Z19B оставил напоследок,все равно проект еще полностью не готов,а так вроде для теплички небольшой mq 135 должен работать нормально,но про нормальные НДИР-сенсоры знаю;))
Коллективный разум этого форума говорит, что даччики серии MQ есть ни что иное, как енераторы случайных чисел.
Знаете, насчёт системных исследований я не в курсе. Также я вполне уважаю Ваше и деда мнение о том, что эти датчики неточны, хотя не могу ни подтвердить его, ни опровергнуть.
Но, мой общий принцип (и в вопросе использования/не использования GOTO, и в вопросе использования/не использования MQ): всякий инструмент хорош, когда используется по назначению и с умом.
В плане MQ "с умом" для меня значит следующее:
1. Я адекватно оцениваю свой уровень в электронике и понимаю, что точный прибор мне не создать даже с очень хорошими комплектующими.
2. Зато я могу создать не приборы-измерители, а приборы-триггеры.
Например, две реальные (мои, а не из сети) истории про MQ.
1. Самоделка на основе MQ4 уже три года висит у меня в котельной. Её назначение поднять тревогу в случае утечки. Периодически (вернее не периодически, а когда вдруг захочется) я проверяю живо ли устройство. Проверка простая, я беру китайский газовый баллончик с пшикалкой и слегка пшикаю в комнате. Устройство начинает радостно верещать. Значит, работает. Отключаю, проветриваю, включаю снова и спокойно живу дальше.
2. Зять как-то забеспокоился, что в квартире (на кухне) кажется чуть попахивает газом, но именно "кажется, чуть-чуть" - уверенности не было. Внук (тогда 11-летнй) спаял на зелёной макетке схему из даташита MQ4 с подстроечным резистором. В коридоре, возле входной двери выкрутил резистор так, что вот-вот заверещит и понёс в сторону кухни. По пути устройство начинало уверенно верещать. Опыт он повторил несколько раз и убедился, что таки утечка есть, т.к. в кухне концентрация выше, чем в коридоре. Вызвали газовиков, те нашили и устранили небольшую утечку.
Как видите, в обоих случаях мне по большому счёту пофиг правильно показывает датчик или нет. Лишь бы он хоть как-то реагировал на изменения концентрации. И в таких триггерных приборах этот датчик отлично служит и вполне исправно выполняет свою работу.
Кстати, Technogrover, суток прогрева может и не хватить. Я тут вспомнил, что моё устройство в котельной вышло на режим только суток через пять. А в течение этого времени несколько раз начинало давать ложную тревогу, т.к. показания постепенно повышались. Но потом стабилизировалось и вот уж три года работает нормально.
Знаете, насчёт системных исследований я не в курсе. Также я вполне уважаю Ваше и деда мнение о том, что эти датчики неточны, хотя не могу ни подтвердить его, ни опровергнуть.
Но, мой общий принцип (и в вопросе использования/не использования GOTO, и в вопросе использования/не использования MQ): всякий инструмент хорош, когда используется по назначению и с умом.
В плане MQ "с умом" для меня значит следующее:
1. Я адекватно оцениваю свой уровень в электронике и понимаю, что точный прибор мне не создать даже с очень хорошими комплектующими.
2. Зато я могу создать не приборы-измерители, а приборы-триггеры.
Например, две реальные (мои, а не из сети) истории про MQ.
1. Самоделка на основе MQ4 уже три года висит у меня в котельной. Её назначение поднять тревогу в случае утечки. Периодически (вернее не периодически, а когда вдруг захочется) я проверяю живо ли устройство. Проверка простая, я беру китайский газовый баллончик с пшикалкой и слегка пшикаю в комнате. Устройство начинает радостно верещать. Значит, работает. Отключаю, проветриваю, включаю снова и спокойно живу дальше.
2. Зять как-то забеспокоился, что в квартире (на кухне) кажется чуть попахивает газом, но именно "кажется, чуть-чуть" - уверенности не было. Внук (тогда 11-летнй) спаял на зелёной макетке схему из даташита MQ4 с подстроечным резистором. В коридоре, возле входной двери выкрутил резистор так, что вот-вот заверещит и понёс в сторону кухни. По пути устройство начинало уверенно верещать. Опыт он повторил несколько раз и убедился, что таки утечка есть, т.к. в кухне концентрация выше, чем в коридоре. Вызвали газовиков, те нашили и устранили небольшую утечку.
Как видите, в обоих случаях мне по большому счёту пофиг правильно показывает датчик или нет. Лишь бы он хоть как-то реагировал на изменения концентрации. И в таких триггерных приборах этот датчик отлично служит и вполне исправно выполняет свою работу.
Кстати, Technogrover, суток прогрева может и не хватить. Я тут вспомнил, что моё устройство в котельной вышло на режим только суток через пять. А в течение этого времени несколько раз начинало давать ложную тревогу, т.к. показания постепенно повышались. Но потом стабилизировалось и вот уж три года работает нормально.
В принципе,готов и двое суток ждать,мне только непонятно,держать ли монитор открытым все время или закрыть и периодически проверять состояние?
Мне тоже по сути нужен этот прибор как триггер на состояние теплицы.;))
Возможно и пять буду ждать:((Как бы ноут не сварился от такой долгой работы;)
Достаточно подать питание на нагреватель сенсора. Т.е. к нормальной USB-зарядке его примотать.
ноут то тут при чем? и монитор порта? все что нужно - это подать питание на ардуину. Включите ее в любой блок питания с USB-выходом, да хоть даже в зарядку для мобильника
Не нужен никакой монитор. Просто подайте питание на нагреватель.
Достаточно подать питание на нагреватель сенсора. Т.е. к нормальной USB-зарядке его примотать.
То есть,если так можно,то я могу в шилд вставить бп на 7 или 9 вольт,а саму плату оставить подключенной по юсб,верно и так можно было бы сделать?
Просто есть от меги из алика бп на 9в-1а и питерский для наны 7,5в-2,5а,какой из них лучше был бы?И можно так отдельно подать получается два источника питания?
Уже сто раз перетерто же, в поиске на форуме видно забанили. Датчик до прогрева выдает сильно завышеные показания, при прогреве они пошти експонентой падают до вменяемых. Ищи Technogrover и обретеш знания, я когдато с картинками даже постил. Прогрев нужен для "выгорания" (каталитического разложения) примесей адсорбированых на поверхности детектора за время хранения. Но если у тебя изначально нихера не показывает - то оно и не станет.
Я не спрашиваю,зачем прогревать или,что Вы там имеете ввиду,мистер Ложик,я спросил про бп лучший для этого дела и все.
А.. ну успехов ;)
И Вам;))
Я тут достал из стола этот датчик после двух лет лежания. Тогда его откалибровал по азотно-углекислотной смеси. Он даже показывал адекватные значения. Сейчас запитал от другого БП и был сильно удивлён. Оказалось что показания сильно зависят от БП. При разных БП показания в одной и той же комнате менялись от 200 до 700 PPM. При помещении датчика в пакет, который предварительно надут одним выдохом и справочники говорят что СО2 в нем должен при этом быть от 1000 до 1200PPM, показания прыгали на 300 - 400 единиц, но опять же зависили от напряжения БП.
не стоит мне желать, у меня уже есть http://arduino.ru/forum/programmirovanie/rabota-s-datchikom-gaza-mq135#comment-257344
Я тут достал из стола этот датчик после двух лет лежания. Тогда его откалибровал по азотно-углекислотной смеси. Он даже показывал адекватные значения. Сейчас запитал от другого БП и был сильно удивлён. Оказалось что показания сильно зависят от БП. При разных БП показания в одной и той же комнате менялись от 200 до 700 PPM. При помещении датчика в пакет, который предварительно надут одним выдохом и справочники говорят что СО2 в нем должен при этом быть от 1000 до 1200PPM, показания прыгали на 300 - 400 единиц, но опять же зависили от напряжения БП.
не думаю что от БП зависит. Он и без замены БП уплывет. И какие нафиг ppm у него? для ppm нужна селективность а её нет.
зависили от напряжения БП.
Так он же в плечо делителя включается. Чего Вы ждали?
При калибровке были отличные PPMы. И даже дома на балконе ночью летом 400 PPM показывал. Но вот с селективностью это да. Жена лак для ногтей в соседней комнате открывала а РРМ в гору лезли.
не стоит мне желать, у меня уже есть http://arduino.ru/forum/programmirovanie/rabota-s-datchikom-gaza-mq135#comment-257344
Кстати,тут наверное тоже бы не сошлись во мнениях - ту 5 спорную я убрал из кода,но вы ее почему-то горели желанием оставить;))
Пока один и тот же БП был ничего не ждал. Теперь уже не помню какой. Да и ладно. Z19B приехал на днях. Его будем мучать. Чойто батареи совсем холодные. Форточку проветривать страшно открывать. Будем за со2 следить.
И даже дома на балконе ночью летом 400 PPM показывал.
И шо он показывал 400? ppm CO2? Нихрена. За окном чего только не летает и все оно дает свой вклад в показания. Может там 300 ppm CO2 а остальное углеводами, фенолами, и пр. дерьмом. Без селективности нет смысла в ppm.
не стоит мне желать, у меня уже есть http://arduino.ru/forum/programmirovanie/rabota-s-datchikom-gaza-mq135#comment-257344
Чо?!
Та,на которую автор умножает в cpp файле для getResistance
И даже дома на балконе ночью летом 400 PPM показывал.
И шо он показывал 400? ppm CO2? Нихрена. За окном чего только не летает и все оно дает свой вклад в показания. Может там 300 ppm CO2 а остальное углеводами, фенолами, и пр. дерьмом. Без селективности нет смысла в ppm.
Я не специалист в РРМ на улице. Верю справочникам. Там пишут что меньше 400 не бывает. Даже Z19B при автокалибровке следит за показаниями и минимальным приписывает 400 РРМ. И MQ при калибровке на 400 настраивал. Так что когда больше 400 показывает то действительно нельзя сказать что там в воздухе плавает, тут согласен.
И даже дома на балконе ночью летом 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
Ну так может напряжение в сети подскочило¿
И еще наблюдал снижение показаний непосредственно перед грозой. Может озон снижает? Или реально воздух чище, субективно то вроде так. Хороше бы чтоб спец какой появился и рассказал бывает ли локальные понижения СО2 например в лесу или на берегу моря или еще где.
Ну так может напряжение в сети подскочило¿
Та ну! за кучей стабилизаторов. К тому же если опорное АЦП настроено как +5В а делитель датчика от них запитан то оно и не влияет.
В том то и проблема, что зависит от квадрата. Рабочая точка уплывает при изменении напряжения и референс АЦП не поможет в рабочей точке остаться.
Ниче никуда не уплывет. Напряжение с делителя и цена разряда АЦП прямо пропорциональны Vcc (опорное напряжение АЦП от Vcc, не от внутреннего Uref!!!). При изменении питания они оба пропорционально одновременно меняются. А количество самих разрядов не меняется и на выходе тоже значение. Главное не включать АЦП на стабилизированый Uref. Обычно это вредный совет, но в данном случае так.
Я про нагрев спирали датчика говорил. Нагрев нелинейно зависит от напряжения. Соответственно сопротивление спирали датчика меняется тоже нелинейно. Поэтому при изменение в точке с которой снимается сигнал меняется не пропорционально напряжению на Vcc.
Если нагреватель металлический (а скорей так) то его нелинейность способствует стабилизации температуры, но то уже суровые дебри как для такого показометра. По ссылке просадка с 35мВ до 25мВ, что явно многовато для реакции на нагреватель с питанием 5В за 2-я стабилизаторами. Что в сети 220 должно произойти для такого?
Там еще зависимость от температуры окружающей среды есть, чуть ли не 1% на 1градус, но я температуру контролировал, на графике есть.
Всех еще раз приветствую!
Со вчерашнего почти утра и по сию минуту,арудина была включена через бп 7,5в-2,5а вместе с mq135 u dht22,надеялся,что произойдут хоть какие-то изменения,но тщетно.Что порекомендуете,ждать?Или еще есть какие-нибудь мысли?