Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Монитор качества воздуха своими руками – измеритель PM2.5, CO2, ЛОС, озона, температуры и шума Arduino

<основной класс="главный сайт" id="главный">

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

Вы можете посмотреть следующее видео или прочитать письменное руководство ниже.

Обзор

Я объясню, как каждый из параметров качества воздуха влияет на нас и как работают датчики. Мозгом этого проекта является плата Arduino Pro Mini, которая в сочетании с 2,8-дюймовым сенсорным дисплеем Nextion обеспечивает достойный пользовательский интерфейс.

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

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

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

Датчик PM2.5 — PMS5003

Это устройство состоит из четырех основных компонентов или датчиков качества воздуха. Мы используем датчик PMS5003 для измерения PM2,5 или твердых частиц в воздухе диаметром около 2,5 микрон. Твердые частицы являются наиболее опасной формой загрязнения воздуха, поскольку они могут проникать глубоко в легкие, кровоток и мозг, вызывая множество проблем со здоровьем.

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

Частицы вызывают рассеяние света, которое регистрируется фотодиодом, а затем преобразуется в концентрацию ТЧ с помощью его микропроцессора. Я обнаружил, что результаты этого датчика достаточно надежны, и наряду с PM2.5 он также может выводить значения PM1 и PM10.

Датчик CO2 — MH-Z19

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

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

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

Датчики ЛОС и озона — MP503 и MQ-131

Для измерения летучих органических соединений и озона мы используем датчики газа MP503 и MQ131. Это датчики на основе нагретого оксида металла, принцип работы которых основан на регистрации изменения сопротивления в присутствии целевых газов.

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

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

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

Монитор качества воздуха Arduino своими руками — принципиальная схема

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

Вы можете получить компоненты, необходимые для этого монитора качества воздуха Arduino, по ссылкам ниже:

Раскрытие информации:это партнерские ссылки. Являясь партнером Amazon, я зарабатываю на соответствующих покупках.

Правильные номиналы резисторов:R1 =1K, R2 =2K, R6=100K или 1M, R7=1K

Датчик PM2.5 связывается с Arduino через последовательный интерфейс. Он работает при напряжении 5 В, но логический уровень приема RX работает при напряжении 3,3 В, поэтому для него нужен делитель напряжения. Датчик CO2 и дисплей Nextion также используют последовательную связь. Для считывания датчиков VOC и озона мы используем аналоговые входы Arduino, а датчик температуры и влажности DHT22 использует для этой цели цифровой контакт.

Два транзистора используются для активации нагревателей датчиков. Мы также используем модуль часов реального времени для отслеживания времени при сохранении значений датчиков, и он использует связь I2C. Все устройство питается от 5 В через разъем Mini USB.

См. также: 8 лучших стартовых комплектов Arduino [обновление 2021 г.]

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

Итак, нам определенно нужна печатная плата для этого проекта.

Изготовление печатной платы для монитора качества воздуха Arduino

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

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

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

В качестве примера я нашел разъем Mini USB, используя эту функцию поиска производителя. Отсюда вы также можете легко получить доступ к данным, связанным с компонентами, таким как 3D-модели, посадочные места, размеры и т. д.

Вы также можете создавать свои собственные библиотеки компонентов. Я создал большую часть компонентов для этого проекта самостоятельно, так как хотел создать свои собственные 3D посадочные места для каждой детали, чтобы в итоге получить всю печатную плату в 3D. Для создания 3D-моделей посадочных мест печатных плат вы можете использовать любую программу САПР, сохранить файлы в формате .STEP и импортировать их в Altium Designer.

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

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

Тем не менее, я хотел бы поблагодарить Altium за спонсирование подобного образовательного контента. Если вы хотите узнать больше об этом программном обеспечении, а также попробовать его, вы можете перейти по ссылкам ниже. Вы также можете попробовать веб-средство просмотра Altium 365 для предварительного просмотра проекта и файла.

Бесплатная пробная версия Altium Designer — https://www.altium.com/yt/howtomechatronics
Просмотрщик Altium 365:https://www.altium.com/viewer

Вот файлы проекта Altium Designer:

Файлы Altium Designer, включая файл проекта, библиотеки и файлы .STEP 3D-моделей компонентов электроники:

Gerber-файл печатной платы:

Итак, как только я закончил печатную плату, я создал файлы Gerber и NC Drill, поместил их в один zip-файл, и поэтому я был готов заказать изготовление печатной платы.

Я заказал печатную плату в JCLPCB. Здесь мы можем просто перетащить zip-файл, и после загрузки мы получим всю визуальную информацию о нашей печатной плате.

Затем мы можем выбрать свойства, которые нам нужны, и заказать нашу печатную плату по разумной цене.

Сборка печатной платы

Через несколько дней печатные платы прибыли. Качество печатной платы отличное и все точно так же, как и в дизайне.

Итак, теперь мы готовы приступить к сборке печатной платы. Сначала я вставил и припаял меньшие компоненты, резисторы и два транзистора.

Затем мы можем припаять плату Arduino Pro Mini на место. Однако сначала нам нужно припаять к нему штыревые разъемы. Обратите внимание, что нам не нужны все его контакты, но убедитесь, что вы не пропустите тот, который нам нужен, например, A4, A5 и контакт DTR. Также убедитесь, что у вас точно такая же плата Arduino Pro Mini с таким расположением контактов, потому что иногда они могут отличаться.

Далее мы можем вставить датчик DHT22 на место. Для этого сначала нам нужно согнуть его штифты на 90 градусов. Иногда я также использую клей Blu-tack, чтобы удерживать компоненты на месте во время пайки.

Два конденсатора, используемые в этом проекте, предназначены для стабилизации источника питания. Питание на плату будет поступать от разъема mini-USB, к которому мы можем подключить 5В.

Прямо над разъемом блока питания нам нужно припаять два переключателя. Один для включения и выключения устройства, а другой используется, когда мы хотим загрузить скетч на плату Arduino. Затем мы можем вставить штыревые разъемы для интерфейса USB-UART, дисплея и датчика PM2.5, а также датчиков летучих органических соединений, озона и CO2 на место.

Далее, для повторной пайки модуля часов реального времени DS3231, сначала нам нужно согнуть контакты на 90 градусов. После пайки мы можем вставить батарею, которая отслеживает время, даже когда основная плата теряет питание. На этом печатная плата фактически готова, и теперь осталось подготовить кабели, которые мы будем использовать для подключения датчика PM2.5 и дисплея к печатной плате. Я припаял штекерные разъемы к кабелю, идущему в комплекте с датчиком, так что я смог легко подключить его к печатной плате. Для подключения дисплея к печатной плате я припаял четыре провода к обратной стороне разъема дисплея, а затем подключил их к печатной плате.

Вот и все, наш монитор качества воздуха готов. Конечно, что нам нужно сделать сейчас, так это сделать для него какую-то коробку или чехол. Поскольку у нас есть 3D-модель всей сборки печатной платы из Altium Designer, мы можем импортировать ее в программу САПР и спроектировать для нее корпус.

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

Вы можете загрузить эту 3D-модель монитора качества воздуха DYI, а также изучить ее в своем браузере на Thangs.

Загрузите 3D-модель на сайте Thangs.

Обоснование монитора качества воздуха

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

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

На этом этапе я снял защитную пленку с акрила, что, честно говоря, весьма приятно. Для крепления печатной платы к базовой пластине я использовал несколько болтов и гаек M3. Для крепления датчика PM2.5 к пластине нам понадобятся болты М2.

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

Мне лично очень нравится, как получился этот корпус, плюс он функционален, так как воздух может легко циркулировать вокруг датчиков.

Программирование

Итак, теперь мы можем включить устройство и загрузить программу. Мы можем запитать монитор качества воздуха через разъем Mini USB, а напряжение 5 В можно получить от USB-адаптера 5 В, зарядного устройства для телефона 5 В или внешнего аккумулятора.

Для загрузки программы на плату Arduino Pro Mini нам понадобится USB-последовательный интерфейс UART, который можно подключить к разъему для программирования. Прежде чем подключить его к компьютеру USB, сначала мы должны включить основное питание устройства, потому что в противном случае мощности, поступающей от компьютера USB, которая составляет всего 500 мА, может быть недостаточно для правильной работы. При загрузке скетча Arduino нам также необходимо переключить переключатель загрузки на печатной плате.

Здесь вы можете скачать код Arduino и программу отображения Nextion:

Для загрузки скетча на плату Arduino Pro Mini в Arduino IDE сначала нам нужно выбрать эту плату, выбрать правильную версию процессора, выбрать порт и выбрать метод программирования «USBasp».

Как только мы загрузим код в Arduino, нам также нужно загрузить код на дисплей Nextion. Дисплеи Nextion имеют встроенный контроллер ARM, который фактически самостоятельно управляет дисплеем.

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

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

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

Объяснение кода

Итак, мы используем библиотеки для каждого датчика, которые можно найти по следующим ссылкам:MHZ19, PMS, MQ131, DHT, DS3231. Чтобы лучше понять, как мы считываем данные с каждого датчика, я рекомендую прочитать документацию библиотек и попробовать их примеры.

Мы также используем библиотеку SoftwareSerial, поскольку датчики MH-Z19 и PMS5003 используют последовательную связь. Arduino и дисплей Nextion также используют последовательный порт для связи, и в этом случае мы используем аппаратный последовательный порт по умолчанию.

Итак, Arduino считывает датчики и отправляет эти данные на дисплей Nextion. Вот пример.

Serial.print("tempV.val=");
Serial.print(temp);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);Code language: Arduino (arduino)

Итак, у нас есть переменная на дисплее nextion с именем «tempV», и для того, чтобы обновить ее значение, нам нужно отправить команду nextion следующим образом:«tempV.val=22». Итак, имя переменной, затем «.val», затем значение, скажем, 22. Первые две строки кода делают это, и для того, чтобы дисплей Nextion принял эту команду или фактически любую команду, нам нужно отправить три уникальных команды «записи».

В программе отображения Nextion у нас есть таймер, который работает в цикле, подобно циклу кода Arduino, и постоянно обновляет числа на дисплее.

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

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

Часы и значения оси Y также получают свои значения от Arduino.

Вы можете заметить, что поверх формы волны, а также чисел на главном экране у нас есть прозрачные объекты, называемые «горячими точками» в редакторе Nextion, и они действуют как кнопки. Если мы нажмем горячую точку на сигнале, мы увидим в разделе «Событие», что он отправляет нас обратно на «страницу 0».

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

Обратите внимание, что для датчика VOC мы считываем только необработанные данные с этого датчика, а не значения ppm или ppb. Только аналоговые значения от 0 до 1024. Более высокие значения означают наличие ЛОС.

Что касается датчика озона, для получения более точных результатов мы должны правильно установить значения setTimeToRead() и setR0() в соответствии с примером калибровки библиотеки. Однако более длительный setTimeToRead означает, что программа будет заблокирована во время выборки, а все остальное будет заморожено. Конечно, есть способы обойти это. Я бы даже посоветовал вообще не использовать датчик озона, если он вам действительно не нужен.

Надеюсь вам понравилось это видео и вы узнали что-то новое. Если да, поддержите меня на Patreon. Не стесняйтесь задавать любые вопросы в разделе комментариев ниже и проверять мою коллекцию проектов Arduino.


Производственный процесс

  1. Монитор окружающей среды и качества воздуха своими руками
  2. Как измерить качество воздуха на OpenSensors
  3. Датчик качества воздуха с гелием
  4. Создание монитора Ambilight с помощью Arduino
  5. Мониторинг CO2 с помощью датчика K30
  6. Вольтметр своими руками с использованием Arduino и смартфона
  7. Монитор сердечного ритма с использованием Интернета вещей
  8. Arduino Temp. Монитор и часы реального времени с дисплеем 3.2
  9. Скейтборд виртуальной реальности «Сделай сам»
  10. Монитор качества воздуха своими руками с датчиком Sharp GP2Y1010AU0F