Устройство для мониторинга CO2 в помещении
В этой статье мастер-самодельщик предлагает рассмотреть портативное, автономное и простое в использовании устройство с открытым исходным кодом для мониторинга и записи концентрации CO2 в воздухе в режиме реального времени.
В этой статье мастер попытается решить проблему, которая одновременно простая и сложна: эффективная сигнализация о необходимости вентиляции закрытых пространств, заполненных людьми. SARS-CoV2, вирус, ответственный за Covid19, считается вирусом, передающимся по воздуху, распространяющимся (среди прочего) через респираторные аэрозоли (микроскопические капли, которые выделяются как нормальный побочный продукт дыхания). На открытом воздухе или в основном на открытых пространствах лучшая стратегия борьбы с воздушным заражением — дистанция. В закрытых помещениях респираторные аэрозоли могут перемещаться на большие расстояния и равномерно рассеиваться по всему помещению, если им дать достаточно для этого времени. В таких условиях дистанцирование теряет часть своей эффективности, а пригодный для дыхания воздух во всем помещении рискует стать переносчиком заражения. В принципе, решить эту проблему легко: хорошая вентиляция закрытых помещений решает проблему. Однако проблема усложняется отсутствием очевидных показателей, на которые можно положиться, чтобы выбрать лучшую стратегию вентиляции: для данного количества людей в данном закрытом помещении, как часто следует открывать окна или двери, и на какой срок.
Мастер предлагает использовать мониторинг CO2 в качестве маркера для количественного измерения того, сколько пригодного для дыхания воздуха в помещении потенциально заражено респираторными аэрозолями.
Шаг первый: теория и немного о комплектующих
Попытка непосредственно обнаружить микроскопические капли, ответственные за загрязнение воздуха, хотя технически осуществима, оказалась бы очень сложной и дорогой в обычных повседневных условиях. Однако, учитывая, что указанные аэрозоли являются прямым побочным продуктом дыхания людей, находящихся в комнате, их можно косвенно контролировать с помощью другого естественного продукта дыхания: диоксида углерода. Путем дозирования углекислого газа в комнате, где живут люди, и сравнения этого измерения с фоновой концентрацией СО2 в атмосфере (обычно около 400 частей на миллион в среднем) можно получить прямую оценку того, сколько воздуха «выдохнули» обитатели. На основе этого измерения можно затем контролировать вентиляцию, обеспечивая более безопасное нахождения людей в закрытых помещениях.
Указанный в материалах микроконтроллер Feather 328P является эквивалентом платы Arduino, адаптированной к форм-фактору Feather и работающей от логического напряжения 3,3 В. Если размер не является проблемой (например, для фиксированных устройств), его можно заменить любой базовой платой Arduino. Требование к любой заменяющей плате для этого проекта состоит в том, чтобы выбранный микроконтроллер мог обмениваться данными с периферийными устройствами как через SPI, так и через I2C, а также иметь, по крайней мере, один аналоговый входной вывод, связанный с АЦП (в идеале с диапазоном более 2 В).
Вместо указанной здесь модели 328P можно использовать любое Arduino-совместимое устройство Feather, например, плату Feather M0, плату M4 или 32u4 или любую другую модель. .
Featherwings — это эквивалент платы расширения Arduino.
Featherwing OLED — это OLED-экран, который взаимодействует через I2C. Интересной особенностью рекомендованной здесь конкретной модели является наличие трех кнопок (A, B и C), которые здесь используются для взаимодействия с интерфейсом устройства. При необходимости их можно легко заменить независимыми кнопками.
Featherwing Adalogger представляет собой комбинацию I2C RTC и устройства чтения SD-карт SPI. Он используется здесь для записи измерений и соответствующих им времени и даты.
Блок питания можно заменить зарядным устройством для телефона с разъемом Micro-USB любого типа, если устройство используется в качестве стационарного устройства, подключенного к розетке. Обратите внимание, что блоки питания USB обычно поставляются с собственным кабелем USB A — Micro-USB. В большинстве случаев такие кабели аккумулятора имеют только провода питания и не могут использоваться для программирования или передачи данных.
Шаг второй: подготовка микроконтроллера
Самая первая задача — установить разъемы на микроконтроллер и две платы расширения. Затем, печатные платы можно расположить друг над другом или разместить на макетной плате.
Разъемы устанавливаются путем пайки их в соответствующие монтажные отверстия на каждой плате.
После инициализации RTC можно загрузить рабочий код на плату Feather.
Предлагаемый здесь код написан для IDE Arduino. Язык IDE Arduino является производным от C / C ++. Код хорошо прокомментирован. Он основан на следующих библиотеках, которые нужно сначала импортировать в IDE Arduino с помощью Менеджера библиотек:
SPI
SD
Wire
RTClib
Adafruit_GFX
Adafruit_SSD1306
Код можно скачать репозитория GitHub .
Структура кода проста:
При включении устройства начинается двухминутная фаза предварительного нагрева, во время которой светодиод светится, синим цветом.
Файл, в котором записаны уровни CO2, создается на карте micro-SD. Имя файла автоматически создается при загрузке как LOG *****. TXT, где ***** — уникальный 5-значный индексный номер, увеличивающийся со временем. Такая индексация номеров упрощает упорядочивание файлов по времени и защищает систему от непреднамеренной перезаписи старых файлов при перезагрузке устройства.
Затем начинается нормальный рабочий цикл, в котором измерение концентрации CO2 производится каждые две секунды. После серии из пяти таких измерений расчетное значение концентрации CO2 вычисляется как среднее из предыдущих пяти значений. Затем он записывается на карту micro-SD вместе с датой и временем и аналогичным образом отображается на OLED-экране.
Отображаемая концентрация CO2 сравнивается с пороговым значением, заданным пользователем. Если он превышает пороговое значение, светодиод становится красным, в противном случае он становится зеленым.
Затем снова начинается новый цикл измерения.
Между двумя измерениями код проверяет, нажата ли кнопка A. Если нажата, на дисплее появляется меню, с помощью которого пользователь может увеличивать или уменьшать выбранный порог с шагом ± 250 ppm, используя кнопки B и C. Пороговое значение по умолчанию установлено на уровне 1000 ppm, в соответствии с рекомендациями нескольких международных организаций здравоохранения.
Шаг четвертый: схема сборки
Схема достаточно проста. Платы, как говорилось ранее, устанавливаются друг над другом, светодиод и датчик CO2 подключаются проводами.
Светодиод подключается к контактам цифрового ввода / вывода 13 (R), 12 (B) и 11 (G), а его общий катод к земле. Можно выбрать и другие выводы, но этот конкретный выбор был мотивирован необходимостью избегать использования вывода 10, который уже влияет на аппаратную связь SPI между микроконтроллером и платой Adalogger. Кроме того, на платах Feather (и на большинстве плат Adafruit) контакт № 13 подключен к отладочному красному светодиоду SMD, установленном на самой плате. При данном выборе подключения красный канал внешнего светодиода RGB всегда имитирует красный светодиод платы, что удобно для целей отладки.
Датчик CO2 представляет собой инфракрасный датчик NDIR CO2 производства Gravity. На рынке существует несколько других моделей, хотя большинство из них дороже. Эта конкретная модель обеспечивает аналоговый выход с напряжением от 0 до 2В. Выход подключается к контакту A2 на плате. Данный вывод используется еще как аналоговый вход, и инструкция в коде активирует его 12-битное разрешение АЦП (по сравнению с 10-битным АЦП классической Arduino). Провода питания датчика подключаются к контактам USB и заземления платы Feather соответственно.
Для питания устройства можно использовать адаптер питания 5В или повербанк. После тестов мастер установил, что аккумулятор на 2000 мАч позволяет устройству работать непрерывно чуть более 24 часов.
Поскольку основная плата и платы расширения уложены друг на друга, к контактам на плате нет прямого доступа для пайки проводов. Есть несколько способов обойти это.
Если на плату Feather (как на фотографии) были установлены длинные гнездовые разъемы, то соединения можно легко припаять к той части контактов, которая выступает из нижней части платы.
Второй вариант, плату Feather можно припаять к небольшой перфорированной плате, на которую затем можно легко припаять другие провода.
Источник
Контроль качества воздуха (со2 и температуры) в офисе и дома, своими руками
Все началось с того что я работаю в офисе, где как водится нет нормальной вентиляции. Зато есть много народу, кому-то все время жарко, другим постоянно дует.
Для контроля качества воздуха в помещении знать температуру недостаточно. Даже с кондиционером часто бывает прохладно, но душно. Спертый воздух. Оказалось, на это больше всего влияет концентрация со2. Когда я узнал стоимость готовых приборов хотел от этой идеи отказаться. Но случайно увидел описание оптического датчика концентрации со2 MH-Z19.
Цена конечно тоже не маленькая, но все-таки близко к разумным пределам. И руки давно чесались по паяльнику. В качестве контролера использовать решил ESP8266. Во первых дешево, во вторых что бы передавать информацию на компьютер, свой и любого желающего в комнате. После того как собрал и оттестировал первый вариант, с программой-монитором на компьютере, решил добавить экран. Во первых это красиво. Во вторых, во многих случаях удобно.
Устройство построено на модуле ESP8266 NodeMcu Lua wi-fi. Для него была написана программа на скриптовом языке LUA. Прошивку для интерпретатора Lua под мое устройство сгенерил на on-line сервере nodemcu-build.com. Выбрал там только те модули, которые мне были необходимы для создания проекта.
Дальше я взялся за сборку устройства. Подключил датчики температуры. ds18b20. Они работают по интерфейсу 1-wire:
Затем собственно датчик углекислого газа MH-Z19. Он может использовать два интерфейса ШИМ и UART. Я решил сперва попробовать ШИМ, и в результате он меня удовлетворил по надежности и точности показаний.
И подключил дисплей по шине ISP:
Была написана вот такая программа под Windows. На Delphi XE8:
Используемый мной контролер имеет встроенный модуль WIFI, который рассылает полученную с датчиков информации как UDP broadcast пакеты по всей сети офиса. И пользователи у которых стоит программа монитор, получают информацию о состоянии воздуха в помещении и предупреждения, если ситуация становится критической.
А теперь собственно впечатления.
Прибор оказался намного полезней и интереснее чем я ожидал. Во первых больше нет проблем с проветриванием, никто не возмущается, так как у всех выскакивает предупреждение и они довольно хорошо согласуются с личными ощущениями. Ну и просто наблюдения показали что в солнечный день уровень со2 значительно ниже чем в пасмурный и дождливый, утром загрязненность воздуха выше чем днем. С первого взгляда можно понять что делать, проветривать, если зашкаливает со2, или включить кондиционер, если повышенная температура. Датчик температуры на улице хорошо показывает получится ли охладить проветриванием, или только кондиционер. Стало очевидным и понятным, что творится в комнате и как в этом жить. Был случай когда решили проветрить, открыли окно, и тут же закрыли его, датчик буквально зашкалило, И дома прибор оказался очень полезным, особенно в детской комнате, тем более что за показаниями можно следить удаленно через WiFi.
В результате все это выглядит примерно так:
Источник
Простейший измеритель CO2 за 2000 рублей и полчаса
Измеритель уровня углекислого газа (CO2) наверное самый недооценённый прибор, который на мой взгляд должен быть в каждой квартире, ведь он показывает, насколько воздух пригоден для дыхания и с помощью него всегда видно, когда пора проветривать.
Такой измеритель в квартирах большая редкость прежде всего из-за высокой цены. Свой первый измеритель AZ Instruments 7798 CO2 datalogger я покупал за $139 и это была самая дешёвая модель на рынке.
Сейчас готовый измеритель CO2 стоит около 4000 рублей, а самодельный обойдётся вдвое дешевле.
Я разобрался с подключением датчиков углекислого газа с Aliexpress, нашёл примеры их использования и сделал простейшие измерители уровня CO2, которые очень просто повторить.
В большинстве самоделок используют датчик MH Z19B, но у него есть нехорошая особенность — если помещение не проветривается до состояния уличного воздуха каждый день, показания начинают «уплывать» (датчик автоматически калибруется каждый день и считает минимальный уровень CO2 в помещении за 400 ppm). Я заказал два более продвинутых датчика — Sensair S8 004-0-0053 (он обошёлся мне в $28.86, сейчас стоит $32.30) и Telaire T6703 (его я купил за $19.41, сейчас он стоит $28.35).
Я подключил датчики к Arduino Nano (его можно купить за $2.98), но можно использовать и другую плату Arduino. Для отображения значения CO2 используется дешёвый светодиодный экранчик TM1637 (он стоит $0.67). Для соединения удобно использовать готовые провода с коннекторами Dupont F-F (20 штук по 10 см стоят $0.87), для подключения сенсоров их можно разрезать пополам и подпаять.
Помимо индикации на экранчике, мои измерители передают данные в порт, поэтому их можно подключить к компьютеру, зайти в режим платформы Arduino «Монитор порта» (скорость 9600), наблюдать значения CO2 и использовать измеритель, как даталоггер (нужно просто скопировать данные из окошка монитора порта в Excel).
Кстати, экран можно не подключать и пользоваться только монитором порта.
Оба сенсора дают точные результаты (я сравнивал с хорошими измерителями уровня углекислого газа Даджет МТ8057s и AZ Instruments 7798 CO2 datalogger). Более дешёвый Telaire T6703 мне понравился даже больше — он выходит на правильные показания секунд за тридцать после включения и его результаты ближе к результатам дорогих приборов с двухлучевыми сенсорами.
Если вы захотите повторить одну из этих простых конструкций, я собрал всё, что нужно в одном архиве — там и скетчи для Arduino, и схемы подключения и необходимая библиотека.
Я планирую добавить к моим измерителям поддержку дешёвого цветного TFT-экрана и трёх или четырёх реле для управления вентиляцией в зависимости от уровня углекислого газа в помещении. Как только сделаю это, напишу такую же инструкцию для повторения этих самоделок.
Источник