HOW TO: Arduino senzori temperature

HOW TO: Arduino senzori temperature

Izvedbe senzora temperature, kako ih koristiti i njihova točnost

Senzori temperature vrlo su rasprostranjeni i moguće ih je nabaviti u cjenovnom rasponu od 25 kn do 100 kn. Ima li razlike?

O senzorima temperature priča se puno, koriste se puno, a svi jamče njihovu točnost. Senzori temperature nalaze se posvuda, bez njih ne bismo znali unutarnju/vanjsku temperaturu, ali ne bismo znali ni temperaturu naših komponenti unutar računala.

Temperatura je fizikalna veličina kojom se iskazuje zagrijanost tijela, a izražava se u Kelvinima, Celzijevima i Fahrenheitima. Dok nije bilo poluvodičke tehnologije, temperatura se mjerila pomoću živinih termometara.

Živa (Hg) ima visok temperaturni koeficijent rastezanja, i ako je stavimo u usku prozirnu cjevčicu i zagrijemo, ona će se širiti, a visina stupca žive će rasti;

 

graf 1

Na tom principu rade živini termometri (na dnu uske staklene cjevčice nalazi se kuglasti spremnik žive koji griju zrak, tekućina ili koža, živa se širi i penje, a staklena cjevčica je baždarena, tj. ima skalu).

U povijesti se koristilo više vrsta uređaja za mjerenje temperature, ali najzastupljeniji za kućnu upotrebu bio je živin termometar. U današnje vrijeme postoje vrlo točni digitalni senzori koji su velikim dijelom izbacili živine termometre iz igre zbog niže cijene i veće točnosti (ne smijemo zaboraviti da je živa otrovan element!).

 

Postoji također više vrsta digitalnih senzora temperature, npr. poluvodički senzori, NTC/PTC otpornici itd.

NTC i PTC otpornici su otpornici koji mijenjaju vrijednost otpora ovisno o temperaturi, nisu preosjetljivi, a jednostavni su za korištenje pa ćemo ih upotrijebiti tamo gdje nam je bitno otkriti povećanje/smanjenje temperature, a ne njen točan iznos.

Spajanje SHT21 s Arduinom

 

NTC predstavlja kraticu za „Negative temperature coefficient“, tj. povećanjem temperature vrijednost otpora pada. PTC je kratica od „Positive temperature coefficient“, tj. povećanjem temperature vrijednost otpora raste.

Kao što je i vidljivo sa slike, NTC i PTC otpornici mogu mjeriti veliki raspon temperatura. Karakteristika nije linearna, stoga je teško (ali ne i nemoguće) ručno baždariti takav senzor za neko točnije mjerenje.

NTC i PTC otpornici dosta su povoljni te smo nabavili 5 komada za cijenu od 9 kn. Njihove karakteristike su: 10 kΩ, 1% tolerancija i 2.5x4 mm dimenzije.

 

NTC se može spojiti s Arduinom pomoću otpornika spojenog u seriju što čini naponsko dijelilo. Otpor NTC-a i otpornika iznosi 10 kΩ.

Kako je napajanje s Arduina 5 V, a otpornik i NTC dijele taj napon jer su spojeni u seriju, lako možemo izmjeriti napon na NTC-u i izračunati njegov otpor.

formula 1

 

Iz navedenog izraza (naponsko djelilo) možemo iskazati izraz za RNTC, tj. otpor NTC-a:

formula 2

 

Kako NTC ima padajuću nelinearnu karakteristiku, za što točniji izračun temperature koristi se Steinhart-Hart jednadžba. Jednadžba se koristi kao matematička aproksimacija uz pomoć otpora i temperature.

formula 3

 

Steinhart-Hart jednadžba: A, B i C su Steinhart-Hartovi koeficijenti koji ovise o NTC otporniku; ako nisu zadani, potrebno ih je izračunati.

Kako imamo tri koeficijenta, imat ćemo tri jednadžbe s tri nepoznanice, što znači da će biti potrebna tri mjerenja temperature i otpora (potrebno je zagrijavati otpornik).

formula 4

formula 5

formula 6

 

Nakon izračuna svih pomoćnih koeficijenata, sada je moguće odrediti A, B i C.

formula 7

 

Dobivši Steinhart-Hartove koeficijente, možemo ih uvrstiti u početnu jednadžbu i dobiti izraz za izračun temperature pomoću otpora. To ćemo prepustiti vama, ali ako vam zapne, cijeli kôd možete potražiti na Github stranici Vidilab-a.

 

Također postoje i senzori temperature koje možemo kupiti gotove i spojiti na naš Arduino. Takvi senzori su vrlo lagani za korištenje, ali i točniji, za razliku od NTC i PTC otpornika. Cijene im se kreću u rasponu od 25 kn do 100 kn.

Na sebi sadrže A/D pretvornik i sve potrebno za rad, kako bi krajnji korisnik trebao spojiti samo napajanje i pin za komunikaciju s Arduinom. Ima li razlike među njima? Naravno, kao što je i za očekivati: jeftiniji senzori imaju ograničena i mala područja mjerenja koja često rezultiraju nestabilnim očitavanjima.

Za primjer ćemo navesti DHT11 senzor koji je moguće nabaviti za 25 kn i prvi je na našem popisu senzora temperature. U tablici ćemo prikazati njegove karakteristike.

DHT11

arduino vaga

 

Kao što je i vidljivo iz tablice karakteristika, DHT11 ima ograničeno područje mjerenja i relativno velika odstupanja prilikom očitavanja, ali ga je zato vrlo lako koristiti i može poslužiti samo kao orijentacijski senzor ili školski primjer.

DHT11 koristi temperaturno osjetljiv otpornik za mjerenje temperature (objasnili smo zašto nije najbolje rješenje za mjerenje temperature) i tiskanu pločicu s vodovima raspoređenim kao „češalj“ za mjerenje vlažnosti zraka, što također nije najbolje rješenje, ali funkcionira.

 

Vrijeme reagiranja senzora iznosi 1 s pa spada u sporije senzore. Očitavanje temperature može se vršiti svake sekunde, što može usporavati ostatak vašeg uređaja ako se ne napravi posebna petlja.

DHT11 ima svog „velikog brata“ imena DHT22 koji je točniji od DHT11, ali i skuplji (za čak 80 kn). DHT22 koristi kapacitivni senzor, što rezultira većom točnošću i većim vremenom reagiranja (2 sekunde). Senzor također posjeduje i 8-bitni mikrokontroler pomoću kojeg se vrši kalibriranje svakog očitanja.

DHT22

DHT22v

 

Naravno, postoje i industrijski senzori koje je moguće spojiti na Arduino. Oni spadaju u klasu najtočnijih i najskupljih senzora, mogu se nabaviti po cijeni od 80 kn do 100 kn. SHT21 je primjer takvog senzora temperature koji također mjeri i relativnu vlažnost zraka poput DHT familije.

SHT21 je još složeniji od DHT22, proizvodi se u Švicarskoj i raspolaže visokom preciznošću, pouzdanošću i točnošću mjerenja. Kako je riječ o industrijskom senzoru, osigurana je njegova dugotrajnost i stabilnost.

NTC otpornici

sht21v

 

Senzor komunicira s Arduinom I2C komunikacijom, što znači da će biti spojen na SDA i SCL pinove (A4 i A5 Arduino). Vrijeme očitavanja temperature kreće se u rasponu od 5 sekundi do 30 sekundi i ovisi o materijalu kojem mjerimo temperaturu.ž

shema spajanja SHT21 s Arduinom

 

Kod

SHT21 koristi svoj library koji je potrebno ubaciti u Arduino program. Library možete pronaći na GitHub stranici Vidilaba. Temperatura i vlažnost su decimalne vrijednosti, stoga ih pohranjujemo u float tip varijable.

U void setupu je potrebno započeti komunikaciju s I2C (Wire) i serial komunikaciju (ispisat ćemo vrijednosti na serijal monitor).

U void loopu uz pomoć naredbe sht.getTemperature(); očitavamo vrijednost temperature sa senzora i pohranjujemo u varijablu „Temperatura“ varijable float. Pomoću naredbe sht.getHumidity(); očitavamo vrijednost vlažnosti zraka i također pohranjujemo u varijablu tipa float naziva „Vlaznost“. Zatim ispisujemo vrijednosti temperature i vlažnosti preko serial monitora i dodjeljujemo mjerne jedinice (C za Celzijeve stupnjeve i % za relativnu vlažnost zraka). Vrijednosti su razmaknute i odvojene, a svako novo očitavanje se ispisuje u novi red (razlika naredbe print i println, println ispisuje u novi red, a print sve u isti red). Vremenska odgoda (delay) iznosi minimalno 85 milisekundi (zbog 14-bitnog očitavanja).

#include “SHT21.h”

SHT21 sht;

float Temperatura, Vlaznost;

void setup() {

Wire.begin();

Serial.begin(9600);

}

void loop() {

Temperatura = sht.getTemperature();

Vlaznost = sht.getHumidity();

Serial.print(“Temperatura: “);

Serial.print(Temperatura);

Serial.print(“ C; “);

Serial.print(“ Vlaznost: “);

Serial.print(Vlaznost);

Serial.println(“ % “);

delay(85);

}

 

 

Ocijeni sadržaj
(0 glasova)

// VIDI X radionice

Newsletter prijava


Kako izgleda naš posljednji newsletter pogledajte na ovom linku.
Copyright © by: VIDI-TO d.o.o. Sva prava pridržana.