IoT ও সেন্সর — মূল ধারণা
IoT (Internet of Things) মানে হলো এমন একটি সিস্টেম যেখানে ডিভাইসগুলো নিজেরাই ডেটা সংগ্রহ করে, প্রসেস করে এবং ইন্টারনেটের মাধ্যমে শেয়ার করে। এই পুরো প্রক্রিয়ার শুরু হয় একটি সেন্সর থেকে।
সেন্সর হলো একটি মেশিনের "ইন্দ্রিয়"। DHT11 তাপমাত্রা অনুভব করে, LDR আলো দেখে, আর Ultrasonic সেন্সর দূরত্ব মাপে।
প্রয়োজনীয় উপকরণ
এই টিউটোরিয়ালের জন্য নিচের কম্পোনেন্টগুলো দরকার। সব মিলিয়ে খরচ ৳৬০০–৯০০ এর মধ্যে।
| কম্পোনেন্ট | কাজ | দাম (আনুমানিক) | স্তর |
|---|---|---|---|
| Arduino Uno R3 | মেইন কন্ট্রোলার | ৳ ৩৫০–৫০০ | সহজ |
| DHT11 সেন্সর | তাপমাত্রা ও আর্দ্রতা | ৳ ৬০–১২০ | সহজ |
| LDR (ফটোরেজিস্টর) | আলোর তীব্রতা | ৳ ৫–১৫ | সহজ |
| HC-SR04 | আলট্রাসোনিক দূরত্ব | ৳ ৮০–১৫০ | সহজ |
| Breadboard + Jumper Wire | সার্কিট সংযোগ | ৳ ১০০–১৮০ | সহজ |
| 10kΩ রেজিস্টর ×2 | পুল-আপ / ভোল্টেজ ডিভাইডার | ৳ ২–৫ | সহজ |
DHT11 — তাপমাত্রা ও আর্দ্রতা পড়া
DHT11 একটি ডিজিটাল সেন্সর যা একই সাথে তাপমাত্রা (0–50 °C) এবং আপেক্ষিক আর্দ্রতা (20–90%) পরিমাপ করে। মাত্র তিনটি পিন — VCC, GND, DATA — এটাই এর সবচেয়ে বড় সুবিধা।
পিন কানেকশন
লাইব্রেরি ইনস্টল করো
Arduino IDE-তে যাও: Sketch → Include Library → Manage Libraries
সার্চ করো DHT sensor library by Adafruit এবং Install করো। সাথে Adafruit Unified Sensor-ও।
কোড
// ══ Jontro-Tantrik Lab | IoT Sensor Series ══
// Tutorial: DHT11 Temperature & Humidity Reading
#include <DHT.h>
#define DHT_PIN 2 // DATA পিন
#define DHT_TYPE DHT11 // সেন্সরের মডেল
DHT dht(DHT_PIN, DHT_TYPE);
void setup() {
Serial.begin(9600);
dht.begin();
Serial.println("=== DHT11 Ready ===");
}
void loop() {
delay(2000); // DHT11-এর জন্য ২ সেকেন্ড বিরতি জরুরি
float humidity = dht.readHumidity();
float temperature = dht.readTemperature(); // ডিফল্ট সেলসিয়াস
if (isnan(humidity) || isnan(temperature)) {
Serial.println("ERROR: Sensor read failed!");
return;
}
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
Serial.println("--------------------");
}
Upload করার পর Ctrl+Shift+M চেপে Serial Monitor খোলো — প্রতি ২ সেকেন্ডে রিডিং দেখতে পাবে।
LDR — আলোর তীব্রতা পড়া
LDR (Light Dependent Resistor) একটি এনালগ সেন্সর। আলো বাড়লে রেজিস্ট্যান্স কমে, আলো কমলে রেজিস্ট্যান্স বাড়ে।
Arduino এর analogRead() ফাংশন 0 থেকে 1023 মানের মধ্যে ভ্যালু দেয়।
পিন কানেকশন (Voltage Divider)
কোড — অটো নাইট মোড LED
// ══ Jontro-Tantrik Lab | LDR Auto Night Mode ══
#define LDR_PIN A0 // এনালগ পিন
#define LED_PIN 13 // বিল্ট-ইন LED
#define THRESHOLD 400 // ৪০০-এর নিচে = অন্ধকার
void setup() {
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int lightVal = analogRead(LDR_PIN);
Serial.print("Light Level: ");
Serial.println(lightVal);
if (lightVal < THRESHOLD) {
digitalWrite(LED_PIN, HIGH); // অন্ধকারে LED জ্বালাও
Serial.println(">> Night Mode: ON");
} else {
digitalWrite(LED_PIN, LOW); // আলোয় LED নেভাও
Serial.println(">> Day Mode: OFF");
}
delay(500);
}
HC-SR04 — দূরত্ব পরিমাপ
HC-SR04 আলট্রাসোনিক তরঙ্গ ব্যবহার করে দূরত্ব মাপে। এটি একটি ultrasound pulse পাঠায় এবং সেটি বাধা থেকে প্রতিফলিত হয়ে ফিরে আসতে কতক্ষণ লাগলো সেটি মাপে। এই সময় থেকে দূরত্ব বের করা যায়: দূরত্ব = (সময় × শব্দের গতি) / 2
পিন কানেকশন
কোড
// ══ Jontro-Tantrik Lab | HC-SR04 Distance Sensor ══
#define TRIG_PIN 9
#define ECHO_PIN 10
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
long getDistance() {
// TRIG পিনে ১০ মাইক্রোসেকেন্ডের pulse পাঠাও
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// ECHO পিনে pulse-এর সময় মাপো (microseconds)
long duration = pulseIn(ECHO_PIN, HIGH);
// দূরত্ব: (সময় × ০.০৩৪) / ২ = সেন্টিমিটার
return (duration * 0.034) / 2;
}
void loop() {
long dist = getDistance();
Serial.print("Distance: ");
Serial.print(dist);
Serial.println(" cm");
if (dist < 20) {
Serial.println(">> ALERT: Object too close!");
}
delay(200);
}
তিনটো একসাথে — Smart Room Monitor
তিনটো সেন্সর একসাথে লাগিয়ে একটি সম্পূর্ণ "স্মার্ট রুম মনিটরিং" সিস্টেম তৈরি করি।
// ══ Jontro-Tantrik Lab | Smart Room Monitor ══
// Sensors: DHT11 + LDR + HC-SR04
#include <DHT.h>
#define DHT_PIN 2
#define DHT_TYPE DHT11
#define LDR_PIN A0
#define TRIG_PIN 9
#define ECHO_PIN 10
DHT dht(DHT_PIN, DHT_TYPE);
long getDistance() {
digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
return (pulseIn(ECHO_PIN, HIGH) * 0.034) / 2;
}
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.println("=== Smart Room Monitor v1.0 ===");
}
void loop() {
delay(2000);
float temp = dht.readTemperature();
float hum = dht.readHumidity();
int light = analogRead(LDR_PIN);
long dist = getDistance();
Serial.println("+--------------------------+");
Serial.print("| Temp: "); Serial.print(temp); Serial.println(" C");
Serial.print("| Humidity: "); Serial.print(hum); Serial.println(" %");
Serial.print("| Light: "); Serial.println(light);
Serial.print("| Distance: "); Serial.print(dist); Serial.println(" cm");
// স্বয়ংক্রিয় সতর্কতা
if (temp > 35.0) Serial.println("| [!] HIGH TEMPERATURE!");
if (hum > 80.0) Serial.println("| [!] HIGH HUMIDITY!");
if (dist < 15) Serial.println("| [!] OBJECT DETECTED!");
Serial.println("+--------------------------+");
}
৫টি Mini Project আইডিয়া
এখন পর্যন্ত যা শিখলে তা দিয়ে এই প্রজেক্টগুলো বানাতে পারবে:
🌡️ ডিজিটাল থার্মোমিটার
DHT11 দিয়ে তাপমাত্রা পড়ো এবং LCD-তে দেখাও।
💡 অটো স্মার্ট লাইট
LDR দিয়ে আলো সেন্স করে LED অটোমেটিক চালু/বন্ধ।
🅿️ স্মার্ট পার্কিং সেন্সর
HC-SR04 দিয়ে গাড়ির দূরত্ব মেপে buzzer বাজাও।
🌿 প্ল্যান্ট মনিটর
তাপমাত্রা ও আর্দ্রতা দেখে গাছের পরিচর্যার সংকেত দাও।
🏠 Smart Room Dashboard
তিনটো সেন্সর একসাথে Serial Plotter-এ রিয়েলটাইম গ্রাফ দেখাও।
নিজেকে যাচাই করো
analogRead() ফাংশন কোন রেঞ্জে মান রিটার্ন করে?প্রশ্ন ও উত্তর
Instructor
M.Sc. in ETE from CUET. 10+ years of experience in embedded systems, IoT, and robotics. Former Research Assistant at University of Maine (USA) and CUET. Trained hundreds of students across Bangladesh in hands-on hardware development.
পরবর্তী ধাপে যেতে প্রস্তুত?
ESP32 দিয়ে WiFi-এ ডেটা পাঠাও — IoT Sensor Series-এর পরবর্তী পর্বে।