กลับไปหน้ารวมไฟล์
arduino-uv-index-meter-5beb21.md

การวิเคราะห์รังสี: เครื่องวัดดัชนี UV ด้วย Arduino

เซ็นเซอร์แสงทั่วไป (LDR) ตรวจจับแสงที่มองเห็นได้ มันไม่สามารถตรวจจับรังสีแสงอาทิตย์ที่เป็นอันตรายได้เลย เครื่องวัดดัชนี UV ด้วย Arduino ใช้ photodiodes ชนิด gallium nitride พิเศษเพื่อวัดรังสี UV-A และ UV-B ที่มองไม่เห็นและเป็นอันตรายจากดวงอาทิตย์ โดยคำนวณและแสดงผลดัชนีความปลอดภัยตามมาตรฐานขององค์การอนามัยโลก (WHO) ลงบนหน้าจอที่มีความคมชัดสูงโดยตรง

stock_counter_lcd_setup_1772706693516.png

ฟิสิกส์ของ ML8511 UV Sensor

โมดูล GY-ML8511 UV Sensor เป็นหนึ่งในอุปกรณ์ analog ที่ไวที่สุดที่ใช้ในงานวิศวกรรม Arduino

  1. ตัวเซ็นเซอร์จะส่งออกแรงดันไฟฟ้า analog ที่สัมพันธ์โดยตรงกับความเข้มข้นมหาศาลของสเปกตรัมแสงที่มองไม่เห็นในช่วง 280-390nm (ซึ่งเป็นรังสีที่ก่อให้เกิดอาการผิวไหม้แดดที่ร้ายแรงที่สุด)
  2. การคำนวณไม่ใช่ 0-1023 ตัวเซ็นเซอร์มี datasheet curve ที่เข้มงวด: 1 Volt = 0 UV Index 2.8 Volts = 15 UV Index (สภาพแสงแดดทะเลทรายที่รุนแรงจนทำให้ผิวพุพอง)
  3. กับดักการสอบเทียบ 3.3V: ความผิดพลาดที่ใหญ่ที่สุดที่ programmers ทำคือการอ้างอิงกับสาย 5V เริ่มต้นของ Uno ML8511 ต้องการแรงดันไฟฟ้า 3.3V ที่แน่นอน คุณต้องเชื่อมต่อ jumper จากขา 3.3V ของ Arduino ตรงไปยังขา A1 analog-reference เพื่อใช้เป็นจุดอ้างอิงควบคุมทางคณิตศาสตร์!

Floating Point Output และ Map Function

เนื่องจากข้อมูล analog มีลักษณะเป็นเส้นตรง แต่ถูกบีบอัดให้อยู่ในสเกลแรงดันไฟฟ้าที่เล็กมาก (1.0V ถึง 2.8V) การคำนวณแบบ integer ทั่วไปจึงใช้ไม่ได้ผล

  • คุณต้องสร้างฟังก์ชัน mapfloat() แบบกำหนดเอง! ฟังก์ชัน map() มาตรฐานของ C++ จะส่งคืนเฉพาะจำนวนเต็มเท่านั้น (เช่น Index: 4)
  • เราต้องการการวิเคราะห์ที่แม่นยำด้วยทศนิยม (เช่น Index: 4.8! Alert: ผิวหนังเสียหายภายใน 12 นาที!)
float mapfloat(float x, float in_min, float in_max, float out_min, float out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
  • โค้ดจะคำนวณค่าทศนิยมและส่งคำเตือนโดยตรงไปยัง I2C OLED SSD1306 Display

ฮาร์ดแวร์สำหรับการตรวจวัดแสงอาทิตย์

  • Arduino Uno/Nano
  • ML8511 หรือ VEML6070 I2C UV Light Sensor Module
  • 0.96" I2C OLED หรือ 16x2 LCD Display
  • กล่องหุ้มที่พิมพ์ด้วย 3D และใช้พลังงานจากแบตเตอรี่ เพื่อให้คุณสามารถพกพาเซ็นเซอร์ไปยังชายหาดหรือหันไปทางดวงอาทิตย์ได้โดยตรง! (คำเตือน: ควรวางกระจกควอตซ์ใสแบบพิเศษปิดรูของกล่องหุ้มไว้ พลาสติกอะคริลิกหรือกระจกหน้าต่างทั่วไปจะบล็อกรังสี UV ได้ถึง 90% และจะทำให้เซ็นเซอร์ไม่สามารถทำงานได้อย่างสมบูรณ์!)

ข้อมูล Frontmatter ดั้งเดิม

title: "Arduino UV index meter"
description: "Solar analytics! Build an advanced photodiode analysis tool by converting raw nano-ampere currents from specialized Ultraviolet ML8511 sensors into an absolute, WHO-standardized UV Index rating."
category: "Sensors & Environment"
difficulty: "Advanced"