UV index meter
সূর্যের আল্ট্রাভায়োলেট অর্থ্যাৎ অতিবেগুনী রশ্মির অপকারীতা সম্পর্কে নতুন করে আর কী বলার আছে? এই রশ্মিটি শুধু স্কিন ক্যান্সারের জন্যই দায়ী নয়, রোদে পুড়ে ত্বক কালো হয়ে যাওয়া, বয়সের আগেই ত্বকে ভাঁজ পড়ে যাবার মতো সমস্যার মূলেও থাকে এই আল্ট্রাভায়োলেট রশ্মি ।
UV index কী? : ইউভি এনডেক্স হলো একটি এস আই ইউনিট, যা একটি নির্দিষ্ট দিনে একটি নির্দিষ্ট ভৌগলিক অবস্থানে আল্ট্রাভায়োলেট রশ্মির তীব্রতা নির্দেশ করে। ইউভি ইনডেক্স যত বেশি, আল্ট্রাভায়োলেট রশ্মি ঠিক ততটাই তীব্র এবং আমাদের শরীরের জন্য ক্ষতিকর। তাই ইউভি ইন্ডেক্স জানা আমাদের জন্য জরুরী। শুধু ব্যক্তিগত সতর্কতার জন্যই নয়, শিল্প ও গবেষনার যেসব ক্ষেত্রে আল্ট্রাভায়োলেট রশ্মি ব্যবহার করা হয় সেসব ক্ষেত্রেও ইউভি ইনডেক্স মনিটর করা প্রয়োজন।
এই এক্সপেরিমেন্টে আমরা একটি ইউভি ইনডেক্স মিটার তৈরী করব। প্রজেক্টটি তৈরীতে আমরা ব্যবহার করব Gravity Analog UV Sensor V2। এই সেন্সরটি ২০০ থেকে ৩৭০ ন্যানোমিটার পর্যন্ত আল্ট্রাভায়োলেট রশ্মি সনাক্ত করতে সক্ষম। এর ভোল্টেজ আউটপুট অ্যানালগ, যা ইউভি ইনডেক্সের সাথে সাথে বৃদ্ধি পায়।
প্রয়োজনীয় যন্ত্রপাতি | পরিমাণ | প্রোডাক্ট লিংক |
Gravity Analog UV Sensor V2 | 1 | এখানে ক্লিক করুন |
Arduino Nano V3.0 (China) | 1 | এখানে ক্লিক করুন |
OLED Display White I2C 128×32 0.91″ | 1 | এখানে ক্লিক করুন |
Rechargeable Battery Unit | 1 | এখানে ক্লিক করুন |
Breadboard | 1 | এখানে ক্লিক করুন |
Male to male jumpers | 7 | এখানে ক্লিক করুন |
Male to female jumpers | 2 | এখানে ক্লিক করুন |
সার্কিট কানেকশনঃ
Arduino Nano এবং OLED Display এর মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।
Arduino Nano V3.0 (China) | OLED Display White I2C 128×32 0.91″ |
5V | VCC |
GND | GND |
A5 | SCL |
A4 | SDA |
Arduino Nano এবং UV Sensor এর মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।
Arduino Nano V3.0 (China) | Gravity Analog UV Sensor V2 |
5V | Red(VCC) |
GND | Black(GND) |
A0 | Blue(Output) |
রিচার্জেবল ব্যাটারি ইউনিটের ব্যাটারি দুইটি সিরিজ করুন এবং সিরিজ করা ব্যাটারি দিয়ে সার্কিটে পাওয়ার দিন।
Rechargeable battery unit | Arduino Nano V3.0 (China) |
+ | Vin |
– | GND |
কোডঃ
কোড লেখা ও কম্পাইল করার জন্য অবশ্যই নিচের লাইব্রেরিগুলো অবশ্যই ইন্সটল করা থাকতে হবে।
লাইব্রেরি ইন্সটল করার পর নিচের কোডটি কম্পাইল করুন। তারপর আরডুইনোতে আপলোড করুন।
/*
# This Sample code is for testing the UV Sensor .
#Connection:
VCC-5V
GND-GND
OUT-Analog pin 0
*/
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32, &Wire);
void setup()
{
Serial.begin(9600);// open serial port, set the baud rate to 9600 bps
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(1000);
display.clearDisplay();
display.display();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
}
void loop()
{
int sensorValue;
int analogValue = analogRead(0);//connect UV sensors to Analog 0
if (analogValue<20)
{
sensorValue = 0;
}
else
{
sensorValue = 0.05*analogValue-1;
}
Serial.println(sensorValue);//print the value to serial
display.clearDisplay();
display.setCursor(0,0);
display.print("UV Index=");
display.print(sensorValue);
display.setCursor(0,15);
if(sensorValue<3)
{
display.print("Hat,sunglass &");
display.setCursor(0,25);
display.print("sunscreen needed.");
}
else if(sensorValue==3 || sensorValue==4)
{
display.print("Apply sunscreen");
display.setCursor(0,25);
display.print("every 2 hours.");
}
else if(sensorValue==5 || sensorValue==6)
{
display.print("Apply sunscreen");
display.setCursor(0,25);
display.print("Stay in shade");
}
else if(sensorValue>=7 && sensorValue<10)
{
display.print("Use sunglass & SPF 30+ sunscreen");
}
else if(sensorValue>=10)
{
display.print("Stay indoor if possible.");
}
display.display();
delay(200);
}
সেন্সরটি যে স্থানে রাখা হবে সেই স্থানের ইউভি ইনডেক্স ওলেড ডিসপ্লেতে দেখা যাবে। সেই সাথে দেখা যাবে আপনার করনীয়সমূহ।