Измеряем индекс ультрафиолетового излучения UVA UVB
Все мы любим солнце и конечно же знаем о вреде ультрафиолетового излучения для человеческой кожи. Очевидно, что на пляже нельзя долго загорать. Но вот совсем не очевидно, можно ли гулять под солнцем в футболке, а плавать, ходить по горам? После очередного «обгорания» от солнца в горах на Красной поляне встал вопрос — как бы измерить мгновенный индекс ультрафиолетового излучения и знать, когда пора укрыться в тени. В результате родился этот небольшой прибор — датчик уф излучения с рядом дополнительных функций.
Что должен уметь прибор
Основная функция — измерение индекса УФ излучения. Дополнительно захотелось измерять температуру воздуха и температуру воды, с точностью хотя бы 0.5 градуса (особенно, когда искупавшись в бассейне с ледяной водой посмотрели на китайский термометр, который там плавал — 28 градусов, и рядом не было). Ну и конечно же питание от аккумулятора.
Основные компоненты: VEML6075 + MCP3421 + STM8
Для измерения индекса УФ излучения существует не так много датчиков. Обычно используется датчик УФ изучения — фототранзистор. Но его оказалось довольно сложно откалибровать. Выбор пал на цифровой датчик — VEML6075. Он оказался очень хорош. Единственный минус — сложно купить, поставку ждать пришлось около месяца по официальным каналам — «Пятый элемент» (китай рассматривать не стал — в разовом приборе гадать о качестве неприятно). Преимущества датчика:
- лёгкая калибровка в домашних условиях
- косинусовый отклик поверхности датчика — учет падения лучей
- точные показания индекса в двух диапазонах — UVA UVB
- малое потребление
- общение по I2C — полностью цифровой датчик
Изначально пугал размер датчика 2×2 мм, термофена не было, думал, что сложно будет запаять обычным паяльником такую мелочь —, но вышло отлично.
Второй вопрос — измерение температуры воды, решил с помощью термопары. Для точного снятия данных с этого датчика использовать очень точный ADC, со встроенным источником референсного напряжения — MCP3421. 18-бит разрешение + 8 кратное усиление сигнала для термопары K-типа дает 0.01 градус разрешение температуры — более чем достаточно. С учетом необходимости измерения температуры соединения точность получилась в районе 0.2 градуса. Проверял путём измерения кипящей воды и льда.
В качестве микроконтроллера — самый простой и дешевый вариант — STM8S003F3. На борту все есть — таймеры, I2C — нужное для датчика и т.д.
Так как прибор должен работать на солнце — то в качестве индикатора — LCD экранчик. Хотелось компактности — выбрал этот:
С управлением пришлось помучаться. Мультиплексирование выводов LCD на обычном микроконтроллере ещё та задача, но в общем все получилось отлично.
Корпус выбрал маленький, компактный от компании Sanhe модель »20–31». Внешний размер — 35×45х18 мм. Все влезло — плата, индикатор и аккумулятор.
→ Схему и плату приводить не буду, все есть на github
Калибровка датчика УФ
После получения показаний с датчика — они не очень порадовали, были не похожи на показания «гидромецентра». Пришлось изучать, как правильно откалибровать датчик.
Солнечный свет в своём спектре имеет УФ излучение, ИК излучение и видимое излучение. Чтобы рассчитать интенсивность УФ излучения, необходимо вычесть лишние данные про ИК излучение и видимое излучение. Чтобы рассчитать константы в используемой формуле в датчике необходимы два искусственных источника света:
- обычная лампа накаливания — она излучает в ИК спектре и видимом излучении;
- светодиодная лампа — она излучает только в видимом излучении
Получив показания датчика под этими различными источниками света, рассчитываем нужные для формулы константы. Вот после этого датчик стал отлично работать — показания в солнечный день совпали с погодными сайтами.
Опыт использования
При изготовлении датчик пришлось изучить что такое УФ излучение, чем оно все таки вредно. Какие виды его бывают. Как оно влияет на кожу. Как влияет положение солнца на горизонте и вредно ли УФ излучение для глаз.
Лично на себе проверил все статьи про «обгорание». Датчик показал себя отлично. Теперь, увидев на датчик в горах индекс 13, одеваю плотную рубашку и закрываю все части тела. А вечером, когда индекс 5 — спокойно хожу и нежусь под теплыми лучами солнца.
Узнал то, что в солнечный день, можно неплохо обгореть и в Москве — индекс доходит до 9 в полдень. А также, что при плавании время нахождения на солнце увеличивается в два раза.
Для меня этот прибор оказался очень полезным, пользуюсь до сих пор, показаниям доверяет вся семья. На текущий момент добавил туда ещё очень точный датчик влажности — HTS221. Он тоже работает по I2C, так что просто сделал миниплатку и вклеил внутрь. Припаял проводом лакированным 0.15 мм. Так что, сейчас он ещё показывает и влажность, гораздо точнее чем китайские измерители, продаваемые на рынке.