Как подключить датчик MQ-135 к Arduino

Сегодня мы познакомимся с MQ-135, который способен оценивать качество воздуха и определять наличие вредных газов. MQ-135 относится к классу полупроводниковых датчиков. Внутри находится чувствительный слой из диоксида олова (SnO₂), который нагревается встроенным нагревателем. Когда газ вступает в контакт с этим слоем, сопротивление меняется — чем выше концентрация газа, тем ниже сопротивление.

Датчик MQ-135 характеристики, распиновка

Датчик mq-135 распиновка, характеристики
Датчик дыма mq-135 распиновка, характеристики

MQ-135 не предназначен для точного измерения CO₂ в ppm без сложной калибровки. Для серьезных задач по CO₂ лучше использовать специализированные датчики (например, MH-Z19B). Индикатор качества воздуха MQ-135 требует времени для стабилизации. Не ждите точных цифр в первые минуты после включения. Помните, что нагреватель потребляет ток — при питании от батарей проект проживет недолго.

Характеристики датчика MQ-135 Arduino (datasheet)

  • Напряжение питания: 5V DC
  • Ток потребления: ~150 мА (с прогревом)
  • Время прогрева: новый — 24-48 часов, потом 5 минут
  • Интерфейс: Аналоговый + Цифровой
  • Обнаруживаемые газы: Аммиак (NH₃), оксиды азота (NOx), бензол, дым (CO₂)
  • Диапазон концентраций: 10–10000 ppm От 10 частиц на миллион до 1%
  • Размеры: 32×22×27 мм

Подключение датчика газа MQ-135 к Arduino

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

  • Arduino Uno / Arduino Nano / Arduino Mega
  • сенсор MQ-135
  • провода «папа-мама», «папа-папа»
Подключение сенсора газа MQ 135 к Arduino
Подключение сенсора газа MQ 135 к Arduino

Схема подключения:

  • MQ-135 (VCC) → 5V Arduino
  • MQ-135 (GND) → GND Arduino
  • MQ-135 (A1) → A1 Arduino
  • MQ-135 (D0) → цифровой пин (например 8)

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

Скетч для подключения сенсора MQ-135 к Ардуино

const int sensorPin = A1;

void setup() {
  Serial.begin(9600);
  Serial.println("Прогрев датчика MQ-135");
  Serial.println("Подождите 5 минут для стабильных показаний ...");
}

void loop() {
  // Читаем значение с датчика (0-1023)
  int sensorValue = analogRead(sensorPin);
  
  // Преобразуем в напряжение (0-5V)
  float voltage = sensorValue * (5.0 / 1023.0);
  
  // Выводим данные
  Serial.print("Аналоговое значение: ");
  Serial.print(sensorValue);
  Serial.print(" | Напряжение: ");
  Serial.print(voltage);
  Serial.println(" V");
  
  // Простейшая индикация качества воздуха
  if (sensorValue < 100) {
    Serial.println("Воздух чистый");
  } else if (sensorValue < 200) {
    Serial.println("Легкое загрязнение");
  } else if (sensorValue < 300) {
    Serial.println("Среднее загрязнение");
  } else {
    Serial.println("Сильное загрязнение! Проветрите помещение!");
  }
  
  Serial.println(" ");
  delay(2000); // Чтение каждые 2 секунды
}

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

  1. аналоговые значения (0-1023) мало о чем говорят, чтобы получить концентрацию в ppm (частиц на миллион), нужна калибровка и математика;
  2. для точных измерений используют библиотеки, например MQ135.h

Скетч для Ардуино с использованием библиотеки MQ135.h

#include "MQ135.h"

#define PIN_MQ135 A1

MQ135 mq135_sensor(PIN_MQ135);

void setup() {
  Serial.begin(9600);
}

void loop() {
  float rzero = mq135_sensor.getRZero();
  float correctedRZero = mq135_sensor.getCorrectedRZero(22, 50); // 22°C, 50% влажности
  float resistance = mq135_sensor.getResistance();
  float ppm = mq135_sensor.getPPM();
  float correctedPPM = mq135_sensor.getCorrectedPPM(22, 50);
  
  Serial.print("PPM: ");
  Serial.print(ppm);
  Serial.print(" | Corrected PPM: ");
  Serial.println(correctedPPM);
  
  delay(1000);
}

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

  1. библиотека требует калибровки сенсора под ваши условия, изучите документацию перед использованием.

Настройка и решение проблем

  1. Датчик «врёт» или показывает хаотичные значения:
    Дайте датчику поработать 5-10 минут, а лучше 24 часа после первого включения. Оставляйте датчик включенным постоянно, если нужна стабильность.
  2. Значения не меняются при появлении газа:
    Слишком низкая чувствительность или неправильный порог на D0. Подкрутите потенциометр на модуле (обычно синий) для настройки порога срабатывания.
  3. Датчик сильно греется:
    Внутри датчика стоит нагреватель, корпус может нагреваться до 60°C.
  4. Показания плавают без видимых причин:
    Датчик чувствителен к влажности и температуре, для точности нужна калибровка.

Заключение: MQ-135 — отличный инструмент для относительной оценки качества воздуха. Он не скажет вам точное количество ppm, но отлично покажет динамику: когда воздух становится грязнее, а когда чище. Экспериментируйте, калибруйте MQ135 под свои условия и не забывайте давать датчику время на прогрев!



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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.