Регионални центар за таленте "Михајло Пупин"

 

Вежба: Мерење температуре и влажности помоћу DHT11 сензора

У овој вежби ученици ће научити како да користе DHT11 сензор за мерење температуре и влажности ваздуха помоћу Arduino Uno микроконтролерске плоче. Поред самог мерења, подаци ће бити послати на рачунар преко серијске комуникације и приказани у реалном времену помоћу алата Processing.

Ово је једна од основних вежби у оквиру радионица примењене електронике и креативног програмирања, јер повезује:

  • рад са сензорима,
  • Arduino програмирање,
  • серијску комуникацију,
  • визуелизацију података,
  • обраду података у реалном времену.
Arduino Uno i DHT11 senzor

Arduino + DHT11

Повезивање сензора температуре и влажности са Arduino Uno плочом.

Processing vizuelizacija temperature i vlažnosti

Processing визуелизација

Приказ вредности температуре и влажности у реалном времену.

 

 

🌡️ Шта је DHT11?

DHT11 је дигитални сензор који омогућава мерење:

  • температуре ваздуха,
  • релативне влажности ваздуха.

Сензор је веома популаран у образовању и почетним IoT пројектима јер је једноставан за употребу и не захтева сложену електронику. Arduino преко једног пина комуницира са DHT11 сензором и добија податке у дигиталном облику.

DHT11 senzor temperature i vlažnosti

DHT11 сензор

Мери температуру и влажност ваздуха.

Princip rada DHT11 senzora

Принцип рада

Сензор шаље дигиталне податке Arduino плочи.

 

🧰 Потребна опрема

За ову вежбу потребно је следеће:

  • Arduino Uno плоча,
  • DHT11 сензор,
  • breadboard плоча,
  • повезне жице,
  • USB кабл,
  • рачунар са Arduino IDE и Processing окружењем.
Oprema za DHT11 vežbu

Потребна опрема

Arduino Uno, DHT11, breadboard и повезне жице.

Breadboard povezivanje DHT11 senzora

Breadboard

Омогућава брзо повезивање компоненти без лемљења.

 

🔌 Повезивање компоненти

DHT11 сензор обично има три или четири пина:

  • VCC – напајање (5V),
  • GND – маса,
  • DATA – пин за комуникацију са Arduino плочом.

DATA пин сензора повезујемо на један од дигиталних пинова Arduino плоче (у примеру пин 2).

Šema povezivanja DHT11 senzora sa Arduino Uno

Шема повезивања

Повезивање DHT11 сензора са Arduino Uno плочом.

Realno povezivanje DHT11 senzora

Реално коло

Практична реализација на breadboard плочи.

 

💻 Arduino програм

Arduino очитава температуру и влажност и затим шаље податке рачунару преко серијске комуникације.


#include <DHT.h>

// Pin na koji je povezan DATA pin senzora
#define DHTPIN 2

// Tip senzora
#define DHTTYPE DHT11

// Kreiranje DHT objekta
DHT dht(DHTPIN, DHTTYPE);

void setup() {

  // Pokretanje serijske komunikacije
  Serial.begin(9600);

  // Pokretanje senzora
  dht.begin();
}

void loop() {

  // Očitavanje temperature
  float temperature = dht.readTemperature();

  // Očitavanje vlažnosti
  float humidity = dht.readHumidity();

  // Provera da li je očitavanje uspešno
  if (isnan(temperature) || isnan(humidity)) {

    Serial.println("Greška pri očitavanju sa DHT11 senzora!");
    return;
  }

  // Slanje podataka Processing programu
  Serial.print(temperature);
  Serial.print(",");

  Serial.println(humidity);

  // Pauza između očitavanja
  delay(1000);
}

📟 Објашњење Arduino програма

Програм најпре укључује библиотеку DHT.h која омогућава једноставну комуникацију са DHT11 сензором.

У функцији setup() покреће се серијска комуникација и иницијализује сензор.

Унутар функције loop() Arduino:

  • очитава температуру,
  • очитава влажност,
  • проверава да ли је дошло до грешке,
  • шаље податке Processing програму.

Подаци се шаљу у облику:


24.5,58.0

Први број представља температуру, а други влажност ваздуха.

 

🎨 Processing програм

Processing прима податке са Arduino плоче и приказује их у реалном времену.


import processing.serial.*;

Serial myPort;

String data;

float temp, hum;

void setup() {

  size(400, 200);

  // Povezivanje sa serijskim portom
  myPort = new Serial(this, Serial.list()[0], 9600);
}

void draw() {

  background(255);

  fill(0);

  textSize(20);

  // Prikaz temperature
  text("Temperature: " + temp + " °C", 50, 80);

  // Prikaz vlažnosti
  text("Humidity: " + hum + " %", 50, 120);

  // Provera da li postoje podaci
  if (myPort.available() > 0) {

    // Čitanje jednog reda teksta
    data = myPort.readStringUntil('\n');

    // Provera validnosti podataka
    if (data != null && data.contains(",")) {

      // Razdvajanje temperature i vlažnosti
      String[] values = split(trim(data), ",");

      if (values.length == 2) {

        temp = float(values[0]);

        hum = float(values[1]);
      }
    }
  }
}

🖥️ Објашњење Processing програма

Processing програм чита податке које Arduino шаље преко USB кабла.

Када Arduino пошаље:


24.5,58.0

Processing:

  • раздваја вредности,
  • једну користи за температуру,
  • другу за влажност,
  • и приказује их на екрану.

На овај начин ученици могу у реалном времену да прате промене температуре и влажности.

 

⚡ Како систем функционише?

📌 DHT11 сензор мери температуру и влажност ваздуха.

📌 Arduino очитава вредности са сензора и шаље их рачунару.

📌 Processing прима податке и приказује их у реалном времену.

📌 На тај начин добијамо једноставан систем за мерење и визуелизацију података.

Serijska komunikacija Arduino i Processing

Серијска комуникација

Arduino шаље податке Processing програму преко USB кабла.

Prikaz podataka u realnom vremenu

Реално време

Температура и влажност се непрекидно ажурирају.

 

🚀 Могућа проширења пројекта

Након основне вежбе ученици могу да прошире пројекат:

  • графичким приказом података,
  • динамичким бар-графиком,
  • упозорењима када температура пређе границу,
  • чувањем података у CSV фајл,
  • прављењем IoT система са ESP32 плочом.
Grafik temperature i vlažnosti

Графички приказ

Динамички приказ вредности кроз графике и анимације.

ESP32 IoT sistem za merenje temperature

IoT проширење

Слање података преко WiFi мреже помоћу ESP32 плоче.

 

⚠️ На шта треба обратити пажњу

  • Проверити да ли су VCC и GND правилно повезани.
  • Не повезивати Arduino на рачунар док коло није проверено.
  • Уверити се да је инсталирана DHT библиотека.
  • Проверити COM порт у Processing програму.
  • Не користити предугачке жице јер могу изазвати шум.

 

🔗 Додатно читање

Уколико желите да детаљније научите основе рада са Arduino платформом, препоручује се да најпре прођете уводне лекције које објашњавају основне појмове, рад са микроконтролерима, повезивање компоненти и развој једноставних пројеката.

Увод у Arduino

Основни појмови, Arduino IDE, повезивање плоче и први програми.

Arduino и ESP32

Поређење платформи, могућности и избор одговарајућег микроконтролера.

Температурни сензори

Додатна лекција о мерењу температуре помоћу Arduino платформе и различитих сензора.

Након савладавања ових лекција, ученици ће лакше разумети рад са серијском комуникацијом, Processing визуелизацијом и сложенијим IoT пројектима који користе више сензора и микроконтролера.

 

📚 Додатно учење

🔎 Продуби знање

Детаљније објашњење рада са Arduino платформом и сензорима:

Arduino сензори и мерење температуре

🧪 Идеје за експеримент

  • Прати промену температуре током дана
  • Поређење вредности у различитим просторијама
  • Додај вентилатор који се укључује при високој температури

🚀 Следећи корак

Покушај да направиш IoT систем са ESP32 који шаље податке на интернет.

🧠 Мини квиз

1. Шта мери DHT11 сензор?

2. Како Arduino добија податке од DHT11?

3. Шта Processing ради у овој вежби?

4. У ком облику Arduino шаље податке?


 

Вежба: Мерење температуре и влажности помоћу DHT11 сензора

У овој вежби ученици ће научити како да користе DHT11 сензор за мерење температуре и влажности ваздуха помоћу Arduino Uno микроконтролерске плоче. Поред самог мерења, подаци ће бити послати на рачунар преко серијске комуникације и приказани у реалном времену помоћу алата Processing.

Ово је једна од основних вежби у оквиру радионица примењене електронике и креативног програмирања, јер повезује:

  • рад са сензорима,
  • Arduino програмирање,
  • серијску комуникацију,
  • визуелизацију података,
  • обраду података у реалном времену.
Arduino Uno i DHT11 senzor

Arduino + DHT11

Повезивање сензора температуре и влажности са Arduino Uno плочом.

Processing vizuelizacija temperature i vlažnosti

Processing визуелизација

Приказ вредности температуре и влажности у реалном времену.

 

 

🌡️ Шта је DHT11?

DHT11 је дигитални сензор који омогућава мерење:

  • температуре ваздуха,
  • релативне влажности ваздуха.

Сензор је веома популаран у образовању и почетним IoT пројектима јер је једноставан за употребу и не захтева сложену електронику. Arduino преко једног пина комуницира са DHT11 сензором и добија податке у дигиталном облику.

DHT11 senzor temperature i vlažnosti

DHT11 сензор

Мери температуру и влажност ваздуха.

Princip rada DHT11 senzora

Принцип рада

Сензор шаље дигиталне податке Arduino плочи.

 

🧰 Потребна опрема

За ову вежбу потребно је следеће:

  • Arduino Uno плоча,
  • DHT11 сензор,
  • breadboard плоча,
  • повезне жице,
  • USB кабл,
  • рачунар са Arduino IDE и Processing окружењем.
Oprema za DHT11 vežbu

Потребна опрема

Arduino Uno, DHT11, breadboard и повезне жице.

Breadboard povezivanje DHT11 senzora

Breadboard

Омогућава брзо повезивање компоненти без лемљења.

 

🔌 Повезивање компоненти

DHT11 сензор обично има три или четири пина:

  • VCC – напајање (5V),
  • GND – маса,
  • DATA – пин за комуникацију са Arduino плочом.

DATA пин сензора повезујемо на један од дигиталних пинова Arduino плоче (у примеру пин 2).

Šema povezivanja DHT11 senzora sa Arduino Uno

Шема повезивања

Повезивање DHT11 сензора са Arduino Uno плочом.

Realno povezivanje DHT11 senzora

Реално коло

Практична реализација на breadboard плочи.

 

💻 Arduino програм

Arduino очитава температуру и влажност и затим шаље податке рачунару преко серијске комуникације.


#include <DHT.h>

// Pin na koji je povezan DATA pin senzora
#define DHTPIN 2

// Tip senzora
#define DHTTYPE DHT11

// Kreiranje DHT objekta
DHT dht(DHTPIN, DHTTYPE);

void setup() {

  // Pokretanje serijske komunikacije
  Serial.begin(9600);

  // Pokretanje senzora
  dht.begin();
}

void loop() {

  // Očitavanje temperature
  float temperature = dht.readTemperature();

  // Očitavanje vlažnosti
  float humidity = dht.readHumidity();

  // Provera da li je očitavanje uspešno
  if (isnan(temperature) || isnan(humidity)) {

    Serial.println("Greška pri očitavanju sa DHT11 senzora!");
    return;
  }

  // Slanje podataka Processing programu
  Serial.print(temperature);
  Serial.print(",");

  Serial.println(humidity);

  // Pauza između očitavanja
  delay(1000);
}

📟 Објашњење Arduino програма

Програм најпре укључује библиотеку DHT.h која омогућава једноставну комуникацију са DHT11 сензором.

У функцији setup() покреће се серијска комуникација и иницијализује сензор.

Унутар функције loop() Arduino:

  • очитава температуру,
  • очитава влажност,
  • проверава да ли је дошло до грешке,
  • шаље податке Processing програму.

Подаци се шаљу у облику:


24.5,58.0

Први број представља температуру, а други влажност ваздуха.

 

🎨 Processing програм

Processing прима податке са Arduino плоче и приказује их у реалном времену.


import processing.serial.*;

Serial myPort;

String data;

float temp, hum;

void setup() {

  size(400, 200);

  // Povezivanje sa serijskim portom
  myPort = new Serial(this, Serial.list()[0], 9600);
}

void draw() {

  background(255);

  fill(0);

  textSize(20);

  // Prikaz temperature
  text("Temperature: " + temp + " °C", 50, 80);

  // Prikaz vlažnosti
  text("Humidity: " + hum + " %", 50, 120);

  // Provera da li postoje podaci
  if (myPort.available() > 0) {

    // Čitanje jednog reda teksta
    data = myPort.readStringUntil('\n');

    // Provera validnosti podataka
    if (data != null && data.contains(",")) {

      // Razdvajanje temperature i vlažnosti
      String[] values = split(trim(data), ",");

      if (values.length == 2) {

        temp = float(values[0]);

        hum = float(values[1]);
      }
    }
  }
}

🖥️ Објашњење Processing програма

Processing програм чита податке које Arduino шаље преко USB кабла.

Када Arduino пошаље:


24.5,58.0

Processing:

  • раздваја вредности,
  • једну користи за температуру,
  • другу за влажност,
  • и приказује их на екрану.

На овај начин ученици могу у реалном времену да прате промене температуре и влажности.

 

⚡ Како систем функционише?

📌 DHT11 сензор мери температуру и влажност ваздуха.

📌 Arduino очитава вредности са сензора и шаље их рачунару.

📌 Processing прима податке и приказује их у реалном времену.

📌 На тај начин добијамо једноставан систем за мерење и визуелизацију података.

Serijska komunikacija Arduino i Processing

Серијска комуникација

Arduino шаље податке Processing програму преко USB кабла.

Prikaz podataka u realnom vremenu

Реално време

Температура и влажност се непрекидно ажурирају.

 

🚀 Могућа проширења пројекта

Након основне вежбе ученици могу да прошире пројекат:

  • графичким приказом података,
  • динамичким бар-графиком,
  • упозорењима када температура пређе границу,
  • чувањем података у CSV фајл,
  • прављењем IoT система са ESP32 плочом.
Grafik temperature i vlažnosti

Графички приказ

Динамички приказ вредности кроз графике и анимације.

ESP32 IoT sistem za merenje temperature

IoT проширење

Слање података преко WiFi мреже помоћу ESP32 плоче.

 

⚠️ На шта треба обратити пажњу

  • Проверити да ли су VCC и GND правилно повезани.
  • Не повезивати Arduino на рачунар док коло није проверено.
  • Уверити се да је инсталирана DHT библиотека.
  • Проверити COM порт у Processing програму.
  • Не користити предугачке жице јер могу изазвати шум.

 

🔗 Додатно читање

Уколико желите да детаљније научите основе рада са Arduino платформом, препоручује се да најпре прођете уводне лекције које објашњавају основне појмове, рад са микроконтролерима, повезивање компоненти и развој једноставних пројеката.

Увод у Arduino

Основни појмови, Arduino IDE, повезивање плоче и први програми.

Arduino и ESP32

Поређење платформи, могућности и избор одговарајућег микроконтролера.

Температурни сензори

Додатна лекција о мерењу температуре помоћу Arduino платформе и различитих сензора.

Након савладавања ових лекција, ученици ће лакше разумети рад са серијском комуникацијом, Processing визуелизацијом и сложенијим IoT пројектима који користе више сензора и микроконтролера.

 

📚 Додатно учење

🔎 Продуби знање

Детаљније објашњење рада са Arduino платформом и сензорима:

Arduino сензори и мерење температуре

🧪 Идеје за експеримент

  • Прати промену температуре током дана
  • Поређење вредности у различитим просторијама
  • Додај вентилатор који се укључује при високој температури

🚀 Следећи корак

Покушај да направиш IoT систем са ESP32 који шаље податке на интернет.

🧠 Мини квиз

1. Шта мери DHT11 сензор?

2. Како Arduino добија податке од DHT11?

3. Шта Processing ради у овој вежби?

4. У ком облику Arduino шаље податке?


Vrati se na vrh