Анализатор утечки газа на Arduino

Чуть не приключилась беда, придя домой с работы почувствовал запах газа, оказалось, что одно из соединений гибкой подводки газа к плите давала небольшую течь. Поменял прокладки, проверил качество соединения мыльным раствором, больше газом не пахнет. Решил для перестраховки таких случаев собрать примитивный анализатор утечки газа. Выбор пал на плату Arduino Uno, которая без дела лежала полгода. В этой заметке я расскажу о применении вышеуказанной платы с аналоговым датчиком газа MQ-6 datasheet от Hennan Hanwei Electronics, мы соберем простую схему с выводом полученных значений в серийный порт и простую свето-звуковую индикацию присутствия газа и напишем небольшой скетч.Соберем небольшую схему, нам понадобиться:

  1. Светодиод зеленого свечения — 1шт.
  2. Светодиод красного свечения  — 1шт.
  3. Пьезодинамик — 1шт.
  4. Резистор на 330Ω2шт.
  5. Arduino Uno (или другая) — 1шт.
  6. Датчик газа MQ-6- 1шт.

Датчик газа в сборе MQ-6Купленный мною датчик газа, смонтирован на небольшую плату и включает в себя подстроечный резистор для регулирования чувствительности. Схема подключения датчика газа MQ-6Вот что получилось в программе Fritzing.

Напишем скетч для Arduino:

 Загрузим скетч в ардуино, если все сделано правильно, то зеленый светодиод (pin4) будет гореть, проверить работу датчика можно выпустив в него газ из зажигалки. Так же в скетче мы предусмотрели вывод значений в параллельный порт. Нажав комбинацию клавиш Shift+Ctl+M в среде разработки Arduino IDE, мы вызовем терминал, в котором будем видеть полученные значения с нашего датчика.

Большие значения появились после выпускания газа из зажигалки

Видео работы схемы

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

Анализатор утечки газа на Arduino: 13 комментариев

  1. Хорошая задумка. А как сделать так, чтобы ардуино считывал с нескольких датчиков? Что в коде необходимо добавить?

  2. Код будет выглядеть так?

    int sensorPin = 0;
    int sensorPin = 1;
    int sensorPin = 2;

    Влияет ли длина провода от сенсора на его показания?

    1. Приветствую!
      Имена переменных должны быть разными
      int sensorPin0 = 0;
      int sensorPin1 = 1;
      int sensorPin2 = 2;

      далее нужно будет считать показания с датчиков
      gas0 = analogRead(sensorPin0);
      gas1 = analogRead(sensorPin1);
      gas2 = analogRead(sensorPin2);

      Про длину проводов ничего сказать не могу, но скорей всего конечно влияет, т.к. датчик аналоговый и дополнительное сопротивление конечно будет влиять на показания.
      P.S. В своих опытах учтите, что один датчик потребляет около 900 мВт

  3. Спасибо большое за советы.
    Это получается один датчик потребляет 180 мА. Мда, от батареек это чудо питать явно нецелесообразно.

  4. Спасибо очень нужная схемка как раз с двумя датчиками. У меня остался электронный клапан на входной газовой трубу (рабочий) от старой сигнализации(китайская была ставил застройщик), во его еще подключить чтоб при утечки газ закрывался. У меня есть модуль с двумя реле для arduini к нему можно подключить это клапан, не подскажите что еще прописать в скетчи чтоб при срабатывании датчика реле замыкались и срабатывал клапан (при высоких концентрациях как с интенсивностью пищалки) и куда подсоединить его.

  5. На схеме ошибка: один вывод пьезодинамика подключен правильно (pin 10), а второй должен быть на GND, а не 5V.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *