Измеритель запыленности воздуха своими руками

Создаем детектор пыли на основе Ардуино

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

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

В этом руководстве рассказывается, как подключить оптический датчик пыли Sharp к Arduino. Показания датчика будет отображаться на OLED-экране. Система упакована в старый ингалятор, который позволяет подавать воздух в датчик для удобства тестирования.

Оптический датчик пыли GP2Y1010AU0F

Датчик имеет крошечный шестиконтактный интерфейс подключения, и обычно он поставляется с коннектором. Датчик генерирует аналоговый выходной сигнал на выводе pin5 -Vo, он не требует никаких внешних компонентов для работы и требует только источник питания 3,3 В, что облегчает взаимодействие с платой Arduino. Некоторые примеры применения этого датчика включают в себя:

  • Очиститель воздуха
  • Кондиционер воздуха
  • Монитор воздуха
  • Детектор PM2.5

Sharp GP2Y1010AU0F

Почему GP2Y1010AU0F

Я выбрал этот датчик пыли по следующим причинам:

  • Он использует новейшие технологии для зондирования, включая инфракрасный светодиод, набор линз, фотодиодный детектор и электромагнитный экран.
  • Он имеет высокую чувствительность к пыли, а также быстрое время отклика между датчиком и микроконтроллером.
  • Благодаря трем проводам (VCC, GND и сигнал), ведущим к микроконтроллеру, этот датчик может быть подготовлен с использованием простой аппаратной структуры, что облегчает взаимодействие новичков с Arduino.
  • Небольшой размер датчика позволяет легко установить его в устройство контроля качества воздуха или в любой другой небольшой проект.

Как работает датчик пыли?

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

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

Комплектующие

  • Arduino Nano или Arduino UNO
  • OLED 128 x 32
  • Датчик пыли GP2Y1010AU0F
  • Макет
  • Резистор 100 Ом
  • Конденсатор 220 мкФ
  • Ингалятор
  • Труба
  • Круглый кусок пластика
  • Горячий клеевой пистолет

Сборка Ингалятора

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

Схема соединений

Подключите датчик пыли к Arduino, как показано на рисунке ниже.

  • Подключите контакт 3.3V / 5V платы Arduino к контакту Vcc модуля датчика пыли.
  • Подключите V-светодиод датчика к резистору 100 Ом. Подключите выводы LED-GND и S-GND датчика к заземляющему выводу Arduino.
  • Вывод светодиода датчика должен быть соединен с цифровым выводом Arduino pin12, который известен как выходной вывод модуля датчика пыли.
  • Вывод V0, который является аналоговым выводом, должен быть подключен к аналоговому выводу Arduino A0. Код Arduino выведет уровень концентрации пыли датчика на OLED 128X32.
Читайте также:  Браслет шамбала своими руками схема

Для Arduino Uno, подключите контакт Vo GP2Y1010AU0F к контакту A0 Uno. Контакт V-LED и контакт Vcc GP2Y1010AU0F могут быть подключены к 5 В или 3,3 В Uno. То же самое относится и к Vcc OLED-дисплея. Используйте контакты A4 и A5 в качестве интерфейса SDA и SCL.

На фото выше итоговый результат нашего собранного устройства анализа уровня пыли на Ардуино.

Код проекта

Код для нашего анализатора уровня пыли Arduino вы можете скопировать ниже:

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

Источник

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

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

В последнее время всё больше людей озадачивается проблемой загрязнённости воздуха. Одним из видов загрязнения воздуха является взвешенные частицы размером до 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, в течение которого датчик будет в некоторых случаях держать собственную сеть, чтобы дать возможность поменять настройки.

Читайте также:  Как сделать подогреватель тосола 220в своими руками

Сборка

Как я уже упоминал выше, можно использовать как 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. Картографические данные: © Яндекс

Источник

Оцените статью