Датчики газа серия MQ (Trema-модуль v2.0) – Описания, примеры, подключение к Arduino

Датчики газа серия MQ (Trema-модуль v2.0) - Описания, примеры, подключение к Arduino Анемометр

Что нам нужно и где купить

Как всегда начнем с деталей, которые мы будем использовать в данном проекте. Уже по традиции мы приводим ссылки на комплектующий в Интернет-магазинах АлиЭкспресс и GearBest. Наш проект живет и развивается благодаря покупателям этих магазинов.

Что дальше?

Хотите собрать другой девайс?
Выберите своё будущее устройство из списка проектов на Slot Shield.

Датчик дыма и газа mq-2. беспроводной датчик газа. ардуино и esp.

Если у вас есть газовое оборудование, то вам надо подумать как обезопасить себя от утечки газа. Для этого можно собрать датчик обнаружения газов  на mq-2. Такой датчик  газа и дыма можно собрать на Ардуино, или на ESP. Сигнал тревоги можно отправлять в Телеграм. MQ-2 это датчик бытового газа. Собрав такой электронный датчик газа вы можете забыть про утечку газа и быть спокойным. За вас теперь будет работать датчик MQ-2, датчик дыма и газа.

Сегодня научимся отправлять сообщение при обнаружении утечки газа. Для этого будем использовать датчик широкого спектра газов MQ-2. Вообще датчиков серии MQ очень много и все они рассчитаны на работу в своей среде. Например, MQ-2 работает не только с газами, но и неплохо срабатывает на дым.

Прелесть этих датчиков в том, их можно использовать и без микроконтроллеров. Для этого надо подать на него 5 вольт. Тогда при работе, на цифровом выходе будет напряжение питания, то есть около 5 вольт, а при обнаружении газа, напряжение резко упадёт до 0,15 вольт. Это напряжение будет у каждого датчика немного отличаться. К датчику можно напрямую подключить реле. Так как многие реле управляются низким уровнем, то они будут срабатывают при обнаружении газа и смогут включать любую нагрузку.
Характеристики Датчика mq-2.
Вы видите диапазон измерений газов. Он выражается в ppm.
PPM – это Миллионная доля, от англ. parts per million, читается «пи-пи-эм» — «частей на миллион».
Напряжение питания 5 вольт. Потребление 150 ма.
При первом включении надо дать нагревателю прогреться примерно 1 минуту. После этого датчик будет готов к работе.

Про анемометры:  Особенности измерений расхода газа при коммерческом и технологическом учёте - ООО"ПКФ Газаппарат"

Диапазон измерений
Пропан: 200–5000 ppm
Бутан: 300–5000 ppm
Метан: 500–20000 ppm
Водород: 300–5000 ppm

Характеристики
Напряжение питания нагревателя: 5 В
Напряжение питания датчика: 3,3–5 В
Потребляемый ток: 150 мА
Габариты: 25,4×25,4 мм

Теперь давайте проверим как он работает.
Сначала будем использовать цифровой выход. Плата ESP 8266 у меня сейчас задействована только для питания датчика. На зелёный провод не обращайте внимания – это осталось от предыдущего примера. Мне лень было искать блок на 5 вольт, поэтому я запитался от платы.
Потенциометром устанавливаем чувствительность датчика. Крутим пока не погаснет светодиод.
Так как у меня дома нет ничего что работает от газа, то я использовал обычную зажигалку. При обнаружении газа на датчике загорается светодиод. Потом горит некоторое время, пока датчик не очистится от газа и гаснет. Теперь датчик снова в режиме ожидания.

Загрузим первый скетч.
Он нам нужен для проверки подключения датчика, для определения значений в режиме покоя и вывода сообщений в монитор порта сообщения о тревоге.
Схему подключения я рисовать не буду. Здесь всё просто. Если вы питаете плату ESP от 5 вольт, то надо подключить датчик к контакту VIN. А аналоговый выход датчика подключить к контакту A0 платы.
Прошиваем скетч и открываем монитор.
Смотрим какие значения выводятся в состоянии покоя. Напоминаю, что датчик сначала должен прогреться. Затем поддаём газку и смотрим на значения. Проделываем так несколько раз и запоминаем значения.
У меня это. В состоянии покоя до 100, а при обнаружении газа от 300 до 400.

Теперь раскомментируем условия и вставим свои значения. Хотя у меня значения в состоянии покоя были 80-90, я установлю чуть побольше. Например 100. А состояние срабатывания выставлю в 150. Между значений покоя и срабатывания должен быть небольшой зазор, а то датчик в пограничном состоянии может многократно срабатывать.
Помимо вывода в монитор состояния датчика, я так же сделал так, что при обнаружении газа, на плате ESP зажигается светодиод.
Смотрим что получилось. В состоянии покоя в монитор выводится сообщение что всё ОК. Если датчик обнаружит утечку газа, то на плате ESP загорится светодиод, а в монитор выводится сообщение Тревога. После того как датчик перестаёт ощущать признаки газа, то он встаёт в обычное состояние и снова готов к работе.
Если у вас всё так же работает как у меня, то значит датчик подключен правильно и можно переходить к следующему этапу. Отправке сообщений в Телеграм.

Про анемометры:  СенсорГаз.ру - описание и заказ сенсоров и блоков датчиков для газоаналитического оборудования

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

Теперь скетч.
Эти библиотеки уже должны быть установлены.
Сюда вписываем настройки WIFI сети.
Вставляем токен бота и ID чата, кстати, чатов может быть несколько. Я потом сделаю отдельное видео, как добавлять несколько чатов.
Указываем, что датчик подключен к Аналоговому входу А0.
Переменная для хранения состояния датчика. В начале она равна false.
И количество сообщений которое будет отправлено в бот при обнаружении протечки. Если не указать количество, то сообщения в бот будут поступать бесконечно.
Сюда я вынес значение полученное в прошлом примере.  Это порог срабатывания датчика.

Дальше делаем внутреннюю подтяжку – это спасёт нас от случайных значений на входе А0.
Это код для соединения с WIFI сетью и получения IP адреса.
А это первое сообщение боту, что датчик подключен и начал свою работу.

Ни и сам код проверки.
Если на датчик учуял газ и счётчик не равен 0, то отправить сообщение в бот, что обнаружена утечка.
Уменьшить счётчик на единицу и подождать 10 секунд.
Если условие всё ещё верно, то отправить новое сообщение, уменьшить счётчик и снова подождать 10 секунд.
Если датчик всё ещё ощущает газ, то снова отправить сообщение, уменьшить счётчик и подождать 10 секунд.
А вот теперь условие не будет верно. Так как счётчик равен 0. И если датчик в воде, то нового сообщения не придёт.
Это сработает когда датчик выветрится, и снова установит счётчик на тройку.
Датчик снова готов к работе.

Про анемометры:  Счетчики газа бытовые как выбрать - устройство, критерии оценки, краткий обзор

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

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

Если вам интересна эта тема, то я могу снять ещё много видео про Использование Телеграм и не только про это.
Объём вашего интереса, я буду оценивать по количеству лайков и комментариев. Чем их будет больше, тем быстрее выйдет новое видео.
Ну, а если вам нравятся мои уроки, то ставьте лайк и делитесь моими видео, с другими. Это очень поможет мне в продвижении канала, а меня будет стимулировать выпускать уроки чаще и интереснее.

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

Спасибо.

А пока на этом всё.

Как подключить датчик mq2 к ардуино

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • датчик газа MQ2;
  • макетная плата;
  • светодиод;
  • резистор 220 Ом;
  • провода «папа-папа», «папа-мама».
Схема подключения датчика MQ2 к Ардуино
Схема подключения датчика MQ2 к Ардуино Уно
MQ2Arduino UnoArduino NanoArduino Mega
GNDGNDGNDGND
VCC5V5V5V
OUTA1A1A1

Как работает дымовая сигнализация?

Датчик дыма MQ-2 имеет  выход в форме аналогового сигнала. Мы установили в нашем коде условие, при котором, если выходное значение датчика больше 400 зуммер начнет подавать звуковой сигнал и загорится красный светодиод; и если выходное значение датчика меньше 400, то зуммер будет молчать, а загорится зеленый светодиод.

Используемый здесь ESP8266 создаст веб-страницу по IP-адресу и отправит данные на этотадрес и выведет там данные. После загрузки кода этот IP-адрес можно увидеть на последовательном мониторе, как показано ниже.

Когда вы вводите этот IP-адрес в своем браузере, то увидите страницу как на рисунке ниже:

Код для проекта

Ниже приводим код для проекта целиком и дадим ряд пояснений.

#include <SoftwareSerial.h>
#define DEBUG true
SoftwareSerial wifi_module(2,3); // Подключите вывод TX esp к контакту 2 Arduino и RX esp к контакту 3 Arduino

int red_led_pin = 9;
int green_led_pin = 8;
int buzzer_pin = 10;
int smoke_sensor_pin = A0;

void setup(){
  Serial.begin(9600);
  wifi_module.begin(9600); // Установите скорость передачи в соответствии с вашим esp8266

  pinMode(red_led_pin, OUTPUT);
  pinMode(green_led_pin, OUTPUT);
  pinMode(buzzer_pin, OUTPUT);
  pinMode(smoke_sensor_pin, INPUT);

  esp8266_command("AT RSTrn",2000,DEBUG); // сброс модуля
  esp8266_command("AT CWMODE=2rn",1000,DEBUG); // настроить точку доступа
  esp8266_command("AT CIFSRrn",1000,DEBUG); // получить ip адрес
  esp8266_command("AT CIPMUX=1rn",1000,DEBUG); // настроить для нескольких подключений
  esp8266_command("AT CIPSERVER=1,80rn",1000,DEBUG); // включить сервер на порту 80
}

void loop(){
  int analogSensor = analogRead(smoke_sensor_pin);

  if (analogSensor > 400){
    digitalWrite(red_led_pin, HIGH);
    digitalWrite(green_led_pin, LOW);

    tone(buzzer_pin, 1000, 200);

  } else {
    digitalWrite(red_led_pin, LOW);
    digitalWrite(green_led_pin, HIGH);

    noTone(buzzer_pin);
  }

  if(wifi_module.available()){

    if(wifi_module.find(" IPD,")){

     delay(1000);

     int connectionId = wifi_module.read()-48;     
     String webpage = "<h1>Система обнаружения дыма</h1>";
      webpage  ="<p>Величина дыма ";
      webpage  = analogSensor;
      webpage  ="</p>";

      if (analogSensor > 400){
    webpage  ="<h5>ОПАСНОСТЬ! Покиньте помещение</h5>";
  }
  else
  {
    webpage  ="<h4>Всё в порядке</h4>";
  }
     String cipSend = "AT CIPSEND=";
     cipSend  = connectionId;
     cipSend  = ",";
     cipSend  =webpage.length();
     cipSend  ="rn";

     esp8266_command(cipSend,1000,DEBUG);
     esp8266_command(webpage,1000,DEBUG);

     String closeCommand = "AT CIPCLOSE="; 
     closeCommand =connectionId; // добавить идентификатор соединения

     closeCommand ="rn";
     esp8266_command(closeCommand,3000,DEBUG);
    }
  }
}

String esp8266_command(String command, const int timeout, boolean debug){

    String response = "";
    wifi_module.print(command); 
    long int time = millis();
    while( (time timeout) > millis())
    {
      while(wifi_module.available())
      {
    char c = wifi_module.read(); 
    response =c;
    }  
  }

  if(debug)
    {
     Serial.print(response);
    }
    return response;
}

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

#include <SoftwareSerial.h>
#define DEBUG true
SoftwareSerial wifi_module(2,3);

В строках ниже мы объявили контакты для светодиодов, зуммера и датчика дыма.

int red_led_pin = 9;
int green_led_pin = 8;
int buzzer_pin = 10;
int smoke_sensor_pin = A0;

В функции настройки сначала устанавливаем скорость передачи для последовательной связи и для модуля wifi на 9600. Затем мы объявили выводы светодиодов и зуммера в качестве выходных контактов. Наконец, мы объявили контакт датчика дыма как входной, так как на этот контакт будет идти входной сигнал от датчика и затем будет передан в Ардуино.

Serial.begin(9600);
  wifi_module.begin(9600);
  pinMode(red_led_pin, OUTPUT);
  pinMode(green_led_pin, OUTPUT);
  pinMode(buzzer_pin, OUTPUT);
  pinMode(smoke_sensor_pin, INPUT);

Строки вызовут функцию и настроят сервер по IP-адресу, предоставленному ESP. Затем ESP отправит данные на этот IP-адрес.

esp8266_command("AT RSTrn",2000,DEBUG);
esp8266_command("AT CWMODE=2rn",1000,DEBUG); 
esp8266_command("AT CIFSRrn",1000,DEBUG); 
esp8266_command("AT CIPMUX=1rn",1000,DEBUG); 
esp8266_command("AT CIPSERVER=1,80rn",1000,DEBUG);

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

int analogSensor = analogRead(smoke_sensor_pin);
  if (analogSensor > 400){
    digitalWrite(red_led_pin, HIGH);
    digitalWrite(green_led_pin, LOW);
    tone(buzzer_pin, 1000, 200);
}

Строки ниже будут печатать данные на веб-странице. Во-первых, мы напечатаем «Система обнаружения дыма» сверху. Затем на второй строке мы напечатаем значение дыма, а на третьей строке мы напечатаем «Все нормально» или «ОПАСНО” в зависимости от состояния.

String webpage = "<h1>Система обнаружения дыма</h1>";
      webpage  ="<p>Величина дыма ";
      webpage  = analogSensor;
      webpage  ="</p>";
      if (analogSensor > 400){
    webpage  ="<h5>Опасность! Покиньте помещение</h5>";
  }
  else
  {
    webpage  ="<h4>Всё в порядке</h4>";
  }

Приведенный ниже код отправит команды в ESP и выведет выходные данные ESP на последовательном мониторе.

String esp8266_command(String command, const int timeout, boolean debug){

    String response = "";
    wifi_module.print(command); 
    long int time = millis();
    while( (time timeout) > millis())
    {
      while(wifi_module.available())
    {
      char c = wifi_module.read(); 
      response =c;
    }  
}

Вот и всё! Надеемся, что у вас всё заработало.

Общие сведения:

Trema-модуль датчик газа MQ-2 и MQ-135 – способны определять концентрацию широкого спектра газов в воздухе (природные газы, углекислый и угарный газ, углеводороды, дым, пары спирта и бензина).

Trema-модуль датчик газа MQ-3 – способен определять концентрацию паров спирта в воздухе.

Trema-модуль датчик газа MQ-6 – способен определять концентрацию углеводородных газов в воздухе.

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

Общие сведения

Датчик MQ7 (MQ-7), состоит из керамической трубки AL2O3 (оксида алюминия) и нанесенного на нее тонкого слоя SnO2 (диоксид олова). Внутри трубки находится нагревательный элемент, который осуществляет нагрев чувствительного слоя. Сам датчик состоят из пластмассового корпуса и сетки, изготовлено из нержавеющий стали, в нижней части расположены шесть выводов, четыре из которых используются для снятия показаний, а другие два, для нагрева.

Датчик установлен на печатную плату (30 мм х 19 мм) с синий маской, с другой стороны платы, расположено четыре вывода (шаг 2.54 мм),  два контакта для подключения питания и два для считывания показаний (аналоговый и цифровой). Показания, аналогового сигнала «Вывод AO» , снимаются непосредственно с одного из вывода датчика MQ7, значение от 0 В . . .

5 В, а цифровой сигнал  «Вывод DO»,  может устанавливается в лог «0» или лог «1» («0 В» или «5 В»), в зависимости от концентрации газа, чувствительность выхода, можно регулировать с помощью поворотного потенциометра. За преобразовании аналогового сигнала в цифровой отвечает встроенный компаратор LM393, который может выдать ток до 15 мА и дает возможность подключать модули модули реле без контроллеров.

Для визуализации, на плате расположены два светодиода, один светится при подачи питания, второй  светится, когда на «Вывод DO», логическая «0» , то-есть сработал порог включения. Принципиальная схема и назначение каждого вывода датчика MQ7 (MQ-7), показана ниже.

Группа контактов► VCC — Питание модуля « »► GND — Питание модуля «-«► DO — Цифровой вывод► AO — Аналоговый вывод

Питание:

Входное напряжение питания 5 В постоянного тока, подаётся на выводы «V» (Vcc) и «G» (GND) модуля.

Подключение датчика mq7 (mq-7) к arduino

Необходимые детали:► Датчик угарного газа MQ7 (MQ-7) x 1 шт.► Arduino UNO R3 (DCCduino, CH340G)x 1 шт.► Провод DuPont 10x, 2,54 мм, 20 см, F-F (Female — Female) x 1 шт.

Подключение:В данном примере используем датчик MQ-7 и плату Arduino UNO R3, все получение показания, отправляем на Serial-порт (при желание, можно подключить LCD1602 дисплей). Для сборки схемы, необходимо всего три провода, сначала подключаем аналоговой вывод A0 (MQ7)

Запускаем среду разработки Arduino IDE и копируем скетч (для удобства, добавлю файл для скачивания).

Подключение:

В комплекте имеется кабель для быстрого и удобного подключения к Trema Shield.

  • Аналоговый выход модуля «S» (Signal) – подключается к любому аналоговому входу Arduino и предназначен для снятия показаний модуля.
  • Цифровой вход модуля «EN» (Enable) – подключается к любому выходу Arduino и предназначен для управления режимами работы модуля («1» – активный режим, «0» – режим энергосбережения).
  • Если вход «EN» оставить неподключённым, то модуль будет находиться в активном режиме пока есть питание.

Модуль удобно подключать 3 способами, в зависимости от ситуации:

Подробнее о модуле:

Уровень напряжения на аналоговом выходе «S» (Signal) прямо пропорционален концентрации детектируемых газов. Цифровой вход «EN» (Enable) можно не использовать – тогда модуль будет работать постоянно.

Если подключить вход модуля «EN» к любому выходу Arduino, то модулем можно управлять: логическая «1» подключит нагревательный элемент датчика к шине питания и модуль будет регистрировать концентрацию газов, логический «0» отключит нагревательный элемент и модуль перейдёт в режим энергосбережения.

Пояснения к коду:

  1. в этом примере необходимо будет откалибровать датчик, т.е. настроить включение светодиода при заданном пороге концентрации газа. При этом датчик не распознает газы, поэтому лучше использовать библиотеки для MQ2.
Датчик широкого спектра газов MQ-2
Датчик широкого спектра газов MQ-2 и Ардуино

Для следующего примера следует переключить пин A1 на логический порт сенсора газа (цифровой сигнал). Если вы используете датчик широкого спектра газов MQ-2 от компании Амперка, то подключите его к микроконтроллеру, согласно схеме. При этом у сенсора должен быть включен нагрев (замкнута перемычка на плате датчика). После подключения датчика к Arduino, загрузите следующую программу в плату.

Применение:

  • Анализатор воздуха;
  • Алкотестеры;

Пример для типа подключения 1:

int8_t gasPin = A0;                       // Определяем номер вывода, к которому подключен модуль

void setup() {
  Serial.begin(9600);                     // Инициируем передачу данных на скорости 9600 бит/сек
  pinMode(gasPin, INPUT);                 // назначаем вывод, к которому подключен датчик, работать в режиме входа
}
void loop() {
  Serial.print("Gas volume: ");           // выводим текст в монитор порта
  Serial.println(analogRead(gasPin));     // выводим значение с датчика
  delay(1000);                            // ждём секунду
}

Пример для типа подключения 2:

int8_t gasPin = A0;                       // Определяем номер вывода, к которому подключен модуль
int8_t gasPwr = 8;                        // Определяем номер вывода, к которому подключено управление нагревателя модуля
void setup() {
  Serial.begin(9600);                     // Инициируем передачу данных на скорости 9600 бит/сек
  pinMode(gasPin, INPUT);                 // назначаем вывод, к которому подключен датчик, работать в режиме входа
}

void loop() {
  if (analogRead(gasPin) < 550) {         // если значение с датчика ниже порога, то
    digitalWrite(gasPwr, LOW);            // выключаем питание с нагревателя и
    Serial.println("GasPwr OFF");         // выводим текст в монитор порта
  } else {                                // если значение с датчика выше порога, то
    digitalWrite(gasPwr, HIGH);           // включаем питание нагревателя,
    Serial.print("Gas volume: ");         // выводим текст в монитор порта
    Serial.println(analogRead(gasPin));   // выводим значение с датчика
  }
  delay(1000);                            // ждём секунду
}

Принципиальная схема

Прежде всего, подключите модуль ESP8266 к Ардуино. Чтобы правильно подключить ESP8266 к Arduino, мы использовали модуль адаптера ESP-01, который сделает соединение очень простым. Этот адаптерный модуль имеет встроенный регулятор 5В на 3,3 В, что означает, что вам не придется использовать резисторы.

Подключите контакт VCC адаптера ESP-01 к выходу 5V на Arduino и Землю (GND) на ESP-01 к GND на Arduino. Затем подключите вывод TX от адаптера к пину 2 на Ардуино и RX от адаптера к выходу 3 на Arduino.

Дальше подключите датчик MQ-2 к Ардуино. Подключите VCC и GND к датчику к контактам 5V и GND на Arduino. Затем подключите контакт A0 на MQ-2 к A0 на Arduino.

После этого подключите Зуммер и светодиоды к Arduino. Подключите положительный сигнал к зуммеру с контактом 10 на Arduino и отрицательный сигнал на зуммере с GND на Arduino. Затем подключите отрицательную сторону светодиодов к заземлению через резистор 220 Ом и положительную сторону к контактам 8 и 9 на Arduino.

Скетч

Прошейте контроллер скетчем через Arduino IDE.
Не забудьте скачать библиотеку TroykaMQ для работы с датчиком дыма.

co-alarm.ino
// библиотека для работы с датчиками MQ (Troyka-модуль)#include <TroykaMQ.h>
 
// имя для пина, к которому подключен датчик#define PIN_MQ2         A3// имя для пина, к которому подключен нагреватель датчика#define PIN_MQ2_HEATER  11
 
// создаём объект для работы с датчиком// и передаём ему номер пина выходного сигнала и нагревателя
MQ2 mq2(PIN_MQ2, PIN_MQ2_HEATER);
 
// номер цифрового пина зелёного светодиода#define LED_GREEN_PIN  4// номер цифрового пина красного светодиода#define LED_RED_PIN    2// номер цифрового пина пищалки#define BUZZER_PIN     10
 
void setup(){// открываем последовательный порт
  Serial.begin(9600);// назначаем 2 пина в режиме выхода
  pinMode(LED_GREEN_PIN, OUTPUT);
  pinMode(LED_RED_PIN, OUTPUT);// включаем нагреватель
  mq2.heaterPwrHigh();
  Serial.println("Heated sensor");}
 
void loop(){// если прошёл интервал нагрева датчика// и калибровка не была совершенаif(!mq2.isCalibrated()&& mq2.heatingCompleted()){// выполняем калибровку датчика на чистом воздухе
    mq2.calibrate();// выводим сопротивление датчика в чистом воздухе (Ro) в serial-порт
    Serial.print("Ro = ");
    Serial.println(mq2.getRo());}// если прошёл интервал нагрева датчика// и калибровка была совершенаif(mq2.isCalibrated()&& mq2.heatingCompleted()){// считываем показания вредных газовfloat valueLPG = mq2.readLPG();// если показания превышают пороговое значениеif(mq2.readLPG()>500){// включаем предупреждающий сигнал и мигаем красным светодиодом
      signaling(100);// если показания сильно превышают предельную норму}elseif(mq2.readLPG()>100){// включаем сирену и быстро мигаем красным светодиодом
      signaling(300);}else{// гасим красный светодиода и зажигаем зелёный
      digitalWrite(LED_GREEN_PIN, HIGH);
      digitalWrite(LED_RED_PIN, LOW);}}}
 
// функция сигнализацииvoid signaling(int frequency){// гасим зелёный светодиод
  digitalWrite(LED_GREEN_PIN, LOW);// в зависимости от переданной переменной// пищим бузером и мигаем красным светодиодом
  digitalWrite(LED_RED_PIN, HIGH);
  tone(BUZZER_PIN, 300, frequency);
  delay(frequency);
  digitalWrite(LED_RED_PIN, LOW);
  delay(frequency);}

Скетч. mq2 от амперки с библиотекой troykamq.h

#include <TroykaMQ.h>  // библиотека для датчика#define PIN_MQ2  A1     // имя пина для подключения датчика
MQ2 mq2(PIN_MQ2);    // создаём объект для работы с датчикомvoidsetup() {
   Serial.begin(9600);
   // выполняем калибровку датчика
   mq2.calibrate();
   // выводим сопротивление датчика в чистом воздухе (Ro)Serial.println("Ro = "   String(mq2.getRo()));
}

voidloop() {
   // выводим значения газов в ppmSerial.println("LPG: "   String(mq2.readLPG())   " ppm");
   Serial.println("Methane: "   String(mq2.readMethane())   " ppm");
   Serial.println("Smoke: "   String(mq2.readSmoke())   " ppm");
   Serial.println("Hydrogen: "   String(mq2.readHydrogen())   " ppm");

   Serial.println(" ");
   delay(200);
}

Спецификация:

  • Входное напряжение питания: 5 В (постоянного тока)
  • Потребляемый ток: 130 … 140 мА (в активном режиме)
  • Потребляемый ток: 0,5 … 0,8 мА (в режиме энергосбережения)
  • Сигнал на выходе: от 1,2 В ±0.5 до Vcc-4% (зависит от концентрации измеряемых газов)
  • Рабочая температура: 0 … 50 °C
  • Габариты: 30×30 мм

Все модули линейки “Trema” выполнены в одном формате

Способ – 1 :  используя проводной шлейф и piranha uno

Используя провода «Папа — Мама», подключаем  напрямую к контроллеру Piranha UNO.

Способ – 2 :  используя trema set shield

Модуль можно подключить к любому из аналоговых входов Trema Set Shield.

Способ – 3 :  используя проводной шлейф и shield

Используя 3-х проводной шлейф, к  Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.

Схема и распиновка датчика газа mq2

Распиновка датчика MQ2
Распиновка сенсора утечки газа MQ2 на Ардуино

Напряжение аналогового выхода изменяется пропорционально концентрации дыма или газа. Чем выше концентрация газа, тем выше выходное напряжение. Логический сигнал можно откалибровать, держа датчик рядом с дымом, который вы хотите обнаружить. Далее вращайте потенциометр по часовой стрелке (для увеличения чувствительности сенсора), пока не загорится красный светодиод на модуле.

Характеристики датчика mq2 ардуино

  • Питание: 5 Вольт;
  • Потребляемый ток: 180мА;
  • Чувствительность: 300-10000 ppm;
  • Рабочая температура: от -10 до 50 °C;
  • Влажность воздуха: не более 95%;
  • Интерфейс: аналоговый и цифровой.
Оцените статью
Анемометры
Добавить комментарий