Arduino

технологии

Датчик угарного газа MQ-7

Угарный газ (монооксид углерода) - очень опасный газ, так как не имеет ни вкуса, ни запаха, прозрачен и при этом смертельно токсичен.

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

В частном доме настоятельно рекомендуется установка датчика угарного газа, который громко сообщит владельцам о наличии CO, разбудит их ночью и тем самым убережет от отравления или даже от смерти.

Сейчас продается много готовых готовых датчиков-измерителей угарного газа и дыма как в российских магазинах:

так и за границей:

Я покупал большинство из них и все они хорошо справляются с поставленной задачей - вовремя предупреждать об опасной концентрации газа CO.

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

В таких случаях вы можете довольно просто собрать такое устройство на базе Arduino и сенсора MQ-7. При необходимости его можно интегрировать в экосистему умного дома или расширить его функционал как захочется.

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

  • вопрос питания - если это батарейки или аккумуляторы, то необходимо сигнализировать когда их нужно поменять
  • подтверждение работы датчика, например, ненавязчивый зеленый светодиод, мигающий раз в минуту
  • перед размещением датчика в помещении проверить его работу - например размесить его в большой кастрюле, зажечь в ней свечи/бумагу, и закрыть крышку

Приведу ссылки на проверенных продавцов, у которых я заказывал датчик MQ-7:

Подключается датчик очень просто: разъемы GND и VCC подключаются соответственно к пинам GND и +5V на Arduino, а разъем A0 - к любому свободному аналоговому пину.

Рассмотрим простой код получения данных с сенсора:

#define MQ7_A A3

void setup()
{
  Serial.begin(9600);
  pinMode(MQ7_A, INPUT);
}

void loop()
{
  int ppm = analogRead(MQ7_A);
  Serial.print("ppm = ");
  Serial.println(ppm);
  delay(5000);
}

Открыв консоль сериального порта, каждые 5 секунд мы увидим значение показания сенсора.

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

Как подключить кнопку без использования сопротивления можно посмотреть в заметке "Использование простой кнопки".

Ну а пример работы со спикером есть в проектах "Простой будильник на Arduino Uno" и "Интерактивная елочная игрушка".