Dust density meter
Dust density meter হচ্ছে এমন একটি যন্ত্র যেটি প্রতি কিউবিক মিটার বাতাসে ধূলিকনার পরিমাণ নির্দেশ করে। এয়ার পিউরিফায়ার, এয়ার কোয়ালিটি কন্ট্রোলার, AQI মিটার ইত্যাদি যন্ত্রে ডাস্ট ডেনসিটি পরিমাপ করা প্রয়োজন হয়। এই টিউটোরিয়ালে আমরা Sharp GP2Y1010AU0F Compact optical Dust Sensor দিয়ে একটি Dust density meter তৈরী করব।
প্রয়োজনীয় যন্ত্রপাতি | পরিমাণ | প্রোডাক্ট লিংক |
Arduino Uno R3 | 1 | এখানে ক্লিক করুন |
Sharp GP2Y1010AU0F Compact optical Dust Sensor | 1 | এখানে ক্লিক করুন |
SPI LCD module | 1 | এখানে ক্লিক করুন |
Breadboard | 1 | এখানে ক্লিক করুন |
150 ohm ¼ watt resistor | 1 | এখানে ক্লিক করুন |
220 uf,16V capacitor | 1 | এখানে ক্লিক করুন |
Male to female jumpers | 9 | এখানে ক্লিক করুন |
Female to female jumper | 1 | এখানে ক্লিক করুন |
9V battery | 1 | এখানে ক্লিক করুন |
9V Battery Connector with Power Jack | 1 | এখানে ক্লিক করুন |
আরডুইনো এবং ডাস্ট সেন্সরের মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।
এসপিআই এলসিডি মডিউলকে আরডুইনোর সাথে সংযুক্ত করুন।
Arduino UNO-R3 | SPI LCD module |
5V | VCC |
GND | GND |
Clock | 13 |
Latch | 8 |
Data | 12 |
পুরো সেট আপটি দেখতে ছিল এরকমঃ
কোডঃ যেহেতু এই এক্সপেরিমেন্টে SPI LCD module ব্যবহৃত হচ্ছে, সেহেতু এই লাইব্রেরিটি প্রথমে ইন্সটল করতে হবে।
নিচের কোডটি কম্পাইল করে আরডুইনোতে আপলোড করুন।
//SH_CP->CLOCK->13
//ST_CP->LATCH->8
//DS->DATA->12
#include <LCD.h>
#include <LiquidCrystal_SR.h>
#include <LiquidCrystal.h>
LiquidCrystal_SR lcd(12, 13, 8);
int measurePin = 0; //Connect dust sensor to Arduino A0 pin
int ledPower = 2; //Connect 3 led driver pins of dust sensor to Arduino D2
int avgvalue=0;
int samplingTime = 280;
int deltaTime = 40;
int sleepTime = 9680;
float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
long sum=0;
void setup(){
Serial.begin(9600);
lcd.begin(16, 2); // set up the LCD's number of columns and rows:
lcd.clear(); // clear the screen
pinMode(ledPower,OUTPUT);
}
void loop(){
digitalWrite(ledPower,LOW); // power on the LED
delayMicroseconds(samplingTime);
voMeasured = analogRead(measurePin); // read the dust value
delayMicroseconds(deltaTime);
digitalWrite(ledPower,HIGH); // turn the LED off
delayMicroseconds(sleepTime);
// 0 - 5V mapped to 0 - 1023 integer values
// recover voltage
calcVoltage = voMeasured * (5.0 / 1024.0);
// linear eqaution taken from http://www.howmuchsnow.com/arduino/airquality/
// Chris Nafis (c) 2012
dustDensity = 0.17 * calcVoltage - 0.1;
Serial.print("Raw Signal Value (0-1023): ");
Serial.print(voMeasured);
Serial.print(" - Voltage: ");
Serial.print(calcVoltage);
Serial.print(" - Dust Density: ");
Serial.println(dustDensity); // unit: mg/m3
lcd.setCursor(0, 0);
lcd.print("Dust Density=");
lcd.setCursor(0, 1);
lcd.print(dustDensity); // unit: mg/m3
lcd.print("mg/m3 ");
delay(1000);
}
ডাস্ট ডেনসিটি এলসিডিতে দেখাবে।
ডাস্ট সেন্সরটির পেছনে একটি জলন্ত দেশলাই কাঠি ধরলে কিংবা জোরে ফুঁ দিলে এলসিডিতে প্রদর্শিত ভ্যালু বাড়তে থাকবে।