Кое-что о погоде на Марсе или датчик качества воздуха MQ135. Датчик углекислого газа MQ135 — подключение к STM32 Ардуино датчик mq 135 подключение

Описание

Универсальный датчик, обнаруживающий в воздухе бензол, спирт, пыль, дым. Аналого - цифровой модуль позволяет как получать данные о содержании газов к которым восприимчив газоанализатор, так и работать напрямую с устройствами, выдавая цифровой сигнал о превышении/уменьшении порогового значения. Имеет регулятор чувствительности, что позволяет подстраивать датчик под нужды конкретного проекта. Модуль имеет два светодиода: первый (красный) - индикация питания, второй (зеленый) - индикация превышения/уменьшения порогового значения.

Основным рабочим элементом датчика является нагревательный элемент, за счет которого происходит химическая реакция, в результате которой получается информация о концентрации газа. В процессе работы датчик должен нагреваться - это нормально. Также необходимо помнить, что за счет нагревательного элемента, датчик потребляет большой ток, поэтому рекомендуется использовать внешнее питание.

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

Диапазон измерений: 0,001 - 0,1 %

Технические характеристики

    Напряжение питания: 5 В

    Потребляемый ток: 150 мА

    Время прогрева при включении: 1 мин

Физические размеры

    Модуль (Д х Ш х В): 35 х 20 х 21 мм

Плюсы использования

    Высокая чувствительность

    Короткое время отклика

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

Минусы использования

    Перед использованием требует долгого прогрева (не менее 24 часов)

    Для снятия показаний требуется прогрев (не менее 1 минуты)

    Высокое энергопотребление (желательно дополнительное питание)

Пример подключения и использования

В примере демонстрируется подключение датчика и вывод полученных данных в монитор Serial - порта. (Пример тестировался на контроллере Smart UNO)

Схема подключения:

Скетч для загрузки:

const int analogSignal = A0; //подключение аналогового сигналоьного пина const int digitalSignal = 8 ; //подключение цифрового сигнального пина boolean noGas; //переменная для хранения значения о присутствии газа int gasValue = 0 ; //переменная для хранения количества газа void setup() { pinMode (digitalSignal, INPUT ) ; //установка режима пина Serial .begin (9600 ) ; //инициализация Serial порта } void loop() { noGas = digitalRead (digitalSignal) ; //считываем значение о присутствии газа gasValue = analogRead (analogSignal) ; // и о его количестве //вывод сообщения Serial .print ("There is " ) ; if (noGas) Serial .print ("no gas" ) ; else Serial .print ("gas" ) ; Serial .print (", the gas value is " ) ; Serial .println (gasValue) ; delay (1000 ) ; //задержка 1 с }

ОПИСАНИЕ ТОВАРА: "MQ-135 ДАТЧИК ГАЗА"

"GAS SENSOR MQ135 " датчик, используемый для анализа чистоты окружающего воздуха. Например, в Вашем авто. "Датчик газа MQ-135 " реагирует на содежание таких газов, как NO 2 -оксид азота, CO 2 - оксид углерода, пары бензола и алкоголя, а также - как анализатор дыма. Датчик газа MQ-135 называется анализатором чистоты воздуха, потому что он не работает на какой-то один газ. А определяет общее содержание ВРЕДНЫХ ГАЗОВ в воздухе. Принцип действия простой - изменение сопротивления (а значит и значения выходного напряжения) в зависимости от объемного содержания вредных газов в воздухе. Вывод "DO" - цифровой сигнал позволяет использовать сам "датчик газа " без "Платы контроллера Ардуино " напрямую с "Модулем Реле ". Т.е. высокий уровень 5 вольт - включить Реле и низкий уровень "0 вольт" - выключить Реле. "AO" -аналоговый сигнал на выходе Модуля Датчика газа позволяет анализировать процентное содержание вредных газов и, при необходимости, принимать какие-то определенные действия при помощи различных "Модулей Ардуино ". Калибровать Датчик надо только один раз при первом включении. Скачать Библиотеку для работы с Датчиком газа можете

Более полную информацию Вы можете найти в приложенном PDF-файле.

В нашем магазине существует гибкая система скидок для постоянных и оптовых покупателей. Цену и наличие уточняйте по телефону. Заказать доставку по Москве Вы можете на сайте компании "Dostavista ".

Химический полупроводниковый сенсор - слой чувствительного полупроводника (обычно это оксиды переходных металлов) на инертной подложке, поверхность которого умеет селективно захватывать какие-то летучие вещества из газа. В результате такой хемосорбции полупроводник приобретает заряд и меняет свои свойства: обычно следят за его сопротивлением. Полупроводниковые сенсоры практически всегда требуют нагрева для нормальной работы.

Пару слов о том, зачем мне это понадобилось. Я всегда с тоской вспоминаю походы с палаткой - потому что только там я мог нормально, полноценно спать благодаря совершенно свежему воздуху. Несмотря на то что в Москве я живу в своеобразном зелёном острове, всё равно духота часто мучает меня по ночам. Вообще, эта моя история очень похожа на историю BarsMonster`а с Хабра, который в поисках причин быстрого утомления ставил кислородный концентратор, вешал мощнейшую люстру на 10 тысяч люмен, и делал прочие хаотичные штуки. Я пошёл по его пути, тоже поставил такую люстру, но особой разницы не заметил. В итоге мы оба дошли до идеи измерить концентрацию углекислого газа в воздухе - его избыток вызывает мгновенное закисление крови и нарушение процессов обмена.

Именно для этих измерений я купил в Китае датчик MQ-135.

В нём чувствительный слой из диоксида олова (с золотыми контактными площадками) нанесён на сапфировую подложку с нихромовым нагревателем, и электроды грелки (H-H) вместе с платиновыми электродами от чувствительного слоя (A/B-B/A) выведены наружу. Измерять сопротивление можно на любых двух из них, A-B или B-A.

Он очень дешёвый и доступный, и может служить элементом домашней метеостанции. Помимо углекислого газа, датчик также реагирует на присутствие других газов: угарного газа, аммиака, бензола, оксидов азота и паров спирта. В даташите приведена зависимость относительного сопротивления датчика от парциального давления разных газов - таким образом, из сопротивления можно вычислить концентрацию газа в воздухе.

Кстати, одна из его модификаций, с обострённой чувствительностью к спирту, стоит в полицейских датчиках спирта, которым «дышат в трубку».

Попробуем подключить его к STM32!

Схема подключения

Для начала давайте рассмотрим схему включения.

Всё просто: нагреватель питается от 5 вольт, а чтобы измерить сопротивление сенсора - он включается в состав резистивного делителя, и измеряется напряжение на выходе этого резистора. При известном сопротивлении резистора и напряжении питания сопротивление сенсора рассчитывается как r1 = r2*(u/uout-1).

Конкретно у меня датчик распаян на плате, которая содержит этот дополнительный резистор - она выдаёт наружу сразу нужное напряжение. Чтобы измерить это напряжение с помощью STM32, нам потребуется модуль АЦП. Программа практически повторяет код из той статьи.

Void adc_init() { RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); //ADC settings ADC_InitTypeDef ADC_InitStructure; ADC_StructInit(&ADC_InitStructure); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); ADC_Cmd(ADC1, ENABLE); //Channel settings ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_55Cycles5); ADC_ResetCalibration(ADC1); while (ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while (ADC_GetCalibrationStatus(ADC1)); } uint16_t getCO2Level() { ADC_SoftwareStartConvCmd(ADC1, ENABLE); while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); return ADC_GetConversionValue(ADC1); } int main() { adc_init(); uint16_t co2; while(1) { co2 = getCO2Level(); delay(10000000); } }

Особенности

Во время работы датчик заметно греется, и это его нормальное состояние; вряд ли он способен что-то поджечь, но всё-таки не стоит его ничем накрывать. Да и доступ воздуха ему нужно обеспечить, поэтому просто разместите его на каком-нибудь открытом пространстве. Гемфри Дэви придумал окружать шахтёрские лампы металлической сеткой во избежание взрыва газа - так и здесь, вокруг датчика находится металлическая сетка, благодаря которой сенсор можно использовать даже в помещениях с высокой концентрацией метана или других горючих газов.

Датчик очень медленно выходит на режим. В первый раз его обязательно нужно прогреть не менее 24 часов. При следующих включениях требуется хотя бы 10-минутный прогрев.

Параметры датчика немного деградируют с ростом влажности воздуха. При точных измерениях необходимо следить за влажностью, например с помощью датчика DHT-22.

На моей плате дополнительно размещён ОУ с переменным резистором - к ним подключен светодиод и вывод «DOUT». Это простой настраиваемый пороговый индикатор, светодиод загорится когда концентрация углекислого газа превысит заданное значение.

Post Views: 609

Подключение и настройка

Датчик газа MQ-135 подключается к управляющей электронике по 5 проводам. Для подключения используются два . Для быстрого подключения модуля к Iskra JS или Arduino используйте . С можно обойтись без лишних проводов.

Примеры программ для Arduino

Для обладателей платформ Arduino выведем в Serial-порт текущее значение вредных газов в ppm , управляя нагревателем. Для запуска примера скачайте и установите библиотеку TroykaMQ .

mq135Heater.ino #include #define PIN_MQ135 A0 // имя для пина, к которому подключен нагреватель датчика #define PIN_MQ135_HEATER 11 // создаём объект для работы с датчиком // и передаём ему номер пина выходного сигнала и нагревателя Serial.begin (9600 ) ; // включаем нагреватель mq135.heaterPwrHigh () ; Serial.println ("Heated sensor" ) ; } void loop() { // если прошёл интервал нагрева датчика // и калибровка не была совершена if (! mq135.isCalibrated () && mq135.heatingCompleted () ) { mq135.calibrate () ; // если известно сопротивление датчика на чистом воздухе // mq135.calibrate(160); Serial.print ("Ro = " ) ; Serial.println (mq135.getRo () ) ; } // если прошёл интевал нагрева датчика // и калибровка была совершена if (mq135.isCalibrated () && mq135.heatingCompleted () ) { Serial.print ("\t CO2: " ) ; Serial.print (mq135.readCO2 () ) ; Serial.println (" ppm" ) ; delay(100 ) ; } }

К платам Arduino c 5 вольтовой логикой датчик можно подключить используя всего один . Для этого установите перемычку на разъём «выбор питания нагревателя».

Выведем в Serial-порт текущее значение вредных газов в ppm , при этом нагреватель всегда включён.

mq135.ino // библиотека для работы с датчиками MQ (Troyka-модуль) #include // имя для пина, к которому подключен датчик #define PIN_MQ135 A0 // создаём объект для работы с датчиком и передаём ему номер пина MQ135 mq135(PIN_MQ135) ; void setup() { // открываем последовательный порт Serial.begin (9600 ) ; // перед калибровкой датчика прогрейте его 60 секунд // выполняем калибровку датчика на чистом воздухе mq135.calibrate () ; // при знании сопративления датчика на чистом воздухе // можно его указать вручную, допустим 160 // mq135.calibrate(160); // выводим сопротивление датчика в чистом воздухе (Ro) в serial-порт Serial.print ("Ro = " ) ; Serial.println (mq135.getRo () ) ; } void loop() { // выводим отношения текущего сопротивление датчика // к сопротивлению датчика в чистом воздухе (Rs/Ro) Serial.print ("Ratio: " ) ; Serial.print (mq135.readRatio () ) ; // выводим значения газов в ppm Serial.print ("\t CO2: " ) ; Serial.print (mq135.readCO2 () ) ; Serial.println (" ppm" ) ; delay(100 ) ; }
gastroguru © 2017