- Digitrode
- цифровая электроника вычислительная техника встраиваемые системы
- Анализатор качества воздуха своими руками на основе Arduino и датчика Sharp GP2Y1014AU0F
- В поисках счастья
- программист в поисках счастья
- Монитор качества воздуха своими руками: Часть 1 – Начало
- Вторая версия Монитора качества воздуха
- Создаем детектор пыли на основе Ардуино
- Оптический датчик пыли GP2Y1010AU0F
- Почему GP2Y1010AU0F
- Как работает датчик пыли?
- Комплектующие
- Сборка Ингалятора
- Схема соединений
- Код проекта
Digitrode
цифровая электроника вычислительная техника встраиваемые системы
Анализатор качества воздуха своими руками на основе Arduino и датчика Sharp GP2Y1014AU0F
Загрязнение воздуха является серьезной проблемой во многих городах, и индекс качества воздуха ухудшается с каждым днем. Согласно отчету Всемирной организации здравоохранения, больше людей погибает преждевременно от воздействия опасных частиц, присутствующих в воздухе, чем от автомобильных аварий. По данным Агентства по охране окружающей среды (EPA), воздух в помещении может быть в 2-5 раз токсичнее, чем воздух снаружи. Поэтому в сегодняшних реалиях желательно иметь под рукой анализатор качества воздух, который мы с вами создадим в рамках данного проекта.
В данном проекте мы собираемся соединить датчик Sharp GP2Y1014AU0F с Arduino Nano для измерения плотности пыли в воздухе. Помимо датчика пыли и Arduino Nano, для отображения измеренных значений также используется OLED-дисплей. Датчик пыли GP2Y1014AU0F компании Sharp очень эффективен для обнаружения очень мелких частиц, таких как сигаретный дым. Он разработан для использования в очистителях воздуха и кондиционерах.
Sharp GP2Y1014AU0F — это крошечный шестиконтактный оптический датчик качества воздуха / пыли с аналоговым выходом, предназначенный для обнаружения частиц пыли в воздухе. Работает по принципу лазерного рассеяния. Внутри модуля датчика инфракрасный излучающий диод и фотодатчик расположены по диагонали рядом с отверстием для впуска воздуха, как показано на следующем изображении.
Когда воздух, содержащий частицы пыли, попадает в камеру датчика, частицы пыли рассеивают свет ИК-светодиода в сторону фотодетектора. Интенсивность рассеянного света зависит от пылевых частиц. Чем больше в воздухе пылинок, тем больше яркость света. Выходное напряжение на выводе VOUT датчика изменяется в зависимости от интенсивности рассеянного света. Распиновка датчика следующая:
1 – V-LED питание светодиода (подключите к 5 В через резистор 150 Ом), 2 – LED-GND вывод заземления светодиода (подключить к GND), 3 – LED используется для включения/выключения светодиода (подключить к любому цифровому выводу Arduino), 4 – S-GND контакт заземления датчика (подключить к GND Arduino), 5 – VOUT вывод аналогового выхода датчика (подключить к любому аналоговому выводу), 6 – VCC положительный вывод питания (подключить к 5V Arduino).
Также в нашем проекте будет использоваться стандартный OLED-дисплей. OLED (Organic Light-Emitting Diodes) – это технология самосветового излучения, созданная путем размещения ряда органических тонких пленок между двумя проводниками. Яркий свет излучается, когда на эти пленки подается электрический ток. OLED-дисплеи используют ту же технологию, что и телевизоры, но имеют меньше пикселей, чем в большинстве наших телевизоров.
Схема подключения датчика Sharp GP2Y1014AU0F и сопутствующих компонентов к Arduino приведена далее:
Схема очень проста, поскольку мы подключаем только датчик GP2Y10 и модуль OLED-дисплея к Arduino Nano. Датчик GP2Y10 и модуль OLED-дисплея питаются от +5 В и заземления. Вывод V0 соединен с выводом A5 Arduino Nano. Вывод светодиода датчика подключен к цифровому выводу 12 на Arduino. Поскольку модуль OLED-дисплея использует связь SPI, мы установили связь SPI между модулем OLED и Arduino Nano. В качестве конденсатора используется конденсатор емкостью 220 мкФ, а резистор взят с сопротивлением 150 Ом.
Теперь перейдем к программной части. В коде используются библиотеки Adafruit_GFX и Adafruit_SSD1306. Эти библиотеки можно загрузить из диспетчера библиотек в среде разработки Arduino и установить оттуда.
Датчик пыли не требует какой-либо библиотеки, так как мы считываем значения напряжения непосредственно с аналогового вывода Arduino. Полный код Arduino приведен далее.
Как только оборудование и код готовы, пора проверить датчик. Для этого подключите Arduino к ноутбуку, выберите плату и порт и нажмите кнопку загрузки. Как вы можете видеть на изображении ниже, плотность пыли будет отображаться на OLED-дисплее.
Источник
В поисках счастья
программист в поисках счастья
Монитор качества воздуха своими руками: Часть 1 – Начало
Недавно в подарок получил ионизатор и увлажнитель воздуха, который очищает воздух, увлажняет его и ионизирует. И хотя лично я разницы не чувствую, а, учитывая зиму и работающие батареи, эффект очень кратковременный, я задумался об оценке не только качества работы этого устройства, но и такого привычного для всех действия как уборки квартиры. Позднее мысль пошла дальше и я решил, что неплохо бы иметь переносной монитор качества воздуха.
Для начала я купил датчик пыли на основе sharp GP2Y1010AU0F прменяется для обнаружения PM2.5 частиц (менее 2.5 микрон) и сигаретного дыма. Принцип действия довольно простой: фототранзистор распознает свет, отражённый от частиц, который посылает инфракрасный светодиод.
Для подключения к Arduino не требуется ничего особенного: чёрный провод земля, красный 5 вольт, жёлтый на цифровой Pin 7, для управления (вкл/выкл) тем самым инфракрасным светодиодом, и синий на один из аналоговых пинов, например A0, для чтения показаний датчика.
Для того, чтобы считать данные с датчика, согласно DataSheet-у нужно включить инфракрасный светодиод, подождать 280 микросекунд, и затем померить выходное напряжение датчика.
Здесь мы делим значение, которое считали с датчика на 1024 – это максимальное значение, которое может считать Arduino Uno на аналоговых пинах и умножаем на 5 – напряжение, которое мы подали на датчик.
Согласно DataSheet-у типичное напряжение, которое показывает датчик при отсутствии пыли – это 0.9 вольт, так что просто вычтем это значение и будем считать, что наличие пыли начинается при напряжении > 0.9 вольт.
Второе, что нужно сделать – это отображать считанные значения. Простейший вариант – это напечатать в консоль, но когда ходишь по городу, то лучше иметь какой-нить маленький дисплей и я купил 0.96″ OLED дисплей с интерфейсом i2c, которому требуется 2 аналоговых пина (SDA на A4, а SCL на A5) плюс напряжение и земля.
У AdaFruit есть отличная, но “тяжёлая” библиотека для работы с подобными дисплеями. Прежде чем ею можно воспользоваться нужно поменять пару вещей в зависимости от модели дисплея. В моём случае это i2c адрес, который нужно выставить в 0x3C . Так же может понадобиться другая AdaFruit библиотека – AdaFruit GFX.
Теперь необходимо добавить датчики температуры и влажности для полноты информации. Например подойдёт DHT22 – это два датчика в одном.
У него 4 ножки, но одна (третья, согласно DataSheet-у) не используется, так что просто нужно подключить 5 вольт, землю и один из цифровых пинов, например 2й. Так же есть библиотека для работы с этим датчиком, так что считывание показаний можно легко добавить в предыдущий скетч:
просто читаем влажность и температуру с помощью библиотечных функций dht.readHumidity() и dht.readTemperature() и выводим их на экран:
Ещё нужен источник питания, такой, чтобы можно было легко носить “прибор” с собой. Например подойдут пальчиковые (АА) батарейки, которые можно вставить в батарейный отсек и приделать к ним разъём с клеммой для лёгкого способа подключения к Arduino
Сам Arduino засунуть в корпус и приклеить батарейный отсек с помощью 2х стороннего скотча:
Источник
Вторая версия Монитора качества воздуха
Некоторое время назад я описывал прибор для мониторинга качества воздуха в помещении, который можно сделать самостоятельно из деталей заказанных на известном китайском интернет магазине.
И вот появилась новая версия прибора.
Доработки в новой версии небольшие, в основном касаются прошивки. Но добавление нового датчика BME280 существенно расширило функциональность прибора.
Теперь стала доступна информация о температуре, влажности окружающего воздуха и атмосферном давлении.
Для тех кто собрал прибор первой версии его доработка и усовершенствование будет простейшей задачей. Просто добавить новый датчик и пере прошить контроллер.
Новый датчик подключается по интерфейсу I2C прямо к уже установленным часам.
При наличии датчика BME280 прибор будет каждые 15 секунд переключать панель показывающую параметры измерения пыли в режим демонстрации температуры, влажности, атмосферного давления, и через 15 секунд обратно в режим демонстрации пыли.
Датчик BMP280 вынесен из корпуса что бы на него не оказывало влияние нагрев остальных компонентов прибора. На картинке это маленький радиатор в верхнем левом углу.
Для работы остальных датчиков используется вентилятор, который не спеша продувает корпус.
Еще в данной версии появилась возможность использовать прибор без наличия датчика формальдегида. В старой прошивки без этого датчика не работал датчик пыли.
→ Тут можно взять новую прошивку
→ Тут Архив с файлами скриптов
→ Тут инструкция о том как самостоятельно собрать подобный прибор
Инструкцию о том как прошивать контроллер можно посмотреть тут.
Источник
Создаем детектор пыли на основе Ардуино
Сохраняйте здоровье, следя за уровнем загрязнения воздуха в вашем доме с помощью детектора пыли на основе 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 вы можете скопировать ниже:
В начале кода мы подключаем необходимые библиотеки. После загрузки кода на экране дисплея вы увидите показания вашего устройста.
Источник