№9 / 2017 / статья 3

Простая и эффективная система контроля окружающей среды: создаем с нуля

Сергей Китаин (г. Москва)

Как построить систему контроля параметров окружающей среды для бытового использования, применяя бюджетные компоненты? – для этого достаточно прочесть предлагаемую статью и приобрести все необходимое со склада компании КОМПЭЛ.

Зачем эта система нужна?

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

  • Температура. Человек комфортно себя чувствует в достаточно узком диапазоне температур. Выход за пределы этого диапазона снижает работоспособность, может привести к простудным заболеваниям.
  • Влажность. При понижении влажности сохнет кожа, высыхают слизистые оболочки. Кроме неприятных ощущений, это повышает риск проникновения инфекции.
  • CO2 – очень коварный параметр. У человека нет органа чувств, который позволял бы изменить его напрямую. Но состояния, когда душно, болит голова, возникает сонливость, часто напрямую связаны именно с повышенной концентрацией этого газа. Человек идеально себя чувствует при уровнях CO2 700 ppm и ниже. При уровне 1000 ppm появляется ощущение несвежего воздуха, становится немного душно. При росте показателей до 2500 ppm становится все более и более душно. Интересно, что уровень кислорода при этом изменяется незначительно – с 20% падает примерно до 19,75%. То есть, когда вы думаете, что вам нечем дышать и не хватает кислорода – на самом деле в воздухе просто слишком много углекислого газа.
  • Концентрация летучих органических веществ (Volatile Organic Compounds, VOC) – параметр, который показывает наличие в воздухе разнообразных примесей. В самом простом случае этот параметр повышается от пригоревшей на кухне еды или дыма от сигарет.
  • CO (угарный газ) – в современных городских квартирах параметр не очень критичный. Но в загородных домах, где используется открытый огонь для обогрева и приготовления пищи, повышение концентрации этого газа может привести к фатальным последствиям.
  • Пыль. А этот параметр, наоборот, обычно критичен для города. Многочисленные машины и работающие предприятия способствуют увеличению в воздухе пыли микронного размера (обычно обозначается PM5), высокая концентрация которой способствует возникновению онкологических заболеваний.

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

Идея устройства, стек технологий

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

Задача, которая была поставлена при проектировании описываемого прибора – сделать универсальное устройство, к которому может быть подключено необходимое для данной комнаты количество датчиков. Устройство подключается по Wi-Fi к Интернету и передает данные на веб-сервер. Сервер накапливает и анализирует данные, затем передает результат анализа и управляющие команды на устройство, которое, в свою очередь, пересылает команды на исполнительные модули по радиоканалу. Решение должно обеспечивать дружественный интерфейс, уведомлять пользователя о выходе параметров за допустимые пределы, легко вписываться в любой интерьер и при этом иметь минимальную стоимость.

Факторы, влияющие на стоимость разрабатываемого изделия

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

Таким образом, можно полностью отказаться от дисплея на устройстве, что позволит минимизировать требования к дизайну. А если устройство будет скрыто от пользователя, оно может быть размещено в любом типовом корпусе.

Так как предполагается, что устройство будет постоянно подключено к веб-серверу, имеет смысл перенести всю логику обработки именно на сервер, оставив устройству роль «тонкого клиента». Параметры окружающей среды меняются достаточно медленно, и со сбором данных вполне справится восьмибитный AVR-микроконтроллер.

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

Так как смысл задачи – измерение качества среды в доме, можно не гнаться за максимальной точностью значений, что позволит использовать относительно бюджетные датчики. Правда, от недорогих полупроводниковых датчиков CO2 пришлось отказаться, так как они имеют сильную зависимость от других газов. Оптимальным решением стало использование недисперсионных инфракрасных датчиков MH-Z14 производства Winsen. Для передачи данных по Wi-Fi подойдет бюджетное решение на базе беспроводного контроллера ESP8266 от Espressif.

Обоснование выбора компонентов, характеристики датчиков

Для удобства и скорости разработки были выбраны готовые отладочные платы Arduino Nano и модуль ESP8266. Микроконтроллер ATMEGA328P-AU, установленный на плате Arduino Nano, имеет достаточно много цифровых и аналоговых входов для сбора данных с датчиков и пересылки информации в модуль Wi-Fi. От идеи ограничиться одним ESP8266 пришлось отказаться из-за недостаточного количества цифровых и аналоговых входов у этого контроллера, а добавление внешних АЦП и коммутаторов могло привести к удорожанию конструкции. Любые альтернативные Wi-Fi-контроллеры имеют существенно более высокую цену, чем связка ATMEGA328P и ESP8266.

Измерение концентрации CO2 можно выполнить с помощью датчиков Winsen MH-Z14 или MH-Z19 (рисунок 1). Характеристики датчиков приведены в таблице 1.

Рис. 1. Внешний вид датчиков CO2: а) MH-Z14; б) МН-Z19

Рис. 1. Внешний вид датчиков CO2: а) MH-Z14; б) МН-Z19

Таблица 1. Характеристики NDIR-датчиков CO2 MH-Z14 и MH-Z19

Наименование Диапазон измерений, ppm Точность, ppm Выходы Питание Размер, мм
MH-Z14 0…5000 (0…2000) ±50+5% Аналоговый, UART, PWM 5 В, < 85 мА (в среднем) 57,2×34,7
MH-Z19 UART, PWM 3,6…5,5 В DC, < 18 мА 32,6×19,5

Функционал обоих датчиков идентичен, но у MH-Z19 существенно снижен уровень потребления и уменьшен размер корпуса. Так как для принятия решения о качестве воздуха на основании концентрации СО2 достаточно знать, что концентрация находится в одном из пределов 400…1000, 1000…2000 или > 2000 ppm, то точности датчика вполне достаточно.

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

  • несмотря на питание до 5 В вход и выход последовательного интерфейса работают с уровнями 3,3 В, и превышение этого напряжения может привести к выходу датчика из строя;
  • после включения датчику требуется около трех минут на прогрев, во время которого выходные данные могут быть недостоверны;
  • хотя в передаваемом датчиком пакете данных и есть данные о температуре, их не стоит использовать из-за невысокой достоверности. Более того, даже расположенный на расстоянии порядка 5 см датчик температуры начинает завышать свои показания из-за теплового излучения датчика CO2;
  • датчик имеет встроенную автоматическую калибровку. Возможна также и ручная калибровка, но она требует специального оборудования.

Выходные сигналы датчиков

Расчет концентрации CO2 на основании ШИМ-сигнала выполняется следующим образом (1): длина цикла 1004 мс, первые 2 мс всегда High, последние – всегда Low, а момент перехода на низкий уровень сигнала пропорционален концентрации CO2 в пределах 0…5000 ppm (в документации указано ошибочное значение 2000 ppm, возможно, это связано с тем, что используется датчик с диапазоном 0…5000 ppm).

`Cpp\m = 5000*(Thigh-2мс)/(Thigh+Tlow-4мс)`        (1)

Напряжение на аналоговых выходах (в модели MH-Z14) линейно зависит от концентрации CO2.

Для чтения данных через UART требуется передать на датчик команду, состоящую из девяти байт:

  • 0xFF – байт начала любой команды;
  • 0x01 – номер датчика (всегда 1);
  • 0x86 – команда чтения показаний;
  • 0x00, 0x00, 0x00, 0x00, 0x00 – данные;
  • 0x79 – контрольная сумма.

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

Для расчета и проверки контрольной суммы можно использовать следующий код:


char getCheckSum(char *packet)
{
  char i, checksum;
  for(i = 1; i<8; i++)
  {
    checksum+= packet[i];
  }
  checksum = 0xff – checksum;
  checksum += 1;
  return checksum;
}

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

Для измерения температуры и влажности используется совмещенный цифровой датчик DHT22 (AM2302), изображенный на рисунке 2. Характеристики датчика приведены в таблице 2.

Таблица 2. Характеристики датчика температуры и влажности DHT22

Напряжение питания, В Диапазон измерений Точность измерений Длительность периода измерений, с
Влажность, % Температура, °С Влажность, % Температура, °С
3,3…6 0…100 -40…80 ±2 (макс. ±5) ±0,5 Около 2
Рис. 2. Внешний вид датчика DHT22

Рис. 2. Внешний вид датчика DHT22

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

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

Таблица 3. Назначение датчиков газа Figaro

Газ Наименование
Взрывоопасные газы Пропан TGS2610
Метан (природный газ) TGS2611
Водород TGS2620
СО (угарный газ) TGS2442
Выхлопные газы TGS2104, TGS2201, TGS2105, TGS2201
Органические растворители, пары алкоголя TGS2620
Загрязнение воздуха TGS2600, TGS2602
Пищевые испарения TGS2181, TGS2180, TGS2281

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

Для анализа качества воздуха на кухне был выбран датчик TGS2600, характеристики которого приведены в таблице 4 и на рисунке 3, а внешний вид – на рисунке 4.

Таблица 4. Характеристики датчика VOC TGS2600

Корпус Типовой рабочий диапазон Нагреватель Сопротивление датчика Изменение сопротивления датчика
TO-5 1…30 ppm H2 83 Ом, 42 мА, 5 В 10…90 кОм 0,3…0,6 (Rs/Ro)

Рис. 3. Характеристики чувствительности и зависимость влажности от температуры датчика TGS2600

Рис. 3. Характеристики чувствительности и зависимость влажности от температуры датчика TGS2600

Рис. 4. Внешний вид датчика TGS2600

Рис. 4. Внешний вид датчика TGS2600

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

Управление внешними устройствами: увлажнителем, кондиционером, вытяжкой

К сожалению, практически не существует единых стандартов управления такими устройствами, так что на данном этапе было принято решение реализовать управление по принципу «умной розетки». В дальнейшем можно доработать устройство для имитации команд управления через ИК-канал. Для реализации управления использованы приемопередающие модули NRF24L01 (рисунок 5). Характеристики модуля приведены в таблице 5.

Рис. 5. Внешний вид модуля NRF24L01

Рис. 5. Внешний вид модуля NRF24L01

Таблица 5. Характеристики радиомодуля NRF24L01+

Частота передачи/приема, ГГц Дальность, м Скорость, Mбайт/с Интерфейс Напряжение питания, В Выходная мощность, дБм Чувствительность Кол-во каналов
2,4 До 100; в помещении – до 30 0.25, 1, 2 SPI, выводы толерантны к 5 В 3…3,6 (рекомендуется 3,3) 0, -6, -12 или -18 -94 dBm@250 kbps 126

Блок-схема системы контроля окружающей среды приведена на рисунке 6.

Рис. 6. Блок-схема устройства контроля окружающей среды

Рис. 6. Блок-схема устройства контроля окружающей среды

Схема подключения устройства очевидна из приведенного в приложении кода программного обеспечения.

Программное обеспечение системы контроля

Программное обеспечение состоит из трех основных модулей:

  • прошивки микроконтроллера для сбора информации с датчиков;
  • прошивки Wi-Fi-модуля, забирающего данные из микроконтроллера и отправляющего их на веб-сервер;
  • веб-сервера, который накапливает и анализирует данные, формирует интерфейс для отображения текущей и архивной информации, отправляет PUSH-сообщения на зарегистрированные телефоны пользователей.

Так как система не налагает на микроконтроллер и Wi-Fi-модуль жестких требований по производительности и расходуемой памяти, для ускорения времени разработка прошивок была сделана в среде Arduino. Исходники прошивок и веб-сервера можно скачать по ссылкам, приведенным в конце статьи [1, 2, 3]. На рисунках 7 и 8 можно посмотреть вид интерфейса для отображения архивных и текущих данных.

Рис. 7. Web-интерфейс архивных данных

Рис. 7. Web-интерфейс архивных данных

Рис. 8. Web-интерфейс текущих данных

Рис. 8. Web-интерфейс текущих данных

Заключение

Мы рассмотрели конструкцию бюджетной системы контроля окружающей среды. Стоимость входящих в ее состав компонентов даже в розницу не превышает 50…60 $ при функциональности, сравнимой с существенно более дорогими логгерами.

Преимущества концепта системы:

  • Удобство эксплуатации
    • отсутствие необходимости смотреть на дисплей прибора. Если что-то будет не в порядке – придет сообщение на телефон или в браузер;
    • возможность автоматического управления параметрами среды;
    • PUSH-сообщение на телефон и в браузер при выходе параметра за пределы допуска;
    • возможность обратной связи с устройством (закончилась вода в увлажнителе, не включился вентилятор и так далее);
    • накопление архивных данных;
    • удаленный мониторинг.
  • Точность измерений за счет пространственного разнесения датчиков и исполнительных устройств (датчик влажности на увлажнителе всегда показывает недостоверные данные).
  • Удобство конфигурирования через полноценный web-интерфейс, а не через миниатюрный дисплей, встроенный в устройство.
  • Удобство доработок. Поскольку само устройство выполняет только функцию сбора и передачи данных, оно практически никогда не будет требовать доработки, все изменения и дополнительный функционал создаются в веб-интерфейсе.

Дополнительные материалы

  1. Исходники прошивок Arduino Nano и ESP8266;
  2. Веб-интерфейс;
  3. www.pushall.ru.
Наличие на складах
Наименование Наличие Цена
ATMEGA328P-AU (MCRCH) 411 370 1.5865 $ 96.50 руб. от 316 шт
DHT22 Humidity and Temperature Sensor (WZE) 555 5.3800 $ 327.24 руб. от 10 шт
DHT22 (AOSONG) 0
SHT21 (SENSIR) 58 287 4.9116 $ 298.75 руб. от 100 шт
SHT21S (SENSIR) 2 896 4.7570 $ 289.35 руб. от 75 шт
SI7021-A20-GM1R (SLAB) 62 522 4.9840 $ 303.15 руб. от 2 500 шт
Si7021 Temperature & Humidity Sensor Breakout Board (ADAFRUIT)
3251 (ADAFRUIT)
32 8.7465 $ 532.00 руб. от 1 шт
NRF24L01P-R (NORDIC) 7 436 1.5960 $ 97.08 руб. от 314 шт
NRF24L01P-R7 (NORDIC) 24 406 2.4018 $ 146.08 руб. от 1 500 шт
MH-Z14A NDIR CO2 SENSOR (WINSEN) 5 36.75 $ 2235 руб. от 1 шт