বায়ুমন্ডলের তাপমাত্রা এবং আর্দ্রতা মাপা বিভিন্ন কাজেই আমাদের প্রয়োজন পড়ে। যেমন ওয়েদার স্টেশনে আবহাওয়ার রিপোর্ট তৈরী, এসির তাপমাত্রা কন্ট্রোল করা, গ্রীনহাউজ তৈরি, ফ্রিজ তৈরী, ইনকিউবেটরে উপযুক্ত তাপমাত্রা ও আর্দ্রতা বজায় রাখা ইত্যাদি আরও অনেক গুরুত্বপুর্ণ কাজ।
এই এক্সপেরিমেন্টে আমরা আরডুইনো উনো দিয়ে তাপমাত্রা ও আর্দ্রতামাপক যন্ত্র তৈরী করব। এই কাজটি করতে আমরা আরডুইনোর সাথে ব্যবহার করব DHT22 temperature and Humidity sensor. সেন্সর দিয়ে পরিমাপকৃত তাপমাত্রা একটি এলসিডিতে দেখানো হবে।
প্রজেক্টটি করতে নিচের যন্ত্রপাতিগুলো প্রয়োজন ।
প্রয়োজনীয় যন্ত্রপাতি | পরিমাণ |
Arduino UNO R3 | 1 |
DHT22 temperature and humidity sensor | 1 |
16×2 LCD with header | 1 |
Varible resistor 103 | 1 |
Male to male jumpers | 12 |
Male to female jumpers | 3 |
Breadboard | 1 |
Arduino UNO | Grove temperature & humidity sensor |
Digital 8 | DOUT |
VCC | VCC |
GND | GND |
Arduino UNO | LCD |
VCC | VDD,A |
GND | VSS,K,RW |
11 | E |
12 | RS |
5 | D4 |
4 | D5 |
3 | D6 |
2 | D7 |
এলসিডির V0 পিনে ভ্যারিয়েবল পটের তিন নং পিনকে সংযুক্ত করি। পটের অপর দুই পিন VCC ও GND এর সাথে সংযুক্ত করি। আমাদের সার্কিট তৈরি।
পাওয়ার দেবার পর ডিসপ্লেতে তাপমাত্রা ও আর্দ্রতা দেখা যাবে। কোডঃপ্রথমে এই লিংক থেকে Grove temperature & humidity sensor এর লাইব্রেরি ডাউনলোড করতে হবে এবং ইন্সটল করতে হবে। তারপর আরডুইনোতে নিচের কোডটি আরডুইনোতে আপলোড করলেই তৈরী হয়ে যাবে আমাদের তাপমাত্রা এবং আর্দ্রতামাপক যন্ত্র। এলসিডিতে ঘরের তাপমাত্রা ও আর্দ্রতা দেখা যাবে, আরডুইনোর সিরিয়াল মনিটরেও দেখা যাবে। কানেকশনে কোনো সমস্যা হলে সেটাও এলসিডিতে দেখা যাবে।
//Temperature and humidity meter #include "DHT.h" #include <LiquidCrystal.h> #define DHTPIN 8 // what pin we're connected to LiquidCrystal lcd(12, 11, 5, 4, 3, 2); DHT dht(DHTPIN, DHT22); void setup() { lcd.begin(16, 2); delay(2000); } void loop() { switch(dht.read()) { case DHT_OK: lcd.clear(); lcd.setCursor(0,0); lcd.print("Humidity:"); lcd.print(dht.humidity); lcd.print("%"); lcd.setCursor(0,1); lcd.print("Temp:"); lcd.print(dht.temperature); lcd.print((char)223); lcd.print("C"); break; case DHT_ERR_CHECK: lcd.clear(); lcd.setCursor(0,0); lcd.print("Please connect"); lcd.setCursor(0,1); lcd.print("DOUT pin"); break; case DHT_ERR_TIMEOUT: lcd.clear(); lcd.setCursor(0,0); lcd.print("Timout error"); break; default: lcd.clear(); lcd.setCursor(0,0); lcd.print("Please check"); lcd.setCursor(0,1); lcd.print("sensor's wires"); break; } delay(2000); }