Подключение MH-Z19 к Ардуино

27-02-2020, 18:51 0 комментариев
Наша задача на сегодня - разобрать подключение MH-Z19 к Ардуино, а также базовые характеристики и практичность применения PIR датчика углекислого газа. В принципе с последним пунктом более-менее все понятно. Мы все понимаем, что в целях безопасности не помешает постоянно отслеживать концентрацию CO2 в квартире ∕ доме ∕ офисе. Конечно, можно приобрести готовую бытовую систему, но она обойдется вам в круглую сумму, а вот так называемый комнатный прибор, сделанный своими руками, сэкономит семейный бюджет и принесет огромную пользу.

Само устройство инфракрасного измерителя концентрации CO2, с которым мы сегодня знакомимся, создано для определения удельного содержания газа. Сенсор не требует высокой мощности, стабилен в работе (до 5 лет эксплуатации), имеет малое энергопотребление и высокую чувствительность, способен передавать данные через 2 выходных интерфейса: PWM и UART.

Теперь обратимся к техническим особенностям модуля:
  • напряжение: 3.6 - 5.5V;
  • потребляемый ток: < 18 мА;
  • диапазон измерений: 0 - 0.5 %;
  • время измерения: T90 < 60 сек.;
  • диапазон рабочих температур: 0-50 С;
  • допустимая влажность: 0 - 95% RH;
  • габариты: 33 ×20 × 9 мм;
  • вес: около 21 грамм
Рассмотрим схему подключения инфракрасного датчика к Arduino:


В ней мы задействовали такие аппаратные компоненты: плату расширения Arduino Nano (можно использовать другие совместимые микроконтроллеры), модуль MH-Z19, комплект соединительных проводов.

Наша следующая задача – написать коды для чтения значений с устройства (и проверки его работоспособности). Пример такого скетча:
#define pwmPin 5
#define LedPin 13

int prevVal = LOW;
long th, tl, h, l, ppm;

void setup() {
  Serial.begin(9600);
  pinMode(pwmPin, INPUT);
  pinMode(LedPin, OUTPUT);
}

void loop() {
  long tt = millis();
  int myVal = digitalRead(pwmPin);

  //Если обнаружили изменение
  if (myVal == HIGH) {
    digitalWrite(LedPin, HIGH);
    if (myVal != prevVal) {
      h = tt;
      tl = h - l;
      prevVal = myVal;
    }
  }  else {
    digitalWrite(LedPin, LOW);
    if (myVal != prevVal) {
      l = tt;
      th = l - h;
      prevVal = myVal;
      ppm = 5000 * (th - 2) / (th + tl - 4);
      Serial.println("PPM = " + String(ppm));
    }
  }
}
Управление осуществляется через монитор COM-порта (Ctrl+Shift+M).

На базе указанного образца можно модернизировать всю систему, дополнив ее. Например, при желании можно собрать портативный девайс для измерения уровня CO2 в воздухе. Для него будут использоваться дисплей (типа Nokia 5110), источник питания на 5 В, а также несколько специализированных библиотек.

Для справки: существует несколько типов или классов «загазованности» помещений согласно ГОСТ:
Именно на эти параметры мы ориентируемся при тестировании.
Надеемся, вы оцените преимущества подобного прибора и будете им пользоваться на постоянной основе! До новых встреч!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Тема нашей сегодняшней статьи – подключение датчика сердечного ритма AD8232 к Ардуино. Про целесообразность и практичность подобного устройства много говорить...

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

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

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

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

Оставить комментарий