আরডুইনো কোড এবং DHT11 তাপমাত্রা ও আর্দ্রতা সেন্সরের জন্য ভিডিও
এই টিউটোরিয়ালে, আমরা অন্বেষণ করব কীভাবে একটি Arduino-এর সাথে DHT11 তাপমাত্রা এবং আর্দ্রতা সেন্সর ব্যবহার করতে হয়। এই সেন্সরটি তাপমাত্রা এবং আর্দ্রতা উভয় পরিমাপের জন্য একটি কম খরচের বিকল্প, যা বিভিন্ন প্রকল্পের জন্য একটি নিখুঁত পছন্দ করে তোলে। আমরা ওয়্যারিং, প্রয়োজনীয় কোড এবং কীভাবে উপাদানগুলি সঠিক রিডিং প্রদানের জন্য মিথস্ক্রিয়া করে তা কভার করব।

এই টিউটোরিয়ালের শেষে, আপনি সেলসিয়াস, ফারেনহাইট এবং কেলভিনে তাপমাত্রা পড়তে সক্ষম হবেন, পাশাপাশি DHT11 সেন্সর থেকে আর্দ্রতার মাত্রাও পড়তে পারবেন। অতিরিক্ত স্পষ্টতার জন্য, নির্দেশিত টাইমস্ট্যাম্পে ভিডিওটি দেখতে ভুলবেন না (ভিডিওতে 00:00 এ)।
হার্ডওয়্যার ব্যাখ্যা
DHT11 সেন্সরটি তিনটি পিন নিয়ে গঠিত: গ্রাউন্ড, পাওয়ার এবং ডেটা। গ্রাউন্ড পিনটি Arduino-এর গ্রাউন্ডের সাথে সংযুক্ত হয়, যখন পাওয়ার পিনটি Arduino থেকে একটি 5V সরবরাহের সাথে সংযুক্ত হয়। ডেটা পিনটি Arduino এবং সেন্সরের মধ্যে যোগাযোগের জন্য দায়ী, যা Arduino-কে তাপমাত্রা এবং আর্দ্রতার মান পড়তে দেয়।
এই সেন্সরটি একটি ডিজিটাল আউটপুট ব্যবহার করে, যার অর্থ এটি Arduino-তে একটি সিরিয়াল ফরম্যাটে ডেটা পাঠায়। এতে তাপমাত্রা পরিমাপের জন্য একটি থার্মিস্টর এবং একটি ক্যাপাসিটিভ আর্দ্রতা সেন্সর রয়েছে। DHT11 এটি প্রাপ্ত অ্যানালগ সংকেতগুলিকে ডিজিটাল সংকেতে রূপান্তর করে, যা Arduino-এর মতো মাইক্রোকন্ট্রোলারগুলির জন্য ডেটা প্রক্রিয়া করা সহজ করে তোলে।
ডেটাশিট বিবরণ
| নির্মাতা | ASAIR |
|---|---|
| পার্ট নম্বর | DHT11 |
| লজিক/আইও ভোল্টেজ | 3.3–5.5 V |
| সাপ্লাই ভোল্টেজ | 3.3–5.5 V |
| আউটপুট কারেন্ট (প্রতি চ্যানেল) | 0.5 mA |
| পিক কারেন্ট (প্রতি চ্যানেল) | 2.5 mA |
| PWM ফ্রিকোয়েন্সি নির্দেশিকা | প্রযোজ্য নয় |
| ইনপুট লজিক থ্রেশহোল্ড | 0.3*VDD থেকে 0.7*VDD |
| ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন | প্রযোজ্য নয় |
| থার্মাল সীমা | 0 থেকে 60 °C |
| প্যাকেজ | 4-পিন DIP |
| নোট / ভেরিয়েন্ট | কম খরচ, ব্যবহার করা সহজ |
- অপারেটিং ভোল্টেজ 3.3V থেকে 5.5V এর মধ্যে।
- সর্বোচ্চ আউটপুট কারেন্ট 2.5 mA।
- তাপমাত্রার পরিসীমা 0 থেকে 60 ডিগ্রি সেলসিয়াস।
- আর্দ্রতার পরিসীমা 20% থেকে 90%।
- স্থিতিশীল রিডিংয়ের জন্য ডেটা পিনে পুল-আপ রেজিস্টর ব্যবহার করুন।
- ফ্লোটিং ইনপুট এড়াতে সঠিক সংযোগ নিশ্চিত করুন।
- পাওয়ার সংযোগ করার সময় বিপরীত পোলারিটি সম্পর্কে সতর্ক থাকুন।
- সঠিক ফলাফলের জন্য কমপক্ষে 1 সেকেন্ডের ব্যবধানে রিডিং নিন।
ওয়্যারিং নির্দেশাবলী

DHT11 সেন্সরটি আপনার Arduino-তে ওয়্যার করতে, এই ধাপগুলি অনুসরণ করুন:
প্রথমে, DHT11-এর গ্রাউন্ড পিন (সাধারণত কালো বা বাদামী) Arduino-তে গ্রাউন্ড (GND) এর সাথে সংযুক্ত করুন। এরপর, DHT11-এর পাওয়ার পিন (সাধারণত লাল) Arduino-তে 5V আউটপুটের সাথে সংযুক্ত করুন। অবশেষে, ডেটা পিন (সাধারণত হলুদ বা সাদা) Arduino-তে ডিজিটাল পিন 2 এর সাথে সংযুক্ত করুন। স্থিতিশীল যোগাযোগ নিশ্চিত করতে ডেটা পিন এবং পাওয়ার পিনের মধ্যে একটি পুল-আপ রেজিস্টর (প্রায় 10k ওহম) ব্যবহার করতে ভুলবেন না।
কোড উদাহরণ ও ওয়াকথ্রু
Arduino কোডে, আমরা DHT11 সেন্সরের জন্য প্রয়োজনীয় হেডার ফাইল অন্তর্ভুক্ত করে শুরু করি:
#include
এই লাইনটি লাইব্রেরি আমদানি করে যাতে DHT11 সেন্সরের সাথে ইন্টারঅ্যাক্ট করার জন্য প্রয়োজনীয় ফাংশন রয়েছে। এরপর, আমরা DHT11 ক্লাসের একটি ইনস্ট্যান্স তৈরি করি:
dht11 DHT11; // DHT11 এর অবজেক্ট তৈরি করুন
এই লাইনটি DHT11 অবজেক্টটি ইনিশিয়ালাইজ করে যা আমরা সেন্সর থেকে ডেটা পড়তে ব্যবহার করব। DHT11 এর সাথে সংযুক্ত পিনটি এভাবে সংজ্ঞায়িত করা হয়:
#define dhtpin 2 // DHT11 এর সাথে সংযোগের জন্য পিন সেট করুন
এটি সেন্সরের জন্য ডেটা পিনটি Arduino-তে পিন 2 এ সেট করে। loop() ফাংশনে, আমরা সেন্সর ডেটা পড়ি:
DHT11.read(dhtpin);// রিডিং শুরু করুন
এই লাইনটি রিডিং প্রক্রিয়া শুরু করে, এবং আর্দ্রতা এভাবে অ্যাক্সেস করা যায়:
int humidity = DHT11.humidity;// আর্দ্রতা পান
আর্দ্রতার মানটি humidity ভেরিয়েবলে সংরক্ষিত হয়, যা তারপর সিরিয়াল মনিটরে সেলসিয়াস, ফারেনহাইট এবং কেলভিনে রূপান্তরিত তাপমাত্রার মানগুলির সাথে প্রিন্ট করা হয়।
প্রদর্শন / কী আশা করবেন
যখন আপনি কোডটি চালান, তখন আপনার সিরিয়াল মনিটরে তাপমাত্রা এবং আর্দ্রতার রিডিং প্রদর্শিত হওয়া উচিত। তাপমাত্রার রিডিং প্রতি অর্ধ সেকেন্ডে আপডেট হবে (ভিডিওতে 00:00 এ)। যদি সেন্সরটি গরম বা ঠান্ডা করা হয়, আপনি লক্ষ্য করবেন মানগুলি সেই অনুযায়ী পরিবর্তিত হয়। সতর্ক থাকুন, কারণ DHT11-এর সর্বোচ্চ তাপমাত্রার সীমা 60 ডিগ্রি সেলসিয়াস; এটি অতিক্রম করলে ভুল রিডিং হতে পারে।
ভিডিও টাইমস্ট্যাম্প
- 00:00 - DHT11 সেন্সরের পরিচিতি
- 01:30 - ওয়্যারিং নির্দেশাবলী
- 02:15 - কোডের ওভারভিউ
- 03:00 - কোড চালানো এবং প্রত্যাশিত আউটপুট
/*
* This is the Arduino code for the DHT11 module to read temperature and humidity.
* This code can display temperature in:
* C is used to get Celsius.
* F is used to get Fahrenheit.
* K is used for Kelvin.
* Watch the video https://youtu.be/FjZBt6eU9b4
*
* Written by Ahmad Nejrabi for Robojax Video
* Date: January 4, 2018, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*/
// header file from GitHub: https://github.com/adidax/dht11
#include <dht11.h>
dht11 DHT11; // create object of DHT11
#define dhtpin 2 // set the pin to connect to DHT11
void setup() {
Serial.begin(9600);// setting up serial monitor
}
void loop() {
DHT11.read(dhtpin);// initialize the reading
//code for Robojax.com video
int humidity = DHT11.humidity;// get humidity
Serial.print(getTemp('C'));
Serial.print("C ");
Serial.print(getTemp('F'));
Serial.print("F ");
Serial.print(getTemp('K'));
Serial.print("K ");
Serial.print(" humidity:");
Serial.print (humidity);
Serial.println("% ");
Serial.println();
delay(500);
}
/*
* getTemp(char type)
* type character of upper case.
* C is used to get Celsius.
* F is used to get Fahrenheit.
* K is used for Kelvin.
*/
float getTemp(char type) {
float temp = (float)DHT11.temperature;//get temp
if(type =='F')
{
return temp * 1.8 + 32;// convert to Fahrenheit
}else if(type =='K')
{
return temp + 274.15;// convert to Kelvin
}else{
return temp;
}
}
সম্পদ ও রেফারেন্সসমূহ
-
বাহ্যিকDHT11 library on GitHubgithub.com
ফাইলসমূহ📁
আর্ডুইনো লাইব্রেরি (জিপ)
-
DHT22 Arduino Library
robojax-DHT22_library.zip0.01 MB
ফ্রিটজিং ফাইল
-
Temperature Sensor DHT11
Temperature Sensor DHT11.fzpz0.01 MB
ব্যবহারকারীর ম্যানুয়াল
-
DHT11 ব্যবহারকারীর ম্যানুয়াল
robojax-DHT11_manual.pdf0.82 MB
অন্যান্য ফাইলগুলি
-
DHT11 সহজ আরডুইনো লাইব্রেরি
robojax-DHT11-simple_library.zip