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

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

Processing визуелизација
Приказ вредности температуре и влажности у реалном времену.
📑 Садржај
🌡️ Шта је DHT11?
DHT11 је дигитални сензор који омогућава мерење:
- температуре ваздуха,
- релативне влажности ваздуха.
Сензор је веома популаран у образовању и почетним IoT пројектима јер је једноставан за употребу и не захтева сложену електронику. Arduino преко једног пина комуницира са DHT11 сензором и добија податке у дигиталном облику.

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

Принцип рада
Сензор шаље дигиталне податке Arduino плочи.
🧰 Потребна опрема
За ову вежбу потребно је следеће:
- Arduino Uno плоча,
- DHT11 сензор,
- breadboard плоча,
- повезне жице,
- USB кабл,
- рачунар са Arduino IDE и Processing окружењем.

Потребна опрема
Arduino Uno, DHT11, breadboard и повезне жице.

Breadboard
Омогућава брзо повезивање компоненти без лемљења.
🔌 Повезивање компоненти
DHT11 сензор обично има три или четири пина:
- VCC – напајање (5V),
- GND – маса,
- DATA – пин за комуникацију са Arduino плочом.
DATA пин сензора повезујемо на један од дигиталних пинова Arduino плоче (у примеру пин 2).

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

Реално коло
Практична реализација на 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 прима податке и приказује их у реалном времену.
📌 На тај начин добијамо једноставан систем за мерење и визуелизацију података.

Серијска комуникација
Arduino шаље податке Processing програму преко USB кабла.

Реално време
Температура и влажност се непрекидно ажурирају.
🚀 Могућа проширења пројекта
Након основне вежбе ученици могу да прошире пројекат:
- графичким приказом података,
- динамичким бар-графиком,
- упозорењима када температура пређе границу,
- чувањем података у CSV фајл,
- прављењем IoT система са ESP32 плочом.

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

IoT проширење
Слање података преко WiFi мреже помоћу ESP32 плоче.
⚠️ На шта треба обратити пажњу
- Проверити да ли су VCC и GND правилно повезани.
- Не повезивати Arduino на рачунар док коло није проверено.
- Уверити се да је инсталирана DHT библиотека.
- Проверити COM порт у Processing програму.
- Не користити предугачке жице јер могу изазвати шум.
🔗 Додатно читање
Уколико желите да детаљније научите основе рада са Arduino платформом, препоручује се да најпре прођете уводне лекције које објашњавају основне појмове, рад са микроконтролерима, повезивање компоненти и развој једноставних пројеката.
Температурни сензори
Додатна лекција о мерењу температуре помоћу Arduino платформе и различитих сензора.
Након савладавања ових лекција, ученици ће лакше разумети рад са серијском комуникацијом, Processing визуелизацијом и сложенијим IoT пројектима који користе више сензора и микроконтролера.
📚 Додатно учење
🔎 Продуби знање
Детаљније објашњење рада са Arduino платформом и сензорима:
🧪 Идеје за експеримент
- Прати промену температуре током дана
- Поређење вредности у различитим просторијама
- Додај вентилатор који се укључује при високој температури
🚀 Следећи корак
Покушај да направиш IoT систем са ESP32 који шаље податке на интернет.
🧠 Мини квиз
1. Шта мери DHT11 сензор?
2. Како Arduino добија податке од DHT11?
3. Шта Processing ради у овој вежби?
4. У ком облику Arduino шаље податке?