Mündəricat:

UltraV: Portativ UV indeksli metr: 10 addım (şəkillərlə)
UltraV: Portativ UV indeksli metr: 10 addım (şəkillərlə)

Video: UltraV: Portativ UV indeksli metr: 10 addım (şəkillərlə)

Video: UltraV: Portativ UV indeksli metr: 10 addım (şəkillərlə)
Video: 20 товаров для автомобиля с Алиэкспресс, автотовары №30 2024, Noyabr
Anonim
UltraV: Portativ UV indeksi ölçən cihaz
UltraV: Portativ UV indeksi ölçən cihaz

Bir dermatoloji problemi üzündən günəşə çıxa bilmədiyim üçün sahildə keçirəcəyim vaxtdan ultrabənövşəyi şüalar ölçən cihaz qurmağa sərf etdim. UltraV.

Bir UV sensoru, 3v batareya gərginliyini artırmaq üçün DC/DC çeviricisi və kiçik bir OLED ekranı olan bir Arduino Nano rev3 üzərində qurulmuşdur. Əsas məqsədim portativ saxlamaq idi ki, UV-indeksini hər an və hər yerdə asanlıqla bilə bildim.

Addım 1: hissələr və komponentlər

  • Mikro nəzarətçi Arduino Nano rev.3
  • UV sensoru ML8511
  • 128 × 64 OLED diplay (SSD1306)
  • MT3608 DC-DC artırma
  • CR2 batareya
  • CR2 batareya tutacağı
  • keçid
  • korpus qutusu

Addım 2: Sensor

Sensor
Sensor
Sensor
Sensor

ML8511 (Lapis Semiconductors) daxili və ya açıq havada UV intensivliyi əldə etmək üçün uyğun olan bir UV sensorudur. ML8511, UV intensivliyindən asılı olaraq foto cərəyanı gərginliyə çevirən daxili gücləndirici ilə təchiz edilmişdir. Bu unikal xüsusiyyət, ADC kimi xarici sxemlərə asan bir interfeys təqdim edir. Güc söndürmə rejimində tipik gözləmə cərəyanı 0.1µA -dır, beləliklə daha uzun batareya ömrü təmin edir.

Xüsusiyyətləri:

  • UV-A və UV-B-yə həssas fotodiod
  • Daxili əməliyyat gücləndiricisi
  • Analog gərginlik çıxışı
  • Aşağı təchizat cərəyanı (300μA tip.) Və aşağı gözləmə cərəyanı (0.1µA tip.)
  • Kiçik və nazik səthə montaj paketi (4.0mm x 3.7mm x 0.73mm, 12 pinli keramika QFN)

Təəssüf ki, sensoru qorumaq üçün UV şəffaf bir material tapmaq şansım olmadı. Test etdiyim hər cür şəffaf örtük (plastik, şüşə və s.) UV ölçüsünü zəiflədirdi. Ən yaxşı seçim kvars əridilmiş silika şüşə kimi görünür, amma münasib qiymətə tapmadığım üçün sensoru qutunun xaricində, açıq havada buraxmağa qərar verdim.

Addım 3: Əməliyyatlar

Əməliyyatlar
Əməliyyatlar

Ölçmək üçün cihazı yandırın və günəş şüalarının istiqamətinə uyğun olaraq bir neçə saniyə günəşə göstərin. Sonra ekranda baxın: soldakı indeks həmişə ani ölçü göstərir (hər biri 200 ms), sağdakı oxu isə bu seansda alınan maksimum oxunuşdur: ehtiyacınız olan budur.

Ekranın sol aşağı hissəsində, ölçülmüş UV indeksi üçün ÜST ekvivalent nomenklaturasının (LOW, MODERATE, HIGH, VERY HIGH, EXTREME) olduğu da bildirilir.

Addım 4: Batareya gərginliyi və oxu

Ölçüsü və tutumu (800 mAh) üçün CR2 batareyasını seçirəm. Yaz boyu UltraV istifadə etdim və batareya hələ də 2.8 v oxuyur, buna görə seçimdən olduqca razıyam. İşlədikdə, dövrə təxminən 100 mA boşalır, ancaq bir oxu ölçümü bir neçə saniyədən çox çəkmir. Batareyanın nominal gərginliyi 3v olduğu üçün gərginliyi 9 volta çatdırmaq üçün DC-DC yüksəldici çevirici əlavə etdim və Vin pininə bağladım.

Ekranda batareya gərginliyinin göstərilməsi üçün analog girişdən (A2) istifadə etdim. Arduino analoq girişləri 0 ilə 5V arasında DC gərginliyini ölçmək üçün istifadə edilə bilər, lakin bu texnika kalibrləmə tələb edir. Kalibrləmə aparmaq üçün bir multimetrə ehtiyacınız olacaq. Əvvəlcə son batareyanızla (CR2) dövrə açın və kompüterdən USB gücünü istifadə etməyin; Arduino üzərindəki 5V -ni tənzimləyicidən ölçün (Arduino 5V pinində tapılır): bu gərginlik standart olaraq Arduino ADC istinad gərginliyi üçün istifadə olunur. İndi ölçülmüş dəyəri eskizə aşağıdakı kimi qoyun (güman ki, 5.023 oxudum):

gərginlik = ((uzun) cəmi / (uzun) NUM_SAMPLES * 5023) / 1024.0;

Eskizdə, orta hesabla 10 -dan çox nümunə olaraq gərginlik ölçümü alıram.

Addım 5: Şematik və Bağlantılar

Sxem və Əlaqələr
Sxem və Əlaqələr

Addım 6: Proqram təminatı

Ekran üçün, bu cür OLED ekranlar üçün çox çevik və güclü olan U8g2lib istifadə etdim, bu da geniş şrift seçiminə və yaxşı yerləşdirmə funksiyalarına imkan verdi.

ML8511 -dən gələn gərginlik oxunuşuna gəldikdə, ADC çeviricisi üçün əsas olaraq 3.3v Arduino istinad pinindən (1%ərzində dəqiq) istifadə etdim. Beləliklə, 3.3V pinində (A1-ə bağlayaraq) rəqəmsal çevrilmə analoqu edərək və sonra bu oxunuşu sensordan oxunuşla müqayisə edərək, VIN nə olursa olsun, əsl oxunuşu ekstrapolyasiya edə bilərik (3.4V -dən yuxarı olduğu müddətdə).

int uvLevel = averageAnalogRead (UVOUT); int refLevel = averageAnalogRead (REF_3V3); float outputVoltage = 3.3 / refLevel * uvLevel;

Tam kodu aşağıdakı linkdən yükləyin.

Addım 7: Qoşma Çantası

Qapaq qutusu
Qapaq qutusu

Ticari bir plastik qutuda düzbucaqlı pəncərəni əl ilə kəsməklə bağlı bir neçə (pis) sınaqdan sonra özüm üçün dizayn etmək qərarına gəldim. Beləliklə, bir CAD tətbiqi ilə bir qutu hazırladım və onu mümkün qədər kiçik tutmaq üçün CR2 batareyasını xaricdən arxa tərəfə (qutunun özünə yapışdırılmış batareya tutacağı ilə) quraşdırdım.

Qoşma qutusu üçün STL faylını aşağıdakı linkdən yükləyin.

Addım 8: Mümkün Gələcək Təkmilləşdirmələr

  • UV spektrometrindən istifadə edərək müxtəlif şərtlərdə real vaxtda UV indeksi dəyərlərini ölçün (UV spektrometrləri çox bahadır);
  • ML8511 -dən Arduino mikro nəzarətçisi ilə eyni vaxtda çıxışı qeyd edin;
  • ML8511 çıxışını geniş atmosfer şəraitində real vaxtda faktiki UVI dəyəri ilə əlaqələndirmək üçün alqoritm yazın.

Addım 9: Şəkil Qalereyası

Şəkil Qalereyası
Şəkil Qalereyası
Şəkil Qalereyası
Şəkil Qalereyası
Şəkil Qalereyası
Şəkil Qalereyası

Addım 10: Kreditlər

  • Carlos Orts:
  • Arduino forumu:
  • Elektronikaya Başlama:
  • U8g2lib:
  • Dünya Səhiyyə Təşkilatı, UV İndeksi:

Tövsiyə: