Детектор загрязнения окружающего воздуха

Выбираем монитор-детектор качества воздуха (PM2.5, CO2, TVOC, HCHO): лучшие модели на страже вашего здоровья

Контроль за окружающим воздухом выходит на первое место, и не последнюю роль играют газоанализаторы и детекторы примесей в воздухе. Не так давно эти приборы были сугубо профессиональными, но сейчас есть возможность приобрести для себя анализатор параметров воздуха, например, датчик частиц пыли (PM1.0, PM2.5, PM10), датчики СО и СО2, газоанализаторы, например, паров формальдегид или летучих веществ (ЛОС). На рынке присутствуют недорогие модели на 1-2 параметра, стоимостью от $20, заканчивая профессиональными комбоанализаторами за

$200. Ряд моделей имеет возможность удаленного мониторинга и подключения к системам умного дома.

Если интересна подборка простых моделей, которые измеряют 1-2 параметра, типа монитора качества воздуха Xiaomi PM2.5, прошу написать в комментариях, тогда оформлю отдельную статью. А вот подробный обзор про комбинированное устройство Монитор качества воздуха Honeywell HAQ (6 типов показателей)

Начну список с хорошей качественной модели анализатора-детектора из Поднебесной. Это переносной (ручной) детектор, который сразу отображает несколько параметров: измерение частиц PM1.0, PM2.5 и PM10 в воздухе (лазерный датчик), газоанализатор HCHO (формальдегид), летучих веществ (ЛОС/VOC), датчик газа СО2. Есть возможность экспорта лога на MicroSD карту. Встроенный аккумулятор 2200мАч. Есть модификации 4-в-1 и 6-в-1, будьте внимательны.

Простой и практичный беспроводной монитор качества воздуха с измерением параметров содержания HCHO (формальдегид), летучих веществ (ЛОС/VOC) и углекислого газа СО2. Встроенного аккумулятора нет, работает от питания USB. Беспроводное подключение по Wi-Fi (2.4G). В кармане носить не получится, но дома работает непрерывно. Версия JQ-300 отличается наличием дополнительного детектора частиц пыли PM2.5.

Свежая модель портативного детектора-анализатора качества воздуха (2019 года). Оборудован датчиками частиц PM2.5 и PM10 в воздухе (лазерный датчик), газоанализатором формальдегида (HCHO), детектором летучих веществ (ЛОС/VOC), датчиком газа СО2. Простой в использовании, работает от аккумулятора, есть подставка (подножка) для использовании в комнате.

Бюджетная, почти детская модель детектора, цена практически самая низкая из всех, что я смог найти. Дисплей цветной, корпус переносной (карманный). Измеряет наличие частиц пыли в воздухе (датчики PM1, PM2.5 и PM10), газов формальдегида (HCHO) и летучих органических веществ (VOC/ЛОС). За работу отвечает встроенный аккумулятор 1000mAh.

Эта модель точно самая дешевая (около $25), также, как и другие модели имеет встроенный газоанализатор формальдегида (HCHO) и летучих органических веществ (VOC/ЛОС), а также датчик углекислого газа (СО2). Измерителя твердых частиц в воздухе (PM1 / PM2.5 / PM10) — не предусмотрено, тут внимательно смотрите. Работает от USB.

Для контраста добавляю топовую модель домашнего измерителя качества воздуха Air Master. Это не самая дорогая, но самая продвинутая модель анализатора со встроенными датчиками твердых частиц в воздухе (PM2.5 / PM10), газоанализаторы формальдегида (HCHO) и летучих органических веществ (VOC/ЛОС). Конечно, есть встроенный датчик температуры и влажности (гигрометр). Есть модификация с Wi-Fi (по ссылке без Wi-Fi, нужную искать по словам «Air Master Wi-Fi»)

В копилку бюджетных моделей — компактный анализатор все-в-одном, выполнен в виде портативного прибора. Дисплей цветной и отображает несколько параметров сразу: величину содержания частиц PM2.5 и PM10 в воздухе, показания газоанализатора HCHO (формальдегид), и содержание летучих веществ (ЛОС/VOC). Цветом показывает допустимые границы и превышение содержания частиц и газов в воздухе. Цена около $30.

Настольный анализатор качества воздуха DM601 с большим цветным экраном 4.3″ (320×240 пикселей) и встроенными датчиками твердых частиц PM1.0, PM2.5 и PM10 в воздухе (лазерный датчик), газоанализатором HCHO (формальдегиды), датчиком летучих веществ (ЛОС/VOC). Показывает сводный индекс качества воздуха. Встроенная литиевая батарея с емкостью 3000 мАч может подзаряжаться от MicroUSB порта. Дополнительно сделаны часы и будильник.

Еще одна хорошая карманная модель анализатора качества воздуха Dienmern — качественный прибор с неплохим дизайном. Отображаемые параметры: содержание твердых частиц PM1.0, PM2.5 и PM10 в воздухе, летучих веществ (ЛОС/VOC), газов формальдегида (HCHO), а также температура и влажность в помещении. Есть возможность сохранить показания, откалибровать прибор, а также установка даты/времени. Дисплей 320×240 точек, цветом показывает превышение значений частиц и газов. Отмечу, что производитель сейчас предлагает в подарок специальную маску PM2.5 от пыли.

Ну и в завершении подборки предлагаю посмотреть на интересный настольный прибор с яркой индикацией основных параметров качества воздуха: содержание твердых частиц PM1.0, PM2.5 и PM10 в воздухе, летучих веществ (ЛОС/VOC), газов формальдегида (HCHO), а также температура. Внутри предусмотрен электрохимический датчик формальдегида и лазерный датчик частиц. Работает как от встроенного аккумулятора, так и от MicroUSB кабеля.

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

Детектор загрязнения окружающего воздуха

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

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

Шаг 1: Материалы

Управление и питание

  • Микроконтроллер Arduino Uno
  • Источник питания напряжением 5В
  • RGB 16×2 LCD шилд

Датчики

  • Датчик твердых частиц Shinyei PPD42
  • Газовый датчик MQ-2
  • Газовый датчик MQ-9
  • Газовый датчик MiCS-2714 (NO2)
  • Газовый датчик MiSC-2614 (Озон)
  • Датчик температуры и влажности Keyes DHT11

Дополнительные материалы для сборки

  • Доступ к 3D принтеру
  • Макетная плата
  • 5В вентилятор
  • 10 — 15 проводников калибра 24 (0.511 мм)

Шаг 2: Общая электрическая схема

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

Шаг 3: Датчик твердых частиц

Для сбора данных о концентрации твердых частиц в воздухе мы использовали два пылевых датчика Shinyei PPD42.

Каждый датчик Shinyei имеет два сигнальных выхода: один для мелких твердых частиц (левый желтый провод на изображении выше) и один для больших твердых частиц. Эти выходы подсоединены к цифровым входам Ardiuno. Для портов датчика требуется напряжение питания +5В и земля. Смотрите общую электрическую схему.

Каждый датчик использует инфракрасный светодиод и фотодиод для измерения концентрации рассеянных в воздухе твердых частиц. Внутренняя схема преобразует выходной сигнал фотодиода в цифровые сигналы. Обычно на выходе датчика сигнал +5В, а когда датчик обнаруживает частицы, он посылает низковольтный импульс. Период времени, когда на выходе низкий сигнал или «low-pulse occupancy percentage» (процент времени, в течение которого на выходе фотодиода низкий уровень напряжения) пропорционален концентрации твердых частиц в воздухе.

Подробный анализ обратного декодирования датчика Shinyei PPD42 указан в учебном материале Трейси Аллена

Шаг 4: Печатная плата газового датчика

Выше показана электрическая схема для печатной платы газовых датчиков и датчика температуры/влажности. Подробные сведения об установке каждого компонента указаны ниже в следующих шагах. Заметьте, что ваша печатная плата может отличаться физически от указанной на изображении. Фактически, рекомендуется самостоятельно изготовить печатную плату для компонентов с поверхностным монтажом, вместо использования макетной платы.

Шаг 5: Датчики озона и NO2

Мы использовали датчики с поверхностным монтажом MiCS-2614 и MiCS-2714, которые могут обнаруживать в воздухе озон и двуокись азота соответственно.

Оба этих датчика используют внутренний резистор в своем сенсорном элементе. На схеме выше измерительный резистор расположен между выводами (G) и (K). Используйте омметр для того, чтобы убедиться в правильном расположении выводов. Сопротивление резистора должно находиться в пределах 10-20 kΩ.

Кроме того оба датчика оснащены нагревательным элементом между выводами (A) и (H). Данный нагревательный элемент поддерживает требуемую температуру сенсорного элемента. Сопротивление нагревательного элемента составляет 50-60Ω.

В идеальном случае оба датчика необходимо установить поверхностно на печатной плате. Однако при отсутствии печатной платы следует аккуратно подпаиваться к выходам этих датчиков, используя низкотемпературный припой и проявлять особую осторожность.

Как показано на электрической схеме для макетной платы, мы установили резисторы номиналом 82Ω и 131Ω последовательно с нагревательными элементами датчиков MiCS-2614 и MiCS-2714 соответственно. Это гарантирует, что нагревательные элементы получат необходимый уровень мощности. Если у вас нет резистора номиналом 131Ω (это нестандартное значение), тогда используйте резисторы на 120Ω и 12Ω, подключенные последовательно.

Мы разместили измерительные резисторы в обоих датчиках последовательно с резисторами 22kΩ с целью создания делителя напряжения. По напряжению на выходе делителя напряжения мы смогли вычислить измерительное сопротивление датчика.

Rsenor = 22kΩ * (5В / Ввых — 1)

Шаг 6: Датчики токсичного газа MQ

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

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

Для получения подробных сведений касательно монтажа обратитесь к электрической схеме для макетной платы. Для датчика MQ-2, подсоедините вывод с меткой A к 5В питания, вывод с меткой G к земле, а вывод с меткой S подсоедините к земле через резистор 47 kΩ. Для газового датчика MQ-9, подсоедините вывод с меткой A к транзистору, вывод с меткой B к 5В питания, вывод с меткой G к земле, а вывод с меткой S подсоедините к земле через резистор 10 kΩ.

Шаг 7: Датчик температуры и влажности

Данный датчик нужно обязательно использовать, поскольку контроль температуры и влажности играет важную роль в определении концентрации газов. Высокая влажность и температура значительно влияют на точность измерений. Поэтому очень важно контролировать эти изменяющиеся параметры. Температуру и влажность можно одновременно контролировать с помощью одного датчика. Согласно изображению выше, левый вывод присоединяют к питанию, средний вывод – сигнальный выход, а правый к земле. Выходной сигнал от данного датчика поступает на цифровой порт Arduino. В нашем коде предполагается, что температурный сигнал поступает на цифровой порт 2. При необходимости можно поменять на другой цифровой порт; просто в код программы следует внести соответствующие коррекции в зависимости от выбранного порта. Для надлежащего использования данного компонента обратитесь к электрической схеме для макетной платы.

Читайте также  Сварочный полуавтомат под управлением мк

Шаг 8: Источник питания и вентилятор

Если вы обратите внимание на электрическую схему для всего проекта, то увидите, что вам необходимо только одно входное напряжение величиной 5В. Для данного проекта можно использовать обычный сетевой адаптер, показанный выше. Кроме того, вам потребуется корпусной вентилятор, который поможет предотвратить перегрев устройства. Можно использовать стандартный 5В вентилятор требуемого размера.

Шаг 9: Корпус

Корпус можно изготовить многими способами. Мы использовали UP 3D принтер. Мы приложили STL файл, который использовали для окончательной печати.

Шаг 10: Код программы

Код для извлечения исходных данных из устройства прикреплен выше. Данный код распечатывает на компьютере через последовательный монитор значения сопротивления датчика, процент занятости низко импульсных сигналов Shinyei PPD42 и показания температуры и влажности. Также исходные данные можно просмотреть на LCD дисплее.

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

Шаг 11: Интерпретация данных

Для определения концентрации твердых частиц мы использовали научную статью Дэвида Холстиуса (David Holstius). В статье для пылевого датчика Shinyei PPD42 были определены соотношения выходов датчика и измерений, проведенных Управлением по охране окружающей среды. Диаграммы в приложении указывают наиболее подходящие графики для данных. Мы использовали графики для выполнения аппроксимации концентрации твердых частиц PM2.5 в микрограммах на метр кубический следующим образом:

PM2.5 = 5 + 5 * (небольшой процент времени, в течение которого на выходе фотодиода низкий уровень напряжения).

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

Для датчиков MQ мы использовали графики из даташитов датчиков для качественной оценки данных. Когда значение сопротивления падает ниже половины сопротивления в воздухе, то вероятно, что датчик обнаруживает целевые газы. Когда сопротивление падает на коэффициент 10, уровни целевого газа будут в районе 1000 промилле, то есть близко к требуемому безопасному пределу.

Система мониторинга загрязнения воздуха на основе Arduino

В этом проекте мы рассмотрим создание системы мониторинга загрязнения воздуха на основе Arduino, с помощью которой можно будет удаленно (через веб-сервер по интернету) осуществлять контроль состояния воздуха и включать сигнализацию когда качество воздуха падает ниже определенного уровня. Качество воздуха будет оцениваться по наличию в нем CO2, дыма, алкоголя, бензола и NH3. Качество воздуха в нашем проекте будет показываться на ЖК дисплее и передаваться на веб-сервер, что позволит получать информацию о состоянии воздуха в интересующем нас месте из любой точки мира где есть интернет. Данный проект относится к так называемой категории интернета вещей (IoT – Internet of Things).

Ранее на нашем сайте мы уже рассматривали детектор утечки природного газа на основе Arduino на датчике MQ3. Но в этом проекте мы будем использовать датчик MQ135, который является наилучшим выбором для мониторинга качества воздуха поскольку позволяет обнаруживать большинство вредных газов и измерять их количество. Вы можете установить это устройство в любом нужном месте, а сами сможете контролировать измеряемое им качество воздуха из любой точки с помощью компьютера или смартфона. Также можно реализовать информирование о состоянии воздуха с помощью отправки SMS и передачи Email.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Датчик газа MQ135 (купить на AliExpress).
  3. Wi-Fi модуль ESP8266 (купить на AliExpress).
  4. ЖК дисплей 16х2 (купить на AliExpress).
  5. Потенциометр 10 кОм (купить на AliExpress).
  6. Резистор 1 кОм (купить на AliExpress).
  7. Резистор 220 Ом (купить на AliExpress).
  8. Зуммер (Buzzer) (купить на AliExpress).
  9. Макетная плата.

Работа схемы

Схема устройства представлена на следующем рисунке.

Сначала необходимо соединить модуль ESP8266 с платой Arduino. Модуль ESP8266 работает от напряжения 3.3V, поэтому если мы подадим на него 5V с платы Arduino, то мы можем повредить его. Поэтому соедините контакты VCC CH_PD модуля ESP8266 с контактом 3.3V платы Arduino. Контакт RX модуля ESP8266 также работает с напряжением 3.3V, поэтому его также нельзя напрямую подключать к плате Arduino. Поэтому мы будем использовать делитель напряжения чтобы преобразовать 5V в 3.3V. На нашей схеме это реализовано при помощи последовательного соединения 3-х резисторов. Соедините контакт TX модуля ESP8266 к контакту 10 платы Arduino, а его контакт RX – к контакту 9 платы Arduino при помощи резисторов.

Wi-Fi модуль ESP8266 обеспечивает вашему проекту доступ к Wi-Fi или интернету. Его можно подключить практически к любому микроконтроллеру. Более подробно о взаимодействии с ним можно прочитать в статье про передачу данных на веб-страницу с помощью Arduino.

Затем подсоедините контакты VCC и землю датчика MQ135 к контактам 5V и земле платы Arduino, а аналоговый контакт датчика – к контакту A0 платы Arduino.

Подсоедините зуммер (buzzer) к контакту 8 платы Arduino – он будет выдавать звуковой сигнал когда загрязнение воздуха превысит определенную норму.

Затем необходимо сделать следующие соединения платы Arduino с ЖК дисплеем:
— pin 1 (VEE) – на землю.
— pin 2 (VDD или VCC) — к 5V.
— pin 3 (V0) – на средний контакт потенциометра 10 кОм, остальные 2 контакта потенциометра – на VCC и землю (GND). Потенциометр используется для управления контрастностью ЖК дисплея. Можно также использовать потенциометр с сопротивлением 10 кОм.
— pin 4 (RS) – к контакту 12 платы Arduino.
— pin 5 (Read/Write) – на землю платы Arduino. Этот контакт ЖК дисплея используется редко, поэтому мы соединим его на землю.
— pin 6 (E) – к контакту 11 платы Arduino. Контакты RS и E – это контакты управления ЖК дисплеем.
— остальные 4 контакта данных используется для передачи данных от платы Arduino. pin 11 (D4) – к контакту 5 Arduino. pin 12 (D5) – к контакту 4 Arduino. pin 13 (D6) – контакту 3 Arduino. pin 14 (D7) – к контакту 2 Arduino.
— pin 15 — к VCC через резистор 220 Ом. Резистор используется для установки яркости черного цвета ЖК дисплея. Большее значение сопротивления сделает черный цвет более темным.
— pin 16 – на землю.

Принцип работы проекта

Датчик MQ135 может обнаруживать газы NH3, NOx, CO2, алкоголь, бензол, дым и некоторые другие. Измеряет он их в PPM (parts per million — частиц на миллион). Поэтому, можно сказать, этот датчик является идеальным решением для нашего проекта контроля загрязнения воздуха. При подсоединении к плате Arduino он будет подавать на вход Arduino напряжение определенного уровня, соответствующее количеству измеренного PPM, а в Arduino это значение напряжения нужно будет конвертировать в PPM. Для работы с датчиком MQ135 мы использовали специальную библиотеку – она будет описана далее в статье.

Датчик будет выдавать значение 90 когда рядом нет никакого газа, безопасный уровень качества воздуха находится на отметке 350 PPM и не должен превышать 1000 PPM. Когда он будет превышать 1000 PPM это может привести к появлению у человека головных болей, сонливости, вялости, чрезмерному утомлению, а если он будет превышать 2000 PPM, то он может вызвать увеличение частоты пульса и множество других заболеваний.

В нашем проекте когда качество воздуха будет меньше 1000 PPM, то на ЖК дисплее будет показываться сообщение “Fresh Air” (чистый воздух). Когда измеренное значение качества воздуха будет превышать 1000, то зуммер начнет издавать звуковой сигнал и на ЖК дисплее и на веб-странице высветится сообщение “Poor Air, Open Windows” (загрязнение воздуха, откройте окна). А если значение будет превышать 2000 PPM, то зуммер продолжит издавать звуковой сигнал и на ЖК дисплее и на веб-странице появится сообщение “Danger! Move to fresh Air” (опасность, выйдите на свежий воздух).

Объяснение работы программы

Перед началом работы необходимо откалибровать датчик газа MQ135. Если идти обычным путем, то сначала нужно сделать ряд вычислений, направленных на получение требуемого значения PPM. Эти вычисления мы рассмотрели в статье про детектор дыма на Arduino. Но в данном проекте для упрощения работы мы будем использовать специальную библиотеку для датчика MQ135, вы можете скачать ее по следующей ссылке — https://github.com/GeorgK/MQ135.

С помощью данной библиотеки вы напрямую (без всяких вычислений) можете получить значение PPM с выхода датчика, используя следующие две строки:

MQ135 gasSensor = MQ135(A0);
float air_quality = gasSensor.getPPM();

Но перед этим нужно откалибровать датчик, для этого скачайте приведенный после этого абзаца код программы, запустите его на выполнение на промежуток от 12 до 24 часов и после этого получите значение RZERO.

#include «MQ135.h»
void setup () <
Serial.begin (9600);
>
void loop() <
MQ135 gasSensor = MQ135(A0); // Attach sensor to pin A0
float rzero = gasSensor.getRZero();
Serial.println (rzero);
delay(1000);
>

После того как вы в результате выполнения этой программы получите значение RZERO, запишите его в файл скачанной библиотеки «MQ135.h»: #define RZERO 494.63. (здесь нужно будет подставить свое значение RZERO).

После этого можно приступать к написанию кода для основной программы нашего проекта. Сначала необходимо подключить все библиотеки, которые мы будем использовать, и инициализировать необходимые переменные. При помощи использования библиотеки Software Serial Library (библиотеки для последовательной связи) мы можем задействовать последовательный порт на любых цифровых контактах Arduino, в данном случае у нас это будут контакты 9 (RX) и 10 (TX) – к ним мы подключили модуль ESP8266. Также необходимо подключить библиотеку для работы с ЖК дисплеем и сообщить плате Arduino, к каким ее контактам мы подключили ЖК дисплей. Также мы инициализировали две дополнительные переменные: одну для аналогового контакта датчика и вторую для хранения значения качества воздуха.

#include
#define DEBUG true
SoftwareSerial esp8266(9,10);
#include

LiquidCrystal lcd(12,11, 5, 4, 3, 2);
const int sensorPin= 0;
int air_quality;

После этого мы зададим режим работы для контакта 8 на вывод данных – к нему подключен зуммер. Команда lcd.begin(16,2) переведет ЖК дисплей в режим приема данных, после этого мы переведем курсор на первую строку и напечатаем сообщение ‘circuitdigest’. После этого мы переведем курсор на 2-ю строку и выведем сообщение: ‘Sensor Warming’ (датчик нагревается).

Читайте также  Антенна с круговой поляризацией и ослаблением связи

pinMode(8, OUTPUT);
lcd.begin(16,2);
lcd.setCursor (0,0);
lcd.print («circuitdigest «);
lcd.setCursor (0,1);
lcd.print («Sensor Warming «);
delay(1000);

Затем установим скорость (в бодах) для последовательной связи. Разные модули ESP поддерживают различные скорости передачи данных – это надо учитывать при установке скорости работы нашего последовательного порта. После этого мы установим связь с модулем ESP и покажем IP в окне монитора последовательной связи (serial monitor).

Serial.begin(115200);
esp8266.begin(115200);
sendData(«AT+RSTrn»,2000,DEBUG);
sendData(«AT+CWMODE=2rn»,1000,DEBUG);
sendData(«AT+CIFSRrn»,1000,DEBUG);
sendData(«AT+CIPMUair_quality=1rn»,1000,DEBUG);
sendData(«AT+CIPSERVER=1,80rn»,1000,DEBUG);
pinMode(sensorPin, INPUT);
lcd.clear();

Для вывода сообщения на веб-страницу используем HTML программирование. Для этого мы создадим переменную с именем webpage и сохраним в ней строку, которую нам нужно будет выводить на веб-страницу. Необходимо будет вычесть 48 из выходного значения поскольку функция read() возвращает десятичное значение ASCII, а первая десятичная цифра (в нем) 0 начинается с позиции 48.

if(esp8266.available())
<
if(esp8266.find(«+IPD,»))
<
delay(1000);
int connectionId = esp8266.read()-48;
String webpage = «

IOT Air Pollution Monitoring System

«;
webpage+= » Air Quality is «;
webpage+= air_quality;
webpage+=» PPM»;
webpage += «

Далее в функции sendData мы будем передавать на веб-страницу необходимые данные и сообщения.

sendData(cipSend,1000,DEBUG);
sendData(webpage,1000,DEBUG);
cipSend = «AT+CIPSEND=»;
cipSend += connectionId;
cipSend += «,»;
cipSend +=webpage.length();
cipSend +=»rn»;

В следующем участке кода мы будем выводить сообщения на ЖК дисплей. Мы будем использовать несколько условий для проверки качества воздуха и в соответствии с ними выводить сообщения на ЖК дисплей и включать/выключать зуммер. Зуммер будет включаться когда уровень загрязнения воздуха будет превышать 1000 PPM.

lcd.setCursor (0, 0);
lcd.print («Air Quality is «);
lcd.print (air_quality);
lcd.print (» PPM «);
lcd.setCursor (0,1);
if (air_quality
<
lcd.print(«Fresh Air»);
digitalWrite(8, LOW);

Наконец, в следующей функции мы будем передавать и показывать данные на веб-странице. Данные, которые мы хранили в переменной (строке) под именем ‘webpage’ будут сохранены в строке под именем ‘command’. Затем модуль ESP будет последовательно, по одному символу, считывать данные из строки ‘command’ и печатать их на веб-странице.

String sendData(String command, const int timeout, boolean debug)
<
String response = «»;
esp8266.print(command); // send the read character to the esp8266
long int time = millis();
while( (time+timeout) > millis())
<
while(esp8266.available())
<
// The esp has data so display its output to the serial window
char c = esp8266.read(); // read the next character.
response+=c;
>
>
if(debug)
<
Serial.print(response);
>
return response;
>

Тестирование нашего проекта

Перед тем как загружать код в Arduino, что ваш модуль ESP8266 подключен к Wi-Fi. После загрузки кода откройте окно монитора последовательной связи (serial monitor) и в нем вы должны увидеть IP адрес, к примеру, как показано на следующем рисунке.

Напечатайте этот IP адрес в строке вашего браузера и вы увидите сообщения, которые выводятся нашим устройством на эту веб-страницу. Чтобы увидеть свежие значения качества воздуха необходимо будет обновить страницу.

Исходный код программы

Для демонстрации работы проекта мы использовали локальный веб-сервер – подробно все эти процессы вы можете посмотреть в видео в конце статьи. Но чтобы мониторить качество воздуха из любой точки земного шара вы должны переадресовать порт 80 (используемый для HTTP или интернета) на локальный или частный IP адрес (192.168*) вашего устройства. После переадресации порта все входящие соединения будут переадресованы на этот локальный адрес и вы сможете открывать необходимую веб-страницу из любой точки мира просто вводя публичный IP адрес вашего интернета. Вы можете настроить переадресацию зайдя в настройки своего роутера (по адресу 192.168.1.1) и найти там опцию переадресации порта.

Потребительские датчики качества воздуха: можно ли доверять им?

Все чаще люди используют недорогие датчики качества воздуха для измерения параметров загрязнения. Можно ли доверять показаниям приборов?

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

Что такое датчики качества воздуха?

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

Какие виды загрязняющих веществ измеряются датчиками качества воздуха?

Независимо от того, проводите ли вы измерения внутри или снаружи, существуют две основные категории загрязнения, которые могут контролировать потребительские датчики: 1) твердые частицы и/или 2) газы. Это две категории, которые могут контролировать большинство аппаратов.

Твердые частицы (PM)

Твердые частицы (PM) представляют собой смесь твердых частиц и капель жидкости. Некоторые из них можно увидеть невооруженным глазом (например, видимая пыль), в то время как другие настолько малы, что вам понадобится микроскоп. Существует две основные фракции размера PM, вызывающие озабоченность. Это PM10 (PM с размером до 10 микрон) и PM2.5 (размер до 2,5 микрон).

Средний человеческий волос составляет 70 микрон в диаметре. Что, примерно, в 30 раз больше самого большого диаметра PM2.5. Размер важен. Это достаточно мало, чтобы быть вдыхаемым глубоко в ваши легкие, где возможно проникновение в кровоток.

Газ

Многие газообразные загрязнители могут быть найдены как снаружи, так и внутри. При сжигании топлива, будь то на городской фабрике, в вашей газовой плите, печи или в вашем автомобиле, образуются такие газы, как окись углерода (CO) и двуокись азота (NO2).

В дополнение к CO и NO2 , некоторые портативные датчики пытаются измерить летучие органические соединения (ЛОС), которые являются воздушно-капельными химикатами. Например, вы можете столкнуться с ЛОС после удаления газов из некоторых продуктов или при использовании чистящих спреев.

Какие стандарты существуют для загрязнения воздуха?

Потребительские датчики не предназначены для замены дорогостоящих крупномасштабных станций контроля качества воздуха. Такие системы контролируют и регулируют перечень загрязняющих веществ на открытом воздухе, таких как озон, твердые частицы (PM) или диоксид азота. Многие потребительские датчики тестируются и разрабатываются относительно этих данных.

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

Как работают датчики качества воздуха потребительского класса?

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

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

Проблемы недорогих датчиков PM

Многие датчики твердых частиц (PM) являются фотометрами. Это означает, что они оценивают количество PM в воздухе на основе того, сколько света от лазера или светодиода блокируется или рассеивается, когда этот свет проводят через воздух. Есть много факторов, которые могут вмешиваться в эти процессы, такие как:

  • Различные виды твердых частиц могут рассеивать свет по-разному в зависимости от их размера, формы и цвета. Например, частицы более темного цвета будут рассеивать меньше света, чем частицы более светлого цвета. Калибровка по этим факторам необходима для высокоточных оценок.
  • Некоторые очень маленькие PM могут быть пропущены светом, прошедшим через воздух.
  • Некоторые PM настолько велики, что они могут не попасть в камеру датчика.
  • Частицы пыли сами по себе могут накапливаться на устройстве с течением времени и блокировать датчик. Одним из способов может быть очистка сжатым воздухом.
  • Источник света LED или лазер из-за временного затемнения могут дать неточную информацию для оценки.
  • Датчик нуждается в разумном количестве воздуха, проходящего в его камеру обнаружения и выходящего из нее, чтобы произвести надежные оценки уровней загрязнения, поскольку они изменяются с течением времени. Если он находится в месте, где поток воздуха заблокирован или существенно уменьшен, то возможна недооценка концентрации частиц.
  • Влажность и температура могут сильно повлиять на показания приборов. Например, если вы принесете датчик рядом с душем, он будет «чувствовать» много твердых частиц в воздухе, но на самом деле он обнаруживает водяной пар.

Проблемы портативных газовых датчиков

Мониторы, которые показывают концентрацию таких газов, как CO и NO2, как правило, стоят дорого.

Портативные датчики ЛОС являются менее дорогими, но имеют ограничения из-за сложности, необходимой для измерения концентрации газа. Некоторые датчики ЛОС потребительского класса не очень чувствительны. Ограничения включают в себя:

  • Как правило, портативный датчик Лос не будет измерять один конкретный ЛОС. Вместо этого он, скорее всего, будет измерять общую смесь нескольких ЛОС (называемых Тлос). Если это так, то датчик может варьировать свою реакцию на различные типы летучих органических соединений. Например, он может увеличить оценку одного соединения по сравнению с другим, возможно, на значительный коэффициент. Тогда итоговое значение может быть завышено. Это становится очень важным, потому что некоторые Лос более опасны, чем другие. Если вы видите высокое значение Тлос для менее опасных ЛОС, это может быть менее опасно, чем низкое значение Тлос для более опасных ЛОС.
  • Загрязнение от других газов может дать вам неточные данные. Например, если вы измеряете ЛОС, датчик может обнаружить другие газы, такие как CO и NO2, не сообщая вам об этом.
  • Газовые датчики должны регулярно калиброваться для поддержания их надежности. В противном случае их измерения могут “дрейфовать” и со временем становиться менее точными.
  • Температура и влажность должны контролироваться или калиброваться при использовании газового датчика, иначе это может повлиять на показания прибора.
Читайте также  Акселерометр и гироскоп mpu6050

Каковы преимущества датчиков качества воздуха?

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

Исследователи из Национальной лаборатории Лоуренса Беркли сравнили потребительские датчики с лабораторными датчиками. Они измеряли содержание твердых частиц (ТЧ) от обычной деятельности, такой как сжигание тостов, зажигание свечей или приготовление зеленых бобов. Среди семи потребительских датчиков четыре устройства сработали от двух факторов, остальные три датчика «почувствовали» больше двух.

Достаточно ли хороши датчики качества воздуха потребительского класса?

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

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

Делаем станцию мониторинга загрязнённости воздуха в домашних условиях

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

В последнее время всё больше людей озадачивается проблемой загрязнённости воздуха. Одним из видов загрязнения воздуха является взвешенные частицы размером до 10 мкм, которые не отфильтровываются носоглоткой и проникают глубоко в лёгкие. Такие частицы, обозначаемые PM10, PM2.5 и PM0.1 (по их размеру в микрометрах), представляют большую опасность для здоровья человека, вызывая астму, рак лёгких, всевозможные респираторные и сердечно-сосудистые заболевания, врождённые дефекты у новорождённых и даже преждевременную смерть.

По информации ВОЗ, в 2016 году около 4,2 миллиона смертей было вызвано влиянием частиц PM2.5. Кроме промышленности, значительным источником мелко- и крупнодисперсных частиц является автотранспорт (в частности, автопокрышки).

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

Размер до 2,5 мкм (PM2.5)

Размер до 10 мкм (PM10)

Общественный мониторинг

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

Карта чистоты воздуха от LuftDaten. Картографические данные: © Участники OpenStreetMap

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

Кроме LuftDaten, существуют и другие похожие проекты: OpenSenseMap (тоже немецкий), а также AirCMS (из Челябинска). Прошивка для датчиков от Luftdaten позволяет отправлять данные сразу в несколько проектов, а также на произвольные web API.

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

Подробнее о датчике

Вариантов датчика существует несколько как в плане конкретных комплектующих, так и сборки как таковой. «Классический» вариант, предлагаемый LuftDaten — платка с ESP8266 (NodeMCU) с сенсором Nova SDS011 в пластиковой трубе:

Датчик AirRohr

Готовый установленный датчик выглядит примерно так, как на фотографии в начале статьи.

Конечно же, использовать трубу не обязательно, корпус может быть любым, но способным выдержать погодные условия на улице 365 дней в году:

Мой датчик, установленный на подоконнике

Альтернативой предлагаемой конструкции является набор AirRohr-Kit от Эрика Несстрёма, который разработал модели для 3D-принтера и печатную плату, предназначенную для установки в электромонтажную коробку:

Схема сборки AirRohr-Kit

Необходимые компоненты

Плата с микроконтроллером ESP8266, например Wemos D1, NodeMCU

Датчик пыли SDS011 (мне обошёлся в € 14 на AliExpress)

Датчик температуры, влажности, атмосферного давления: BME280, BMP280, DHT22

Пластиковая трубка с внутренним диаметром 6 мм

Плоский кабель USB A—Micro-B (рекомендуемая длина около 2 м)

Источник питания 5 В (мин. 500 мА) с разъёмом USB (например, зарядное устройство от телефона)

Может пригодиться паяльник

Пару слов о датчиках температуры и прочего. Первоначально проектом поддерживались датчики DHT22, измеряющие температуру и влажность, параметры, которые полезно знать при анализе собранных данных. DHT22 (а также его более ограниченный собрат DHT11) предоставляют разрешение 1°C (кроме этого, DHT11 не может измерять температуры ниже 0°C). Чтобы улучшить качество данных, можно использовать альтернативу, BME280 от фирмы Bosch. BME280 даёт более точные измерения температуры с разрешением 0.01°C, а также измеряет атмосферное давление, поэтому LuftDaten рекомендуют использовать именно его. Разница в качестве измерений хорошо видна на этом графике из статьи от Random Nerd Tutorials:

Сравнение датчиков температуры

К сожалению, в моём местном магазине радиодеталей BME280 не оказалось, потому мне пришлось купить BMP280, вариант без измерения влажности, и DHT22, чтобы влажность всё же измерить. Надо сказать, что DHT22 в таких магазинах продаётся в двух вариантах: датчик сам по себе либо на плате с pull-up-резистором:

Модуль DHT22 с pull-up-резистором

В моём магазине цена была одинаковая, но я по ошибке заказал именно эту версию. Как оказалось, их не было на складе, ждать пришлось бы долго, но на складе был и датчик без платы за ту же цену. Проверка исходного кода прошивки показала, что в ней используется встроенный pull-up микропроцессора, так что внешний резистор, на платке или нет, не нужен (но с десяток резисторов я с перепугу всё же купил, т. к. проверить их необходимость в магазине не было возможности).

Прошивка

Рекомендуется прошить процессор перед сборкой. Сделать можно это совсем вручную с помощью утилиты esptool , но лучше это сделать специальным скриптом. Можно скачать сборки под разные операционные системы на сайте проекта, либо же поставить из исходников с GitHub.

После прошивки и перезапуска процессора должна появиться новая Wi-Fi сеть, как правило, начинающаяся на airRohr (в зависимости от языка и версии прошивки). Подключившись к этой сети, надо зайти на http://192.168.4.1/ и настроить подключение к домашней Wi-Fi сети. Надо сказать, что на этом шагу я на какое-то время зациклился: датчик упорно не хотел подключаться к сети, создавая свою собственную. Я подключил отладку через USB-serial (если будете пробовать, скорость нужно задать 9600 бод, эта скорость отличается от скорости загрузчика прошивки), где было видно, что датчик к сети подключается, но ошибок нет. Я уже было отчаялся, как вдруг сеть airRohr пропала и датчик появился в домашней сети: оказывается, в настройках есть параметр Duration router mode, в течение которого датчик будет в некоторых случаях держать собственную сеть, чтобы дать возможность поменять настройки.

Сборка

Как я уже упоминал выше, можно использовать как NodeMCU, как и более компактную плату Wemos D1. Функционально они идентичны, но NodeMCU несколько крупнее и имеет больше выводов. В моём распоряжении было несколько плат Wemos D1, так что я использовал именно их, но именно это решение привело к некоторым усложнениям в процессе сборки.

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

Как видно из схемы, датчик SDS011 подключается через UART, в то время как BME280 — через I²C. В моём случае вместо BME280 был BMP280, подключаемый на те же контакты, а также ещё и DHT22, который подключается на D7 (см. схему подключения). Всё бы хорошо, но у Wemos D1, в отличие от NodeMCU, лишь один контакт 3V3 и всего один GND! Пришлось паять разветвитель GND и удлинитель 3V3.

В итоге мой Франкенштейнов монстр выглядел примерно так:

Вся электроника в сборе

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

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

Рама не совсем хари

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

После установки и проверки датчика его можно подключить к API разных проектов. Данные со своих датчиков я посылкаю на sensor.community (LuftDaten), агрегатор Madavi, OpenSenseMap, AirCMS и ещё пару проектов:

Настройки API датчика

Вот так выглядит карта PM2.5 от LuftDaten (два датчика на ней мои):

Словакия на карте LuftDaten. Картографические данные: © Участники OpenStreetMap

На AirCMS датчиков в наших краях гораздо меньше:

Словакия на AirCMS. Картографические данные: © Яндекс