Arduino-kit | электронные конструкторы и наборы, контроллеры, модули и датчики
Одна из самых важных задач в вопросе безопасности умного дома –обнаружение утечки газа. Для того, чтобы плата Arduino успешно решала задачи такого рода, нужно подключить к ней датчик газа MQ-2. Датчик MQ-2 (рис. 4.24) определит концентрацию углеводородных газов (пропан, метан, н-бутан), дыма (взвешенных частиц, являющихся результатом горения) и водорода в окружающей среде. Датчик можно использовать для обнаружения утечек газа и задымления. В газоанализатор встроенный нагревательный элемент, который необходим для химической реакции. Поэтому во время работы сенсор будет горячим. Для получения стабильных показаний новый сенсор необходимо один раз прогреть (оставить включенным) в течение 24 часов. После этого стабилизация после включения занимать около минуты.
Рис. 4.24. Датчик газов MQ-2.
В зависимости от уровня газа в атмосфере меняется внутреннее сопротивление датчика. MQ-2 имеет аналоговый выход, поэтому напряжение на этом выходе будет меняться пропорционально уровню газа в окружающей среде. Для определения по логическому уровню также имеется цифровой выход. На модуле датчика есть встроенный потенциометр, который позволяет настроить чувствительность этого датчика в зависимости от того, насколько точно вы хотите регистрировать уровень газа.
Теперь об единицах измерения. На территории бывшего Советского Союза, показатели принято измерять в процентах (%) или же непосредственно в массе к объему (мг/м3). В зарубежных странах применяет такой показатель как ppm.
Сокращение ppm расшифровывается как parts per million (частей на миллион). Например, 1 ppm = 0,0001%.
Диапазон измерений датчика:
• Пропан: 200–5000 ppm;
• Бутан: 300–5000 ppm;
• Метан: 500–20000 ppm;
• Водород: 300–5000 ppm.
Рассмотрим подключение датчика MQ-2 к плате Arduino Mega и модулю NodeMcu ESP8266.
4.5.1. Подключение датчика MQ-2 к плате Arduino Mega
Подключение датчика MQ-2 к плате Arduino Mega мы будем производить по аналоговому входу. Питание для датчика берем также с платы Arduino. Схема соединений представлена на рис. 4.25.
Рис. 4.25. Схема подключений датчика MQ-2 к плате Arduino Mega
Загрузим на плату Arduino Mega скетч получения данных с датчика MQ-2 и вывода в последовательный порт Arduino. Процедуры определения по данным, приходящим с аналогового входа:
• get_data_ppmpropan() – содержание пропана в ppm;
• get_data_ppmmethan() – содержание пропана в ppm;
• get_data_ppmsmoke() – содержание дыма.
Содержимое скетча представлено в листинге 4.10.
Листинг 4.10
#include <TroykaMQ.h>#define INTERVAL_GET_DATA 2000 // интервала измерений, мс #define MQ2PIN A10MQ2 mq2(MQ2PIN);
unsigned long millis_int1=0;
voidsetup() {
Serial.begin(9600);
mq2.calibrate();
mq2.getRo();
}
voidloop() {
if(millis()-millis_int1 >= INTERVAL_GET_DATA) {
float propan= get_data_ppmpropan();
Serial.print("propan=");
Serial.print(propan);
Serial.println(" ppm ");
float methan= get_data_ppmmethan();
Serial.print("methan=");
Serial.print(methan);
Serial.println(" ppm ");
float smoke= get_data_ppmsmoke();
Serial.print("smoke=");
Serial.print(smoke);
Serial.println(" ppm ");
millis_int1=millis();
}
}
floatget_data_ppmpropan() {
Serial.println(mq2.readRatio());
floatvalue=mq2.readLPG();
returnvalue;
}
floatget_data_ppmmethan() {
Serial.println(mq2.readRatio());
floatvalue=mq2.readMethane();
returnvalue;
}
floatget_data_ppmsmoke() {
Serial.println(mq2.readRatio());
floatvalue=mq2.readSmoke();
returnvalue;
}
Загрузим скетч на плату Arduino Mega, откроем монитор последовательного порта и увидите вывод данных о содержании пропана, метана и дыма (рис. 4.26).
Рис. 4.26. Вывод данных датчика MQ-2 в монитор последовательного порта.
Скачать данный скетч можно на сайте www.anemometers.ru по ссылке .
4.5.2. Подключение датчика MQ-2 к модулю NodeMcu ESP8266
Теперь рассмотрим подключение датчика MQ-2 к модулю NodeMcu ESP8266. Датчик MQ-2 подключаем к входу y2 мультиплексора. Для выбора аналогового входа мультиплексора используем контакты D5, D7, D8 модуля Node Mcu. Схема соединений представлена на рис. 4.27.
Рис. 4.27. Схема подключений датчика MQ-2 к NodeMcu ESP8266
Загрузим на модуль NodeMcu скетч получения данных с датчика MQ-2 и вывода в последовательный порт Arduino. Для выбора аналогового входа мультиплексора y2 подаем на контакты D5, D8 сигнал низкого уровня LOW, на контакт D7 сигнал высокого уровня HIGH.
Процедуры определения по данным, приходящим с аналогового входа:
• get_data_ppmpropan() – содержание пропана в ppm;
• get_data_ppmmethan() – содержание пропана в ppm;
• get_data_ppmsmoke() – содержание дыма.
Содержимое скетча представлено в листинге 4.11.
Листинг 4.11
#include <TroykaMQ.h>#define INTERVAL_GET_DATA 2000 // интервала измерений, мс #define MQ2PIN A0MQ2 mq2(MQ2PIN);
unsigned long millis_int1=0;
voidsetup() {
pinMode(14,OUTPUT);
pinMode(13,OUTPUT);
pinMode(15,OUTPUT);
Serial.begin(9600);
digitalWrite(14,LOW);
digitalWrite(13,HIGH);
digitalWrite(15,LOW);
mq2.calibrate();
mq2.getRo();
}
voidloop() {
if(millis()-millis_int1 >= INTERVAL_GET_DATA) {
digitalWrite(14,LOW);
digitalWrite(13,HIGH);
digitalWrite(15,LOW);
float propan= get_data_ppmpropan();
Serial.print("propan=");
Serial.print(propan);
Serial.println(" ppm ");
float methan= get_data_ppmmethan();
Serial.print("methan=");
Serial.print(methan);
Serial.println(" ppm ");
float smoke= get_data_ppmsmoke();
Serial.print("smoke=");
Serial.print(smoke);
Serial.println(" ppm ");
millis_int1=millis();
}
}
floatget_data_ppmpropan() {
Serial.println(mq2.readRatio());
floatvalue=mq2.readLPG();
returnvalue;
}
floatget_data_ppmmethan() {
Serial.println(mq2.readRatio());
floatvalue=mq2.readMethane();
returnvalue;
}
floatget_data_ppmsmoke() {
Serial.println(mq2.readRatio());
floatvalue=mq2.readSmoke();
returnvalue;
}
Загрузим скетч на модуль Node Mcu, откроем монитор последовательного порта и видим вывод данных, получаемых с датчика MQ-2 (рис. 4.28).
Рис. 4.28. Вывод данных датчика MQ-2 в монитор последовательного порта.
Скачать данный скетч можно на сайте www.anemometers.ru по ссылке .
Выбор режима питания нагревателя
В сенсоре предусмотрено два режима работы, переключаемых джампером.
Датчик газа mq-9
Датчик MQ-9 относиться к полупроводниковым приборам. Принцип работы датчика основан на изменении сопротивления тонкопленочного слоя диоксида олова SnO2 при контакте с молекулами определяемого газа. Чувствительный элемент датчика состоит из керамической трубки с покрытием Al2O3 и нанесенного на неё чувствительного слоя диоксида олова.
Внутри трубки проходит нагревательный элемент, который нагревает чувствительный слой до температуры, при которой он начинает реагировать на определяемый газ. Чувствительность к разным газам достигается варьированием состава примесей в чувствительном слое.
Обзор датчика угарного газа mq7
Датчик MQ7 — это датчик угарного газа CO. Основным источником выделения СО является сгорание углеродного топлива при недостаточном количестве кислорода. Углерод “не догорает” и вместо углекислого газа CO
2
, в атмосферу выбрасывается угарный газ CO. Он чрезвычайно ядовит, но при этом не обладает ни цветом, ни запахом. Попав в помещение с угарным газом, вы только по косвенным симптомам поймете, что подвергаетесь воздействию яда. Пользу этого датчика переоценить трудно и он широко применяется в схемах автоматизации.
Основным рабочим элементом датчика является нагревательный элемент, за счет которого происходит химическая реакция, в результате которой получается информация о концентрации газа. Поэтому во время работы сенсор будет горячим. Для получения стабильных показаний новый сенсор необходимо один раз прогреть (оставить включённым) в течение 48 часов. После этого стабилизация после включения будет занимать около минуты. Выдаваемый датчиком аналоговый сигнал пропорционален концентрации угарного газа. Показания датчика подвержены влиянию температуры и влажности окружающего воздуха. Поэтому в случае использования датчика MQ7 в изменяющейся среде, при необходимости получения точных показаний, понадобится реализовать компенсацию этих параметров.
Подключение
Датчик имеет 4 вывода стандарта 2,54 мм (рисунок 2):
A0
– аналоговый вывод, при подключении к аналоговому входу Arduino.
D0
– цифровой выход, который переключается в режим HIGH при превышении некоего порога концентрации усгарного газа. С помощью подстроечного резистора можно произвести калибровку датчика, хотя производитель уже провел некую калибровку датчика.
Подключение и настройка
Датчик газа MQ9 подключается к управляющей электронике по 5 проводам. Для подключения используются два трёхпроводных шлейфа. Для быстрого подключения модуля к Iskra JS или Arduino используйте Troyka Shield.
С Troyka Slot Shield можно обойтись без лишних проводов.
Пример использования
Рассмотрим подключение датчика MQ7 к Arduino c отображением на отдельном светодиоде превышения порога. Для проекта нам понадобятся следующие детали:
Соберем схему, показанную на рисунке.
Запустим Arduino IDE. Создадим новый скетч и внесем в него содержимое листинга 1.
Характеристики датчика mq7
Сокращение ppm расшифровывается как parts per million или в вольном переводе “частей на миллион”. От процента показатель не отличается, отличается только размерность (1 ppm = 0,0001%). По гигиеническим нормам ppm приблизительно 0,0017% – 170 ppm, выхлопе бензинового двигателя СО может быть до 3% – соответственно 3% = 30.000 ppm.