Ардуино измеритель ультрафиолетового излучения

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Измеритель ультрафиолетового излучения на основе Arduino и УФ-датчика UV30A

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

Сегодня мы создадим измеритель УФ-излучения с использованием Arduino и ультрафиолетового датчика (UVM30A) с ЖК-дисплеем Nokia 5110 в качестве средства для индикации. Nokia 5110 используется для отображения УФ-индекса, который является единицей международного стандарта для определения интенсивности ультрафиолетовых лучей от солнца, измеряемых в определенном месте и в определенное время.

Цель измерения УФ-индекса в определенном месте и в определенное время состоит в том, чтобы предостереч людей от опасностей, вызванных лучами с высоким УФ-индексом, поскольку это может привести к таким вещам, как солнечный ожог и т. д. Он также измеряется, чтобы направлять людей в те места, где бы они могли принимать адекватные защитные меры. УФ-индекс от 0 до 2 считается незначительным, выше 11 считается очень высоким и очень опасным. Когда уровень ультрафиолета очень высок, рекомендуется оставаться в помещении, причина этого в том, что индекс ультрафиолетового излучения в помещении в основном равен нулю. Это означает, что при тестировании устройства, которое мы собираемся создать, вы должны вынести его наружу, как показано на изображении ниже, так как значение не изменится, если вы будете тестировать в помещении.

УФ-датчик UVM30A, который мы будем использовать в этом проекте представляет собой недорогой аналоговый датчик с почти линейным выходом. Это означает, что выходной сигнал датчика увеличивается или уменьшается пропорционально увеличению или уменьшению УФ-излучения соответственно. График выходного сигнала датчика (в мВ) относительно УФ-индекса показан ниже.

Это простой трехконтактный датчик, состоящий из выводов VCC, GND и аналогового выходного сигнала.

Схема подключения всех необходимых компонентов для УФ-измерителя представлена далее.

Код программы для этого проекта довольно прост, мы используем только одну библиотеку – библиотеку Nokia 5110 LCD для связи с дисплеем. Основная операция кода заключается в считывании аналогового вывода 0 (A0), к которому подключен выход нашего датчика, и преобразовании его в мВ, чтобы мы могли сравнить его со значениями в таблице УФ-индексов и рассчитать УФ-индекс в конкретном месте и в конкретное время. После расчета и определения УФ-индекса этот индекс отображается пользователю на ЖК-дисплее Nokia 5110. Таблица ультрафиолетовых индексов для сравнения показана на рисунке ниже.

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

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

Датчик ультрафиолетового излучения GYML8511

Товары

Обзор датчика ультрафиолетового излучения GYML8511

В невидимом для людей спектре солнечного света находятся ультрафиолетовые лучи. Это электромагнитные волны с длиной в диапазоне от 7 до 14 нм. Ультрафиолетовое излучение условно разделяется на дальние и ближние лучи. Первые из них считаются вакуумными. Их полностью поглощают верхние слои атмосферы. В условиях Земли их генерирование возможно только в условиях вакуумных камер. Ближние ультрафиолетовые лучи делят по диапазонуна три подгруппы:

длинные – от 400 до 315 нм;

средние – от 315 до 280 нм;

короткие – от 280 до 100 нм.

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

ртутно-кварцевая лампа высокого давления (диапазон от 100 до 400 нм);

люминисцентная витальная лампа (диапазон от 280 до 380 нм);

безозоннные и озонные бактерицидные лампы ( 80% которых с длиной волны 185 нм).

Датчик ультрафиолетового излучения GYML8511 – является аналоговым модулем способным определять интенсивность ультрафиолетового излучения в диапазонах UV-A (ближний: 400-315 нм) и UV-B (средний: 315-280 нм).

Рисунок 1. Датчик ультрафиолетового излучения GYML8511.

Модуль построен на базе чипа ML8511 в который входит ультрафиолетовый светодиод и операционный усилитель. Дополнительно в модуле установлен стабилизатор напряжения LM6206-3.3 В для питания чипа от напряжения 5 В через вход VIN.

Работа чипа ML8511 основана на фотовольтаическом эффекте. Рабочая поверхность ультрафиолетового светодиода поглощает часть электромагнитного излучения УФ диапазона UV-A и UV-B, при этом электроны, получая энергию фотонов, переходят на внешний энергетический уровень, где становятся свободными. Увеличение количества свободных электронов приводит к возникновение тока, который затем усиливается операционным усилителем. Уровень напряжения на выходе OUT прямо пропорционален силе тока протекающего через ультрафиолетовый светодиод, а следовательно, интенсивности ультрафиолетового излучения.

Технические характеристики датчика GYML8511

Входное напряжение питания (VIN): 5 В постоянного тока

Входное напряжение питания (3V3): 3,3 В постоянного тока

Потребляемый ток: до 2 мА (номинально 1 мА)

Диапазон измеряемого излучения: 400. 280 нм (UV-A и UV-B)

Время стабилизации после подачи питания: до 2 мс

Максимальный ток на выходе (OUT): до 5 мА

Рабочая температура: -20 . +70 °С

Температура хранения: -30 . +85 °С

Габариты: 12х13,5 мм

OUT – выход напряжение которого прямо пропорционально интенсивности ультрафиолетового излучения.

VIN – вход напряжения питания, от +4 до +6 В (номинально 5 В) постоянного тока.

GND – вход питания (общий).

3V3 – вход напряжения питания, от +2,7 до +3,6 В (номинально 3,3 В) постоянного тока.

EN – вход разрешения (подтянут внутренним сопротивлением модуля). При установке в уровень логического 0 модуль перестанет регистрировать УФ излучение.

Подключение к плате Arduino

Выход OUT подключается к любому выводу Arduino (на схеме подключён к выводу A1).
Вход EN можно оставить не подключённым, т.к. он подтянут внутренним сопротивлением модуля.
Напряжение питания подаётся на вывод VIN (5 В) или на вывод 3V3 (3,3 В)

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

Рисунок 2. Подключение датчика GYML8511 к плате Arduino.

Загрузим на плату Arduino скетч из листинга 1.

Начиная с версии 1.6.6 в среде Arduino IDE появилось штатное средство для построения графиков. В скетче вывод цифровых данных осуществляем функцией Serial.println().Загружаем скетч на плату Arduino и запускаем встроенный монитор через меню Инструменты à Плоттер по последовательному соединению.

Рисунок 3. Запуск в Arduino IDE Плоттер по последовательному соединению.

Рисунок 4. Построение графика.

На графике вывод данных для фона и под лампой Fenon 10W.

Пример использования GYML8511

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

Arduino.ru

УФ-детектор своими руками

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

Здравствуйте, уважаемые форумчане.

Прошу отнестить с пониманием к новичку – о arduino я только слышал и не более.

В общем, краткая предыстория – купил в Китае УФ-лампочку для рептилий и терзают меня сомнения – а есть ли в ее свете этот самый ультрафиолет? Не рискуют ли мои черепахи оставшись без ультрафиолета рахитом заболеть? Приценился к приборам для измерения интенсивности UVB (средневолновой ультрафиолет, 280-315 нм) – и жаба меня задушила: самые дешевые китайские изделия за сотню вечнозеленых зашкаливают, а прибор от более-менее приличной фирмы в несколько раз дороже. Однако обнаружил, что цены на сами датчики вполне лояльны – можно приобрести менее, чем за 4 уе.

(на всякий случай даю несколько ссылок, если вдруг какая-то перестанет работать, товар вроде бы по всем ссылкам одинаковый).

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

Буду очень благодарен за ссылки (на том же ali), т.к. для человека с моим опытом даже сам arduino найти проблема – я их не особо отличаю от всяческих дополнительных контроллеров.

Спасибо всем, кто прочитал до конца. Очень надеюсь на помощь 🙂 .

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

так тут вся проблема – датчик, ардуина к нему вобщем то вспомогательное средство АЦП и послать данные кудато, скорей всего в Serial. Верите датчику, он могет – будет и результат в порту. Обсуждать нечего. Потребуются 4 провода, паяльник, припой. Ардуино берите Нано, она в ЮСБ втыкается и цена доступна. От него и питатся все будет.

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

Спасибо за ответ, Logik!

Извиняюсь за надоедливость, просто за недостатком опыта хотелось бы все выяснить некоторые моменты.

Что касается веры датчику – если производителя УФ-ламп уличить во лжи сложно, то датчик проверяется очень просто – если будет нулевое значение сигнала при освещении лампой накаливания, высокое значение – на прямых лучах солнца и низкое – солнце через стекло – значит, датчик действительно меряет УФ. Мне ведь большая точность не нужна, просто оценить порядок интенсивности в сравнении с солнечным светом.

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

rygoravich, как мне помнится, 40 лет назад в комплект лабораторного оборудования школьного кабинета физики входил флуорисцирующий индикатор УФ-излучения. Индикатор был в виде “бутерброда” из 2-х стекол и спец. состава между ними. С ним и УФ-фонарем показывали наличие “невидимого света”. Чем больше интенсивность УФ-излучения, тем ярче пятно на индикаторе. Для качественной оценки интенсивности УФ-излучения вполне подходил. Может и сейчас в школах такая штука есть? Думаю, для решения конкретной задачи ее было бы достаточно. Без головной боли и китайских товарищей. :))

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

Может что-нибудь такое и есть, но тогда нужны местные товарищи с доступом к школьному кабинету физики, а у меня таковых нет. К тому же неплохо иметь под рукой такую штуку, т.к. УФ-лампы со временем выгорают – можно определить момент, когда лампу уже нужно заменить, ну и новую после покупки проверить. Конечно, ваш вариант предпочтительнее, чем покупка устройства ценой в полторы сотни уе, но если можно собрать приборчик меньше, чем за десятку – то почему бы не попробовать 🙂 ? Ну и все-таки всегда лучше показатель измерить, чем ориентироваться на какие-то пятна – хотя бы даже для того, чтобы правильно расположить лампу, на нужном расстоянии от островка, где греются черепахи.

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

Купюра в 1000р хорошо детектирует UV излучение. Люминисцентная лампа тоже. 🙂

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

Таких “детекторов” как в школе, вокруг хоть пруд пруди. Я как купил УФ фонарик 368нм долго от них драил там, где и не предполагал. Простой и доступный вариант – белый светодиод, его люминофор очень ярко светится в УФ, или лампа из них, или люминисцентная. Да половина пластмасс светятся в УФ, только днем неопытный глаз может и не заметить. Обычный свет забивает. Потому такой прибор вполне востребован.

ПС. контроллер Нано по ссылке АЦП имеет, годится.

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

В общем, всем спасибо, а отдельное спасибо – Logik’у 🙂 .

Решение принято – заказываю датчик и arduino nano. Попробую что-нибудь из них сварганить, о результатах сообщу – может быть, еще кому-нибудь пригодится.

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

Продолжаем тему 🙂 . Получил датчик и ардуину, возникла пара вопросов, надеюсь на снисходительность форумчан 🙂 .

Во-первых, терзают меня сомнения насчет работоспособности полученной nano. Светодиодиком помигал успешно (я так понял, это ардуинный вариант hello world?), однако получил неожиданный результат, когда поробовал мерить сигнал на аналоговом входе, который ни к чему не подключен. Ожидал увидеть ноль, однако он колеблется в районе 190-230 (приблизительно, кстати, на разных сенсорах отличаются), причем, похоже, по синусоиде. Так и должно быть? Если замкнуть на землю, то показывает ноль.

Во-вторых, немного не разобрался с контактами датчика. Там их пять: VIN, 3V3, GND, OUT, EN. Из них 3V3, GND и OUT – понятно, кое-что нашел вот-тут: https://learn.sparkfun.com/tutorials/ml8511-uv-sensor-hookup-guide/using-the-ml8511 (там похожая, но все же отличная от моей плата на том же чипе) – я правильно понял, что выход 3V3 предназначен только для эталона максимального уровня сигнала, но чтобы датчик заработал, ему нужно подать напряжение для питания на вход EN, так?

А для чего нужен контакт VIN, что с ним нужно делать? К сожалению, гуглеж результатов не дал – возможно я просто неправильно искал.

Буду благодарен за помощь.

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

VIN нужен для того чтобы можно было запитать напряжением больше чем 3,3v (например от 5v до 9v и т д, но нужно смотреть какой на платке стабилизатор и какое для него максимально входное напряжение), если на платку несчего подать 3,3v.

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

Т.е. таким образом, поскольку на arduino nano имеются честные 3,3 вольта, то с ней можно забыть, что этот контакт существует, так 🙂 ?

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

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

Т.е. таким образом, поскольку на arduino nano имеются честные 3,3 вольта, то с ней можно забыть, что этот контакт существует, так 🙂 ?

Совершенно верно. Нагрузочная способность Arduino nano позволяет запитать эту платку по 3,3 вольтам. То в вашем случае нет необходимости подавать что либо на Vin.

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

От датчика ML8511 не будет пользы. Для синтеза витамина D3 рептилиям нужен диапазон 280-320нм, называемый UVB, тогда как датчик чувствителен в диапазоне 290-390нм (UVA+UVB), то есть, он будет показывать “среднюю температуру по больнице”: если Ваша лампа выдает большое количество UVA, но при этом в ее спектре будет ничтожно мало UVB, датчик покажет, что лампа выдает достаточно ультрофиолета, тогда как животное может погибнуть от недостатка витамина D.

На фирменных приборах (например, Solarmeter 6.5) перед датчиком стоит специальный оптический фильтр, который не пропускает ненужные для синтеза витамина D длины волн, в результате, он показывает только “полезный” ультрафиолет. Поэтому он измеряет UVI (индекс полезного ультрафиолета). Вот, посмотрите, на сайте Solarmeter приводится кривая чувствительности датчика в зависимости от длины волны. Спад кривой, начиная от 300нм, обысловлен примененным оптическим фильтром. Такие оптические фильтры с определенной полосой пропускания весьма дороги, я как-то искал, цена была примерно такого же порядка, как и измеритель Solarmeter 6.5, так что, проще сразу купить его. Кстати, китайские, относительно недорогие (около 100 долларов) измерители ультрафиолета не годятся по той же самой причине.

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

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

Извиняюсь, что так затянул с обещанным отчетом, но все-таки надо исправляться 🙂 .

Итак, штуковину собрал, работает. Выкладываю полный листинг софтины, на случай, если кому пригодится (сам уже не помню, что там зачем, но я ее сразу готовил к публикации – есть комменты). Насколько помню, там пару неочевидных моментов есть. Во-первых, для большей точности (не знаю, насколько такой метод эффективен, но таки он реализован) измерение проводится не однократно, используется среднее значение от нескольких замеров (по умолчанию 100). Во-вторых, можно менять режим вывода (отправляя в консоли символ) – используется для более-менее точной калибровки датчика.

Позже обнаружил на алиэкспрессе дешевый (около 5 баксов) датчик УФ-излучения в виде брелка с часами – заказал и его. Надо сказать, он мне больше понравился – судя по натурным экспериментам, захватывает меньше видимого света, чем ml8511. Так что сейчас пользую его.

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

Придумал и сделал прибор

Сегодня утром я не стал писать посты и тестировать лампочки, а занялся творчеством. Пару дней назад я «изобрёл» прибор, которого мне очень не хватало при тестировании ламп, и сегодня смог сделать его.

Прибор показывает изменение яркости в процентах по прошествии времени. Прежде всего он нужен мне в проекте lamptest.ru для измерения минимального напряжения, при котором горят лампы, не снижая яркость более, чем на 10%. Помимо информации о минимальном напряжении, которая пригодится тем, кто живёт в местах с не очень качественным электропитанием, где напряжение в сети может существенно снижаться (например, в сельских районах), это поможет сделать выводы о типе драйвера и качестве ламп.

Ещё прибор пригодится для анализа снижения яркости ламп по мере прогрева.

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

Дополнительно сделал индикацию пульсации, но она весьма приблизительна. Я использую цифровой датчик света TSL2561, у него минимальное время интеграции 13 мс, а длительность одного полупериода сетевого напряжения — 10 мс. Я делаю 12 замеров подряд с надеждой, что какой-нибудь из них случайно попадёт на минимум яркости при пульсации, а какой-нибудь другой на максимум. Кнопкой Left можно сделать коррекцию внешнего освещения для расчёта пульсации, нажав её, когда исследуемая лампа выключена.

Вся конструкция состоит из трёх готовых модулей — Arduino UNO R3, LCD Keypad Shield, MH-2561 и и четырёх проводов.

Скетч для Arduino:

Честно говоря, не надеялся, что вот так за полдня у меня получится готовый работающий прибор. И это при том, что из языков программирования я когда-то знал только ассемблер БК0010 и многое делаю просто методом тыка.

В программе для Arduino я использовал фрагменты программ-примеров использования TSL2561, LCD Keypad Shield, а для расчёта пульсации кусочек из скетча люксметра с samopal.pro. Некоторые вещи работают, но я не понимаю, что они означают 🙂

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

Источники:

http://3d-diy.ru/wiki/arduino-datchiki/datchik-uf-GYML8511/

http://arduino.ru/forum/obshchii/uf-detektor-svoimi-rukami

http://habr.com/post/401837/

http://stroy-podskazka.ru/vidy-gorshkov/levitiruyushchij/

Ссылка на основную публикацию