Как выполнить мониторинг uv с помощью adafruit si1145

Как выполнить мониторинг uv с помощью adafruit si1145
Как выполнить мониторинг uv с помощью adafruit si1145
Anonim

Как проводить УФ-мониторинг с помощью Adafruit Si1145

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

Использование платы Si1145 от Adafruit

У людей в наших глазах есть фоторецепторы, которые обнаруживают фотоны в очень узком диапазоне: от ~ 400 нм до 700 нм (~ 750-430 ТГц). Когда частота (энергия) фотонов ниже диапазона, который мы развили, чтобы видеть, фотоны называются инфракрасными. Когда частота выше диапазона, который мы развили, чтобы видеть, фотоны имеют достаточно энергии, чтобы сжечь нашу кожу. Эти фотоны называются ультрафиолетовыми.

Image
Image
Спектр видимого света. Изображение, разработанное Центром исследований окружающей среды Флориды

Si 1145 является датчиком сопряжения с малой мощностью I²C, способным обнаруживать фотоны видимого, инфракрасного и ультрафиолетового света. Чип и его 8 контактов находятся в пределах 2 мм x 2 мм. Этот размер слишком мал для ручной пайки, поэтому, если вы собираетесь играть с ним, вам понадобится планка с бортовым регулятором напряжения, например Si1145 от Adafruit. Adafruit также был достаточно любезен, чтобы создать совместимую с Arduino библиотеку, которая позволяет очень просто использовать датчик.

Требуемые детали

Часть Цена
Si1145 $ 14
Arduino Uno R3 $ 17
ЖК-дисплей I2C $ 13
Мужские / женские или мужские / мужские перемычки $ 9
Паяльная макетная доска $ 10

Вам придется приобрести Si1145 от Adafruit и ЖК-дисплей I²C. Если вы возитесь, у вас наверняка будут другие части уже под рукой.

Ниже приведены таблицы данных для LCD (PDF) и датчика (PDF).

Загрузить библиотеки

Затем вам нужно будет установить соответствующие библиотеки в программном обеспечении Arduino: Sketch »Include Library» Управление библиотеками

  1. Установите LiquidCrystal
  2. Установите Adafruit Si1145

Я включил файлы.zip для обеих библиотек ниже:

Si1145 LibraryI2C Liquid Crystal LibrariesProject Code

Информация о подключении

Для подключения Arduino к Si1145 требуется четыре провода. Для подключения к ЖК-дисплею требуется еще четыре провода на те же четыре контакта. Вы можете использовать макет, чтобы дать себе дополнительные связующие точки. С другой стороны, используемые здесь названия сигналов соответствуют ярлыкам на плате прорыва. Для имен контактов Si1145, пожалуйста, обратитесь к техническому описанию.

Выполните следующие шаги, чтобы выполнить проводку:

  1. Gnd на Arduino to Gnd на ЖК-дисплее и Si1145
  2. 5V на Arduino до $$ V_ {CC} $$ на ЖК-дисплее и Vin на Si1145
  3. Аналоговый вывод 4 (SDA) на Arduino-SDA на ЖК-дисплее и Si1145
  4. Аналоговый вывод 5 (SCL) на Arduino to SCL на ЖК-дисплее и Si1145
Image
Image
Arduino Si 1145 LCD
5 В $$ V_ {В} $$ $$ V_ {CC} $$
Gnd Gnd Gnd
A4 (или SDA) SDA SDA
A5 (или SCL) ACL SCL

Код

После того, как вы установили соединения, загрузите и выполните следующий код:


/* Si1145 UV Sensor I2C Display mjhughes for allaboutcircuits.com Connect the LCD and UV sensor to 5v, Gnd Connect LCD & UV SDA to Arduino analog 4 Connect LCD & UV SCL to Arduino analog 5 On include lines, use "" for header files in same directory or useif you installed the libraries */ #include// I²C library #include// control the LCD #include// read the UV sensor Adafruit_SI1145 uv = Adafruit_SI1145(); LiquidCrystal_I2C lcd(0x27, 20, 4); // (LCD address, 20 chars wide, 4 characters tall) void setup() // initialization code { lcd.init(); // initialize the lcd lcd.backlight(); // turn backlight on uv.begin(); // initializes the sensor } void loop() // main program loop { float UVindex = uv.readUV(); // variable for UV Index UVindex /= 100.0; // to convert to integer index, divide by 100 lcd.setCursor(8, 0); lcd.print(" "); // Clear extra digits that can accumulate with high readings lcd.setCursor(17, 0); lcd.print(" "); // Clear extra digits that can accumulate with high readings lcd.setCursor(19, 1); lcd.print(" "); // Clear extra digits that can accumulate with high readings lcd.setCursor(2, 0); lcd.print("Vis:"); lcd.print(uv.readVisible()); // Show visible light reading lcd.setCursor(11, 0); lcd.print("IR:"); lcd.print(uv.readIR()); // Show infrared light reading lcd.setCursor(0, 1); lcd.print("UV Index: "); lcd.print(" "); lcd.print(round(UVindex)); // UV index lcd.print(" ("); lcd.print(UVindex); lcd.print(")"); // provides more detailed UV Index lcd.setCursor(0, 2); lcd.print(" "); lcd.setCursor(0, 3); lcd.print(" 1 2 3 4 5 6 7 8 9 +"); lcd.setCursor(UVindex*2, 2); lcd.print("Θ"); // Should move to 2nd line for 11, 12, 13, etc… delay(1000); // Set an appropriate refresh rate for the application }

На ЖК-дисплее вы должны увидеть показания для видимого и инфракрасного света, а также рассчитанный УФ-индекс и визуальный индекс показаний 1-9 +.

Когда показания выходят за пределы 9, курсор должен перейти к следующей строке, показывающей измерения от 10 до 19.

Image
Image

Вот видео моего LCD в действии:

Следующие шаги

  1. Возьмите свой датчик, Arduino и LCD снаружи в середине дня и посмотрите, как ваши показания сравниваются с прогнозом погоды.
  2. Если у вас есть RGB-дисплей, было бы неплохо увидеть, что графические UV-изображения из ВОЗ появляются вместо цифр (возможно, наряду с рекомендациями для пользователя применять солнцезащитный крем).
  3. Тип кожи влияет на время, когда человек испытывает солнечный ожог. Возможно, создайте таблицу уравнений или поисковых запросов, которая предоставляет пользователю таймер обратного отсчета времени.

    Image
    Image
  4. Найдите местоположение, в котором вы можете разбить текущую запись УФ-индекса 43.3.

Дополнительная информация о том, почему изменения УФ-индекса

Прогноз погоды дает УФ-индекс для вашего прогнозируемого региона, как правило, во время местного солнечного полудня. Однако количество УФ-излучения, которое достигает поверхности Земли, является динамическим. Если вам нужна актуальная информация, вы должны ее измерить по месту.

Image
Image
Карта прогнозов ультрафиолетового излучения для Соединенных Штатов 10 июля 2016 года от Wolfram Alpha
Image
Image
Временная карта прогнозов ультрафиолетового прогноза для Соединенных Штатов 10 июля 2016 года от Wolfram Alpha

Ежедневный индекс УФ

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

Они также предоставляют инструмент, который даст вам прогноз УФ-индекса для данного местоположения.

Инструмент УФ-индекса EPA. Это интерактивно! Попробуйте

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

Image
Image
График УФ-индекса. Изображение предоставлено Всемирной организацией здравоохранения

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

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

Квантовая теория электромагнитного излучения и поглощения атмосферы

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

Если энергия движущегося фотона точно не соответствует энергии перехода для атома / молекулы, фотон не поглощается атомом. Эти орбитальные переходы являются настраивающими вилами природы - они встречаются только на очень определенных частотах (хотя каждая частота может быть смещена доплеровским сдвигом немного выше или ниже через относительное движение).

Image
Image
Определение поглощения и эмиссии электронов. Изображение предоставлено StackExchange

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

Image
Image
Переходы боровской модели атомного водорода. Изображение разработано WikiMedia

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

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

Image
Image
Сравните цвет спектральных линий около 550 ТГц окислительного состояния урана выше, чем цвет стекла ниже. Изображение предоставлено Wolfram Alpha
Image
Image
Сияющие ультрафиолетовые светодиоды на стекле, наполненном ураном, заставляют его светиться неоновым зеленым. Фото Марка Хьюза

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

Image
Image
График того, как далеко часть спектра ЭМ может проникать сквозь атмосферу Земли. Изображение предоставлено NASA

Понимание угла освещения инцидента

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

Image
Image
Поскольку угол падения отклоняется от нормали, интенсивность уменьшается
Image
Image
Анимация сделана с помощью Mathematica от Wolfram, основанная на этой графике

Инсоляция и УФ-индекс

Эти две идеи - угол входящего света и количество атмосферного поглощения - объединяются, чтобы определить количество входящего солнечного излучения, которое достигает земной поверхности. Соответственно, мы называем эту инсоляцию (и от латинского слова insolare).

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

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

Чтобы узнать больше о Международном агентстве по исследованию рака, в котором обсуждается, как УФ-излучение может привести к раку, прочитайте эту статью (PDF).

Наконец, если вы хотите использовать Mathematica Wolfram (доступный бесплатно в операционной системе Raspbian), чтобы создать свою собственную графику, я включил код, который я использовал для создания анимаций ниже:

Ноутбук Mathematica для создания собственной графики

Попробуйте этот проект сами! Получить спецификацию.