Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi

Merjenje temperature na Arduino z DHT11

Delite vsebino na Facebooku
Delite vsebino na Twitterju
  V tokratni lekciji bomo uporabili senzor DHT11 ter ga priklopili na Arduino ter z njim merili trenutno temperaturo in vlago.
 
 
1
 
 
 
 
2
 
 

Za priklop senzorja potrebujemo tri žice.

Prvi dve žici sta namenjeni za napajanje senzorja.

Senzor deluje na 5V, zato ga lahko priklopimo direktno na Arduino na 5V izhod (oranžna žica).

Drugo žico priklopimo na GND (bela žica).

 
 
3
 
 

Tretja žica je namenjena sprejemanju signala o trenutni temperaturi in vlagi.

Priklopimo jo na poljuben digitalni izhod. V mojem primeru sem izbral izhod 2 (zelena žica).

 
 
4
 
 

Vse tri žice sedaj priklopimo na senzor.

Senzor ima na eni strani oznako S, ki predstavlja pin za sprejemanje signala (zelena) ter znak -, na katerega priklopimo povezavo iz GND (oranžna).

Tako ostane samo še srednji pin, kamor priklopimo 5V napajanje (rdeča).

 
 
 
5
 
 

Sedaj bo potrebno opraviti še nekaj programiranja, da bo senzor pravilno deloval.

Za delovanje senzorja moramo najprej naložiti knjižnico DHT11, ki jo lahko dobite na naslovu www.zmaga.com/prenosi/DHT11.zip

Knjižnjico je potrebno odpakirati v mapo libraries, kjer imate nameščen program Arduino.

 
 
6
 
 

Sedaj je potrebno sestaviti še program.

Na začetku programa najprej dodamo kodo:

#include

#define DHT11PIN 2
dht11 DHT11;


Z include smo vključili našo knjižnico.
Z define smo določili, da signal sprejemamo na pinu 2.
Z dht11 pa smo ustvarili nov objekt, preko katerega bomo brali temperaturo.

 
 
7
 
 

V okviru funkcije setup omogočimo izpisovanje na serijski izhod ter izpišemo verzijo knjižnice.

void setup() {               
  Serial.begin(9600);
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION); 
}

 
 
8
 
 

V glavni zanki loop sedaj beremo in izpisujemo temperaturo:

void loop() {
  int chk = DHT11.read(DHT11PIN);
  Serial.print("Branje senzorja: ");
  switch (chk)
  {
    case 0: Serial.println("OK"); break;
    case -1: Serial.println("Checksum error"); break;
    case -2: Serial.println("Time out error"); break;
    default: Serial.println("Unknown error"); break;
  } 
 
  Serial.print("Vlaga (%): ");
  Serial.println((float)DHT11.humidity, 2);

  Serial.print("Temperatura (oC): ");
  Serial.println((float)DHT11.temperature, 2);

  delay(2000);       // wait for a second
}

 
 
9
 
 

Program sedaj prevedemo in naložimo na Arduino s klikom na puščico v levem zgornjem kotu.

Ko je program uspešno naložen, v desnem zgornjem kotu vklopimo serijski vmesnik.

 
 
10
 
 
 
 
Komentiraj
 
 
 
 
 
8.4.2013, 7:08
Zelo so mi všeč te Arduino lekcije.
Upam, da bo v kratkem še več podobnih.
 
 
 
 
8.4.2013, 12:10
Bo več podobnih. Imam sedaj doma cel kup senzorjev in bom za vsakega pripravil lekcijo.

Drugače pa, če koda zanima omenjeni senzor, se po moje najceneje dobi na DealExtream:
http://dx.com/p/arduino-digital-temperat....
 
 
 
 
8.4.2013, 12:43
Jaz imam namen pripraviti Arduino lekcijo z Ping))) senzorjem...,ki bo verjetno prišel po pošti malu.
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!