📡
✓ Beginner Friendly

IoT Sensor Systems
পড়ো তোমার চারপাশ

DHT11, LDR, আর Ultrasonic সেন্সর দিয়ে Arduino প্রোগ্রাম করা শেখো — একদম শূন্য থেকে। বাস্তব কোড, সার্কিট, আর হাতে-কলমে প্রজেক্ট সহ।

⏱️ ~45 min read
💻 3 Live Code Examples
🔬 5 Mini Projects
🏆 Beginner Level
1

IoT ও সেন্সর — মূল ধারণা

IoT (Internet of Things) মানে হলো এমন একটি সিস্টেম যেখানে ডিভাইসগুলো নিজেরাই ডেটা সংগ্রহ করে, প্রসেস করে এবং ইন্টারনেটের মাধ্যমে শেয়ার করে। এই পুরো প্রক্রিয়ার শুরু হয় একটি সেন্সর থেকে।

সেন্সর হলো একটি মেশিনের "ইন্দ্রিয়"। DHT11 তাপমাত্রা অনুভব করে, LDR আলো দেখে, আর Ultrasonic সেন্সর দূরত্ব মাপে।

বাস্তব জগৎতাপ / আলো / দূরত্ব
সেন্সরDHT11 / LDR / HC-SR04
Arduinoপ্রসেস করে
আউটপুটLCD / Cloud / Alert
💡 মূল সূত্র
Sense → Process → Act — এই তিনটি ধাপ বুঝলেই যেকোনো IoT সিস্টেম ডিজাইন করা যায়।
2

প্রয়োজনীয় উপকরণ

এই টিউটোরিয়ালের জন্য নিচের কম্পোনেন্টগুলো দরকার। সব মিলিয়ে খরচ ৳৬০০–৯০০ এর মধ্যে।

কম্পোনেন্ট কাজ দাম (আনুমানিক) স্তর
Arduino Uno R3 মেইন কন্ট্রোলার ৳ ৩৫০–৫০০ সহজ
DHT11 সেন্সর তাপমাত্রা ও আর্দ্রতা ৳ ৬০–১২০ সহজ
LDR (ফটোরেজিস্টর) আলোর তীব্রতা ৳ ৫–১৫ সহজ
HC-SR04 আলট্রাসোনিক দূরত্ব ৳ ৮০–১৫০ সহজ
Breadboard + Jumper Wire সার্কিট সংযোগ ৳ ১০০–১৮০ সহজ
10kΩ রেজিস্টর ×2 পুল-আপ / ভোল্টেজ ডিভাইডার ৳ ২–৫ সহজ
⚠️ কেনার টিপস
Jontro-Tantrik Lab-এ Arduino Starter Kit পাওয়া যায় যেখানে উপরের সব কম্পোনেন্ট একসাথে আছে। WhatsApp-এ অর্ডার করো →
3

DHT11 — তাপমাত্রা ও আর্দ্রতা পড়া

DHT11 একটি ডিজিটাল সেন্সর যা একই সাথে তাপমাত্রা (0–50 °C) এবং আপেক্ষিক আর্দ্রতা (20–90%) পরিমাপ করে। মাত্র তিনটি পিন — VCC, GND, DATA — এটাই এর সবচেয়ে বড় সুবিধা।

পিন কানেকশন

DHT11 VCC→ Arduino 5V
DHT11 GND→ Arduino GND
DHT11 DATA→ Arduino Pin 2
10kΩ (pull-up)VCC ↔ DATA মাঝে
💡 Pull-up রেজিস্টর কেন দরকার?
DHT11-এর DATA পিনটি ডিফল্টে "floating" থাকে, অর্থাৎ কোনো নির্দিষ্ট ভোল্টেজ থাকে না। 10kΩ রেজিস্টর সেটিকে HIGH (5V)-এ স্থির রাখে, ফলে ভুল রিডিং আসে না।

লাইব্রেরি ইনস্টল করো

Arduino IDE-তে যাও: Sketch → Include Library → Manage Libraries

সার্চ করো DHT sensor library by Adafruit এবং Install করো। সাথে Adafruit Unified Sensor-ও।

কোড

C++ · Arduino dht11_basic.ino
// ══ 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 খোলো — প্রতি ২ সেকেন্ডে রিডিং দেখতে পাবে।

4

LDR — আলোর তীব্রতা পড়া

LDR (Light Dependent Resistor) একটি এনালগ সেন্সর। আলো বাড়লে রেজিস্ট্যান্স কমে, আলো কমলে রেজিস্ট্যান্স বাড়ে। Arduino এর analogRead() ফাংশন 0 থেকে 1023 মানের মধ্যে ভ্যালু দেয়।

পিন কানেকশন (Voltage Divider)

LDR (এক পা)→ Arduino 5V
LDR (অন্য পা)→ Arduino A0
10kΩ রেজিস্টরA0 ↔ GND-এর মাঝে
⚠️ Voltage Divider সার্কিট
LDR + 10kΩ রেজিস্টর মিলে একটি Voltage Divider তৈরি হয়। A0 পিনে যায় মাঝখানের junction-টি। LDR-এর রেজিস্ট্যান্স পরিবর্তনের সাথে সাথে ওই junction-এর ভোল্টেজ পরিবর্তিত হয়।

কোড — অটো নাইট মোড LED

C++ · Arduino ldr_night_mode.ino
// ══ 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);
}
5

HC-SR04 — দূরত্ব পরিমাপ

HC-SR04 আলট্রাসোনিক তরঙ্গ ব্যবহার করে দূরত্ব মাপে। এটি একটি ultrasound pulse পাঠায় এবং সেটি বাধা থেকে প্রতিফলিত হয়ে ফিরে আসতে কতক্ষণ লাগলো সেটি মাপে। এই সময় থেকে দূরত্ব বের করা যায়: দূরত্ব = (সময় × শব্দের গতি) / 2

পিন কানেকশন

VCC→ Arduino 5V
GND→ Arduino GND
TRIG→ Arduino Pin 9
ECHO→ Arduino Pin 10

কোড

C++ · Arduino ultrasonic_distance.ino
// ══ 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);
}
6

তিনটো একসাথে — Smart Room Monitor

তিনটো সেন্সর একসাথে লাগিয়ে একটি সম্পূর্ণ "স্মার্ট রুম মনিটরিং" সিস্টেম তৈরি করি।

C++ · Arduino smart_room_monitor.ino
// ══ 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("+--------------------------+");
}
🚀 পরবর্তী ধাপ
এই কোড ESP32-তে চালালে WiFi দিয়ে সব ডেটা সরাসরি ThingSpeak বা Firebase-এ পাঠানো যাবে। সেটা নিয়ে পরবর্তী টিউটোরিয়ালে বিস্তারিত দেখাবো।
7

৫টি Mini Project আইডিয়া

এখন পর্যন্ত যা শিখলে তা দিয়ে এই প্রজেক্টগুলো বানাতে পারবে:

PROJECT 01

🌡️ ডিজিটাল থার্মোমিটার

DHT11 দিয়ে তাপমাত্রা পড়ো এবং LCD-তে দেখাও।

PROJECT 02

💡 অটো স্মার্ট লাইট

LDR দিয়ে আলো সেন্স করে LED অটোমেটিক চালু/বন্ধ।

PROJECT 03

🅿️ স্মার্ট পার্কিং সেন্সর

HC-SR04 দিয়ে গাড়ির দূরত্ব মেপে buzzer বাজাও।

PROJECT 04

🌿 প্ল্যান্ট মনিটর

তাপমাত্রা ও আর্দ্রতা দেখে গাছের পরিচর্যার সংকেত দাও।

PROJECT 05

🏠 Smart Room Dashboard

তিনটো সেন্সর একসাথে Serial Plotter-এ রিয়েলটাইম গ্রাফ দেখাও।

8

নিজেকে যাচাই করো

📝 Quiz · 1 / 3
DHT11 দুটি রিডিংয়ের মাঝে কমপক্ষে কতটুকু বিরতি দরকার?
A ৫০০ মিলিসেকেন্ড
B ২০০০ মিলিসেকেন্ড (২ সেকেন্ড)
C ১০ সেকেন্ড
D কোনো বিরতি লাগে না
📝 Quiz · 2 / 3
Arduino-তে analogRead() ফাংশন কোন রেঞ্জে মান রিটার্ন করে?
A 0 থেকে 255
B 0 থেকে 512
C 0 থেকে 1023
D 0 থেকে 5000
📝 Quiz · 3 / 3
HC-SR04 সেন্সর কোন প্রযুক্তি ব্যবহার করে দূরত্ব মাপে?
A ইনফ্রারেড রশ্মি
B লেজার
C আলট্রাসোনিক তরঙ্গ
D রেডিও ওয়েভ
9

প্রশ্ন ও উত্তর

DHT11 আর DHT22-এর মধ্যে পার্থক্য কী?
DHT22 আরও বেশি accurate — তাপমাত্রা রেঞ্জ -40 থেকে 80°C এবং রেজোলিউশন 0.1°C। DHT11 শুধু 0–50°C রেঞ্জে কাজ করে, কিন্তু দাম কম। বিগিনারদের জন্য DHT11 যথেষ্ট।
সেন্সর রিডিং কি ক্লাউডে পাঠানো যাবে?
হ্যাঁ। Arduino Uno-তে ESP8266 WiFi module যোগ করলে বা সরাসরি ESP32 ব্যবহার করলে ThingSpeak, Firebase, বা Blynk-এ ডেটা পাঠানো যাবে। পরবর্তী টিউটোরিয়ালে এটা দেখাবো।
Arduino IDE কোথায় পাবো?
arduino.cc/en/software থেকে বিনামূল্যে ডাউনলোড করা যায়। Windows, Mac, Linux সব OS-এ চলে।
সার্কিট ভুল হলে Arduino নষ্ট হয়ে যাবে?
সাধারণত না। Arduino Uno-তে over-current protection আছে। তবে সরাসরি 5V বা 12V পিনে লাগানো থেকে সাবধান থাকো।
👨‍🏫

Instructor

👨‍💻
Md. Anowar Hossain
Founder & Principal Research Engineer, Jontro-Tantrik Lab

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-এর পরবর্তী পর্বে।

💬