Ардуино система обнаружения дыма своими руками

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Arduino и датчик газа / дыма MQ-2

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

Этот датчик достаточно недорогой и широко распространенный. К тому же он довольно прост в эксплуатации. В этом материале будет показано, как использовать Arduino вместе с датчиком дыма и газа MQ-2.

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

Для того, чтобы попрактиковаться с Arduino и датчиком MQ-2, соберем простую систему обнаружения газа/дыма. Для этого помимо самого датчика и Arduino нам потребуется макетная плата, один красный светодиод, один зеленый светодиод, динамик или зуммер, три резистора 220 Ом и соединительные провода.

Суть работы этой системы проста: при достижении определенного уровня газа/дыма в атмосфере загорится красный светодиод и зуммер будет издавать звук.

Соединение всех компонентов системы производится в соответствии с представленной ниже схемой. Здесь аналоговый выход датчика MQ-2 подключается к аналоговому порту A5 платы Arduino Uno. Зуммер подключается к цифровому порту D10, а зеленый и красный светодиоды к D11 и D12 соответственно.

После того, как правильно подключите все компоненты, скопируйте нижеприведенный код в среду разработки Arduino IDE, скомпилируйте его и загрузите в плату Arduino Uno. Этот скетч довольно прост. Для изменения порога срабатывания зуммера и красного светодиода можете поменять значение sensorThres.

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

Дымовая сигнализация с Ардуино, ESP8266 и датчиком дыма

В этом проекте мы собираемся создать систему обнаружения дыма, в которой за основу будет взять датчик дыма MQ-2. Если сенсор уловит дым зуммер начнет подавать звуковой сигнал и загорится красный светодиод, и на веб-странице будет отображаться предупреждение, которое мы создадим с помощью модуля ESP8266.

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

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

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

Деталь
1 Arduino Uno
1 ESP8266 Wi-Fi модуль с адаптером
1 MQ-2 сенсор
1 Красный и зеленый светодиод
1 Зуммер
1 220 Ом резистор
1 Макет
Провода-перемычки

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

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

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

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

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

Прежде всего, подключите модуль 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.

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

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

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

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

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

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

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

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

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

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

Инструкции

Сегодня мы рассмотрим схему сборки и поэтапно разберем, как сделать пожарную сигнализацию на Arduino.
В данной разработке специализированное устройство MQ-2 будет определять наличие дыма поблизости. В случае стабильной работы сигнализации, если рядом будет находиться дымовая завеса, раздастся пронзительный звуковой свист, вместе с этим засветиться светодиод красного цвета, после этого на странице вашего браузера появится напоминание о пожаре, его разработаем отдельно используя ESP8266.
Страницу с уведомлением можно открыть с разной электроники в которой есть интернет и поддержка работы с браузерами, например для смарт-часов или мобильника, планшета, а также ПК.
Аппаратура которая потребуется для проекта:

1. Микроконтроллер Arduino UNO
2. ESP8266 Wi-Fi модуль с адаптером
3. Провода для соединений
4. Макетная плата
5. Звуковое устройство
6. Резистор 220 Ом
7. MQ-2
8. Зеленый и красный светодиод

Принцип работы сигнализации

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

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

Когда вы будете указывать этот IP-адрес в вашем интернет-браузере, вывод проекта отобразится там, как показано на изображении ниже.

Принципиальная электрическая схема

1. Подключаем ESP8266 к плате ардуино. Чтобы более точно и правильно соединить ESP8266, будет разумно взять на вооружение модуль ESP.Данный модуль сделает подключение более надежным. Этот модуль адаптера имеет напряжение 5 V, а это значит, что вам нет смысла и потребности использовать разного рода резисторы.
2. Подключаем пин VCC ESP-01 к 5 V пину в ардуино и к заземлению ESP-01 к GND на плате Arduino.
3. Монтируем подключение контакта TX от адаптера к пину 2 на микроконтроллере, а между тем контакт RX из самого адаптера к пину 3 на плате ардуино.
4. Далее подключаем датчик MQ2 к Arduino. Подключается VCC и земля на датчике к пинам 5V и GND, те что на микроконтроллере. Затем следующим этапом подключаем контакт A0 на MQ-2 к пину A0 на Arduino.
5. Подключаем зуммер вместе со светодиодами прямо к микроконтроллеру Arduino. Для этого требуется соединить плюс зуммера с пином 10 на микроконтроллере и минусовым на зуммере с GND на Arduino. Подключаем минусовую сторону используемых светодиодов к земле, а также резистор 220 Ом, а плюсовую сторону к пинам 8 и 9 на Arduino.

Код (объяснение)

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

• В настройках, во-первых, требуется установить скорость с которой будет передаваться последовательная связь, а также для Wi-Fi на 9600.
• Далее указываем контакты светодиодов и вывод звукового устройства как контакты выхода, потому что мы передадим вывод от этих контактов на звуковое устройство, а также светодиоды.
• Далее указываем вывод дымового датчика как для входа, потому что вывод дымового датчика должен принимать вход от датчика и передавать его на ардуино.Serial.begin (9600);

Линии «вызовут» функцию и настроят сервер по IP, который предоставлен ESP. Самому же ESP нужно данные отправить на указанный адрес айпи.

Линии «вызовут» функцию и настроят сервер по IP, который предоставлен ESP. Самому же ESP нужно данные отправить на указанный адрес айпи. В цикловых функциях потребуется считать значения, после чего в обязательном порядке принятие значение на выходе больше 400, значит рубильник светодиода красного цвета включить и начать душераздирающие звуки пожарной сигнализации. А вот если значение на выходе понизится ниже 400, гореть ярким светом зеленому светодиоду, а звуковое устройство в это время будет “нашептывать” звуками потише..

В следующих строках прописано отображение информации на странице интернет браузера. Для удачного начала, мы укажем «система обнаружения дыма IoT» вверху.

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

Код ниже отправит информацию прямо в ESP и отобразит вывод расчетов ESP дисплее.
String esp8266_command (команда String, время ожидания const int, логическая отладка)

Подключение 4х проводного дымового пожарного извещателя к Ардуино (Пожарная сигнализация на Ардуино)

В этом посте я расскажу о том как подключить 4х проводный пожарный датчик (дымовой пожарный извещатель) к ардуино. Вся “сложность” заключается лишь в том что хорошие дымовые пожарные извещатели, которые имеют сертификат соответствия ФЗ-123, запитываются минимум от 9 вольт. Поэтому я использую именно 4х проводные извещатели для подключения к ардуино, так как питание у них идет по отдельной паре проводов. Для корректной работы от ардуинки нам понадобится два пина. Один – аналоговый для измерения падения напряжения в шлейфе сигнализации, второй – цифровой для управления питанием извещателя для его перезапуска в целях реализации правильного алгоритма работы извещателя и защиты от ложных срабатываний. В этой статье мы рассмотрим только схему включения, а в дальнейшем представлю логику управления. Итак мы будем запитывать извещатель от 12 вольт, питание шлейфа сигнализации также возьмем от 12 вольт и пустим через делитель для того чтобы сэкономить пин и не нагружать ардуинку излишним питанием. Для нашего проекта возьмем извещатель пожарный дымовой оптико-электронный точечный ИП 212-147. Его стоимость равна 300 рублей по состоянию на 2019.01.02. Откроем его паспорт и посмотрим интересующие нас моменты:

  • Напряжение питания,
  • Ток потребления в дежурном режиме,
  • Ток потребления в режиме “Пожар”,
  • Напряжение в шлейфе сигнализации,
  • Ток в шлейфе сигнализации,
  • Принцип срабатывания,
  • Время перезапуска

Электрические параметры ИП212-147
Принцип действия ИП212-147

Для управления электропитанием извещателя я использовал МОП-реле КР293КП3А, потому что оно было под руками. Штука отечественная, а значит – дорогая… Можно использовать аналоги из Поднебесной, которые стоят в 10! раз дешевле, да в придачу еще и мощнее. Для фанатов транзисторов – можно сделать ключ.
Откроем даташит на реле и посмотрим интересующие нас моменты:

  • Коммутируемое напряжение,
  • Коммутируемый ток,
  • Входное напряжение,
  • Входной ток.

Электрические параметры КР293КП3А
Теперь зная все что нас интересует соберем простую схему. Красные линии это +12В, синие – корпус, фиолетовые – до 5 вольт для ардуинки. ВАЖНО помнить! Если вы запитываете ардуинку и схему от разных источников электропитания – обязательно объединяйте минусы источников!
Схема подключения 4 проводного дымового пожарного извещателя ИП212-147 к ардуино

Теперь давайте я расскажу что мы тут видим. Начнем с правой части схемы которая управляет питанием извещателя. При заявленных токах потребления извещателя: дежурный режим – не более 0,07 мА, режим пожар – не более 30 мА мои измерения показали что при питании 12,2В токи соответственно 0,05 мА и 8,02 мА. Зачем нам это знать? Дело в том что данное оптореле, как видно из даташита, может пропустить не более 220 мА. Таким образом мы можем повесить на 1 реле не более 220/30 = 7 шт по паспорту или 220/8,02 = 27 шт при питании 12,2 В по измерениям. Но лучше делать по паспорту)).

На входе управления оптореле стоит ограничительный резистор Ro. Он нужен для ограничения тока светодиода внутри оптореле. Его номинал рассчитывается следующим образом. Мы знаем что цифровой выход ардуино выдаст нам 5В. Максимальный входной ток (который должен протекать через светодиод) равен 25мА, а номинал – 10мА. При 10 мА на диоде падает 1,2 В, следовательно сопротивление его равно (1,2/10) * 10^3 = 120 Ом. Исходя из этого получаем: 10мА = 5В/(Ro+120 Ом), Ro = (5/10)* 10^3 – 120 = 380 Ом.
Ну, с номиналами разобрались, а логика еще проще: пока ардуинка выдает на выходе пина 5 В – извещатель (ли) запитан, сняли 5 В на 2 секунды – произвели перезапуск извещателя по питанию, что нам и нужно.

Теперь перейдем к левой части схемы где мы, собственно, и отслеживаем состояние шлейфа. На резисторах Rд1 и Rд2 собран делитель напряжения т.к. мы знаем что подавать 12 В на пин ардуино, мягко говоря, не следует. Номиналы я использовал следующие: Rд1 = 2кОм, Rд2 = 1,33 кОм. Ток в цепи получается не большой: (12,2/(2+1,33)) * 10^-3 = 3,66 мА номинальный или (12,2/2) * 10^-3 = 6,1 мА максимальный, при коротком на втором плече делителя. Такой ток ардуинке не страшен. На Rд1 падает: 3,66 мА * 2кОм = 7,32 В, а на Rд2, на котором мы измеряем напряжение с помощью аналогового пина ардуино: 3,66 мА * 1,33кОм = 4,88 В. Даже если на шлейфе внезапно окажется короткое – то все упадет на Rд1 и мы на входе получим нуль. Таким образом, ни короткое, ни обрыв нам не страшны.

Далее параллельно Rд2 мы подключаем оконечное сопротивление Rok и сами извещатели, можно через дополнительный резистор Rдоп, а можно и без него. Что мы должны учитывать? Что Rд2 = 1,33 кОм (в моем примере). От этого и пляшем. Если взять Rок = Rд2, то напряжение на пине упадет вдвое. Чем больше сопротивление Rок – тем больше будет напряжение на пине (т.к. общее сопротивление плеча делителя будет уменьшаться меньше) и на оборот. Это нужно для контроля целостности шлейфа на обрыв и короткое. Слишком большие отклонения сокращают количество вариантов для анализа, слишком малые отклонения будут способствовать возникновению ошибок, т.к. какой бы суперстабилизивованный источник питания мы не использовали – все равно будут отклонения. Особенно если к нему пару электромеханических замков подключить. Или нужно использовать отдельный стабилизатор.

С извещателями – та же песня. Мои измерения показали что при напряжении 4,88 В сопротивление сработавшего извещателя становится приблизительно 500 Ом. Соответственно без дополнительного резистора при Rд2 = 1,33 кОм и Rок = Rд2, мы нашими 500 Омами еще раз поделим напряжение примерно на 2. В принципе для подключения 1 извещателя этого достаточно. При указанных номиналах мы имеем следующую картину:

  • Короткое на шлейфе – значение АЦП 0 (0 В)
  • Обрыв шлейфа – значение АЦП

1000 (4,88 В)
Норма – значение АЦП

2,5 В)
Сработка датчика без дополнительного резистора – значение АЦП

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

На этом, собственно, все! Есть вопросы – пишите к комментариях. Не ленитесь – оценивайте статью.

Библиотеку и скетч для работы можно скачать здесь: Библиотека и скетч для работы с 4х проводным дымовым пожарным извещателем с Ардуино
О том как подключить 2х проводный пожарный датчик к ардуино можно прочитать в посте Подключение 2х проводного дымового пожарного извещателя к Ардуино

Оцените пожалуйста статью:

4 Replies to “ Подключение 4х проводного дымового пожарного извещателя к Ардуино (Пожарная сигнализация на Ардуино) ”

Очень интересная статья, только что то не прошел этот метод с 3.3в логикой и ип212-141. есть у вас возможность подискутировать на эту тему?

Задавайте вопросы! Все обсудим!

используем esp32 и датчики ип 212-141 без УС-02 (так как других у нас в городе не найти) есть ли смысл покупать отдельно УС-02 и делать из 2х проводных 4х проводные и применять на них вашу схему или может у вас есть решения для двухпроводных извещателей?

Думаю можно реализовать подключение и 2х проводных. Данное решение придумано слету, еще не рассчитывал и не проверял. Поэтому извините если что-то напутал. Извещатель с добавочным резистором и оконечный резистор нужно устанавливать параллельно 1 плечу делителя. Источник питания придется использовать на 24 вольта. Извещатель питается от 9 до 30 вольт. При срабатывании извещателя питание на нем будет проседать, т.к. общее сопротивление 1 плеча делителя будет уменьшаться, а на втором плече делителя будет увеличиваться. Поэтому нужно рассчитать номиналы чтобы всем было хорошо. Большой минус такого включения – в случае КЗ на шлейфе сопротивление первого плеча делителя будет стремиться к нулю и мы начнем получать на ноге контроллера 24В 🙁 .

Источники:

http://arduinoplus.ru/dimovaya-signalizacia-arduino/

http://gadgetpage.ru/instrukcii/3364-pozharnaja-signalizacija-na-arduino.html

http://allforproject.ru/4wire-dip-arduino-connect/

http://xn--18-6kcdusowgbt1a4b.xn--p1ai/%D0%B4%D0%B0%D1%82%D1%87%D0%B8%D0%BA-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE-%D1%81%D0%B2%D0%BE%D0%B8%D0%BC%D0%B8-%D1%80%D1%83%D0%BA%D0%B0%D0%BC%D0%B8/

Ссылка на основную публикацию