Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
main:sensors:mq2 [2021/01/26 10:43] smartadmin [Пример подключения и использования] |
main:sensors:mq2 [2025/01/21 14:35] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Модуль датчика углеводородных газов MQ-2 ====== | + | ====== Датчик углеводородных газов MQ-2 ====== |
===== Описание ===== | ===== Описание ===== | ||
В Вашем проекте нужно анализировать запахи, концентрацию газов, задымление? Может быть систему анализа качества воздуха в помещении? Или определения паров спирта в выдыхаемом воздухе? А может пожарная сигнализация? Тогда датчик MQ-2 будет отличным решением поставленных вопросов. MQ-2 - это довольно простой датчик для определения в воздухе концентрации угарного газа, метана, водорода, пропана, паров спирта, углеводородных газов (LPG - Liquefied petroleum gas - сжиженных углеводородных газов). | В Вашем проекте нужно анализировать запахи, концентрацию газов, задымление? Может быть систему анализа качества воздуха в помещении? Или определения паров спирта в выдыхаемом воздухе? А может пожарная сигнализация? Тогда датчик MQ-2 будет отличным решением поставленных вопросов. MQ-2 - это довольно простой датчик для определения в воздухе концентрации угарного газа, метана, водорода, пропана, паров спирта, углеводородных газов (LPG - Liquefied petroleum gas - сжиженных углеводородных газов). | ||
Строка 12: | Строка 12: | ||
Обратите внимание, что показания датчика подвержены влиянию температуры и влажности окружающего воздуха. Поэтому в случае использования датчика в изменяющейся среде, будет необходима компенсация этих параметров. | Обратите внимание, что показания датчика подвержены влиянию температуры и влажности окружающего воздуха. Поэтому в случае использования датчика в изменяющейся среде, будет необходима компенсация этих параметров. | ||
- | + | ||
- | Диапазоны измерений: | + | |
- | * 0-1% - пропан | + | ==== Питание нагревателя ==== |
- | * 0,03-0,5% - бутан | + | Основным элементом датчика - является нагреватель, он же является и основным потребителем энергии. Ввиду этого, на плате предусмотрен вывод питания нагревателя. Таким образом, можно управлять нагревателем для экономии энергопотребления. Если же такой задачи не требуется, просто объедините выводы **VDD** и **VH** с помощью перемычки, и нагреватель будет запитан от сигнала **+**. |
- | * 0,05-2% - метан | + | |
- | * 0,03-0,5% - водород | + | |
==== Технические характеристики ==== | ==== Технические характеристики ==== | ||
Строка 26: | Строка 24: | ||
==== Физические размеры ==== | ==== Физические размеры ==== | ||
* Модуль (Д х Ш х В): 35 х 20 х 21 мм | * Модуль (Д х Ш х В): 35 х 20 х 21 мм | ||
+ | |||
+ | ==== Таблица значений параметров ==== | ||
+ | Для получения значения концентрации газа (см. пример 3), нужно установить соответствующие значения А и В для объекта датчика. | ||
+ | ^ Определяемый газ ^ Значение А ^ Значение В ^ | ||
+ | | Водород (H2) | 987.99 | -2.162 | | ||
+ | | Углеводороды (LPG) | 574.25 | -2.222 | | ||
+ | | Угарный газ (CO) | 36974 | -3.109 | | ||
+ | | Пары спирта (Alcohol) | 3616.1 | -2.675 | | ||
+ | | Пропан (Propane) | 658.71 | -2.168 | | ||
+ | ==== Файлы для загрузки ==== | ||
+ | * [[https://files.smartelements.ru/know_libs/MQ2Lib.zip|Скачать библиотеку (MQ2Lib)]] | ||
+ | * [[https://files.smartelements.ru/know_libs/MQUnifiedsensor.zip|Скачать библиотеку (MQUnifiedsensor)]] | ||
+ | * [[https://files.smartelements.ru/datasheet/MQ2.pdf|Скачать даташит на датчик MQ2]] | ||
===== Примеры подключения и использования ===== | ===== Примеры подключения и использования ===== | ||
Строка 33: | Строка 44: | ||
^ Что нужно ^ Кол-во, шт ^ | ^ Что нужно ^ Кол-во, шт ^ | ||
- | | [[http://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | + | | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | |
- | | [[http://smartelements.ru/collection/datchiki-i-sensory/product/modul-datchika-uglevodorodnyh-gazov-mq-2|Модуль датчика углеводородных газов MQ-2]] | 1 | | + | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor shield]] | 1 | |
- | | [[http://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-mama|Провода папа-мама]] | 4 | | + | | [[|Датчик углеводородных газов MQ-2]] | 1 | |
+ | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф мама-мама]] | 1 | | ||
**Схема подключения:** | **Схема подключения:** | ||
- | {{ главная:датчики:mq2.jpg |}} | + | {{ :main:sensors:mq2.png?nolink |}} |
**Скетч для загрузки:** | **Скетч для загрузки:** | ||
Строка 62: | Строка 74: | ||
</file> | </file> | ||
+ | ==== Пример 2. Определение количества газа ==== | ||
+ | |||
+ | В данном примере используется простая библиотека для работы с датчиком. | ||
+ | В примере демонстрируется подключение датчика и вывод полученных данных по отдельным компонентам в монитор Serial - порта. Таким образом можно измерить значения для углеводородных газов, углекислого газа и уровня дыма. | ||
+ | |||
+ | ^ Что нужно ^ Кол-во, шт ^ | ||
+ | | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | ||
+ | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor shield]] | 1 | | ||
+ | | [[|Датчик углеводородных газов MQ-2]] | 1 | | ||
+ | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф мама-мама]] | 1 | | ||
+ | |||
+ | **Схема подключения:** | ||
+ | {{ :main:sensors:mq2.png?nolink |}} | ||
+ | |||
+ | **Скетч для загрузки:** | ||
+ | <file Arduino> | ||
+ | #include <MQ2Lib.h> // подключение библиотеки | ||
+ | |||
+ | int pin = A0; // вывод подключения к контакту S датчика | ||
+ | float lpg = 0; // хранение данных об углеводородных газах | ||
+ | float co = 0; // хранение данных об угарном газе | ||
+ | float smoke = 0; // хранение данных о дыме | ||
+ | |||
+ | MQ2 mq2(pin); // создание объекта датчика | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | Serial.begin(9600); // инициализация Serial-порта | ||
+ | mq2.begin(); // инициализация датчика | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | //Чтение данных и вывод в сериал-порт: | ||
+ | //lpg - об углеводородных газах | ||
+ | lpg = mq2.readLPG(); | ||
+ | Serial.print("LPG : "); | ||
+ | Serial.println(lpg); | ||
+ | | ||
+ | //co - об угарном газе | ||
+ | co = mq2.readCO(); | ||
+ | Serial.print("CO : "); | ||
+ | Serial.println(co); | ||
+ | | ||
+ | //smoke - о дыме | ||
+ | smoke = mq2.readSmoke(); | ||
+ | Serial.print("Smoke : "); | ||
+ | Serial.println(smoke); | ||
+ | Serial.println("-----"); | ||
+ | Serial.println(); | ||
+ | |||
+ | delay(2000); // задержка 2 секунды | ||
+ | } | ||
+ | </file> | ||
+ | |||
+ | ==== Пример 3. Определение концентрации газа ==== | ||
+ | |||
+ | В данном примере используется уже более сложная универсальная библиотека для работы со многими видами датчиков газа. | ||
+ | В примере демонстрируется подключение датчика и вывод полученных данных по отдельным компонентам в монитор Serial - порта. Таким образом можно измерить значения для газов, которые описаны в **Таблице значений параметров** (в описании к этой статье). | ||
+ | |||
+ | ^ Что нужно ^ Кол-во, шт ^ | ||
+ | | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | ||
+ | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor shield]] | 1 | | ||
+ | | [[|Датчик углеводородных газов MQ-2]] | 1 | | ||
+ | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф мама-мама]] | 1 | | ||
+ | |||
+ | **Схема подключения:** | ||
+ | {{ :main:sensors:mq2.png?nolink |}} | ||
+ | |||
+ | **Скетч для загрузки:** | ||
+ | <file Arduino> | ||
+ | #include <MQUnifiedsensor.h> // подключение библиотеки | ||
+ | |||
+ | #define Board ("Arduino UNO") // имя контроллера | ||
+ | #define Pin (A0) // пин подключения контакта S датчика | ||
+ | #define Type ("MQ-2") // тип датчика | ||
+ | #define Voltage_Resolution (5) // количество Вольт платы | ||
+ | #define ADC_Bit_Resolution (10) // разрешение АЦП (в битах) для плат UNO/MEGA/NANO | ||
+ | #define RatioMQ2CleanAir (9.83) //RS / R0 = 9.83 ppm | ||
+ | |||
+ | |||
+ | MQUnifiedsensor MQ2(Board, Voltage_Resolution, ADC_Bit_Resolution, Pin, Type); // создание объекта датчика | ||
+ | |||
+ | |||
+ | void setup() { | ||
+ | |||
+ | Serial.begin(9600); // инициализация последовательного порта | ||
+ | |||
+ | // установка математической модели для вычисления концентрации газов в PPM | ||
+ | // и константы для каждого из определяемых газов | ||
+ | MQ2.setRegressionMethod(1); //_PPM = a*ratio^b | ||
+ | MQ2.setA(574.25); // конфигурация значения А | ||
+ | MQ2.setB(-2.222); // конфигурация значения В | ||
+ | |||
+ | MQ2.init(); | ||
+ | // калибровка датчика | ||
+ | float calcR0 = 0; | ||
+ | for(int i = 1; i<=10; i ++) | ||
+ | { | ||
+ | MQ2.update(); // обновление данных | ||
+ | calcR0 += MQ2.calibrate(RatioMQ2CleanAir); | ||
+ | Serial.print("."); | ||
+ | } | ||
+ | MQ2.setR0(calcR0/10); | ||
+ | Serial.println(" done!."); | ||
+ | | ||
+ | if(isinf(calcR0)) { | ||
+ | Serial.println("Warning: Conection issue founded, R0 is infite (Open circuit detected) please check your wiring and supply"); | ||
+ | while(1); | ||
+ | } | ||
+ | if(calcR0 == 0){ | ||
+ | Serial.println("Warning: Conection issue founded, R0 is zero (Analog pin with short circuit to ground) please check your wiring and supply"); | ||
+ | while(1); | ||
+ | } | ||
+ | |||
+ | MQ2.serialDebug(true); // вывод отладочных сообщений | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | MQ2.update(); // обновление данных (чтение с аналогового порта) | ||
+ | MQ2.readSensor(); // сенсор читает концентрацию, используя установленную модель и данные параметров А и В, установленные ранее | ||
+ | MQ2.serialDebug(); // вывод отладочной таблицы в сериал порт | ||
+ | delay(500); // задержка в 500 мс | ||
+ | } | ||
+ | </file> |