kategorije: Sklopovi mikrokontrolera
Broj pregledavanja: 9996
Komentari na članak: 0

Mjerenje temperature i vlažnosti na Arduinu - izbor metoda

 

Da biste stvorili kućnu meteorološku stanicu ili termometar, morate naučiti kako upariti Arduino ploču i uređaj za mjerenje temperature i vlage. Mjerenjem temperature može se baviti pomoću termistora ili digitalnog senzora DS18B20, ali za mjerenje vlažnosti koristite složenije uređaje - senzore DHT11 ili DHT22. U ovom ćemo vam članku pokazati kako mjeriti temperaturu i vlažnost pomoću Arduino i ovih senzora.

Mjerenje temperature i vlažnosti na Arduinu - izbor metoda

Mjerenje termistora

Najlakši način za određivanje temperature je korištenje termorezistor, Ovo je vrsta otpornika čiji otpor ovisi o temperaturi okoline. Postoje termistori s pozitivnim i negativnim temperaturnim koeficijentom otpora - PTC (također se nazivaju i pozistori) i NTC termistori, respektivno.

Na donjem grafikonu možete vidjeti temperaturnu ovisnost otpora. Isprekidana linija pokazuje ovisnost negativnog TCS-termistora (NTC), a čvrste crte za pozitivni TCS-termistor (PTC).

Temperaturna ovisnost otpora

Što vidimo ovdje? Prvo što vam padne na pamet jeste da je raspored PTC termistora pokvaren i da će biti teško ili nemoguće izmjeriti brojne temperaturne vrijednosti, ali raspored za NTC termistor je manje ili više ujednačen, iako je očito nelinearan. Što to znači? Korištenjem NTC termistora lakše je mjeriti temperaturu, jer je lakše saznati funkciju kojom se mijenjaju njegove vrijednosti.

Da biste pretvorili temperaturu u otpornost, možete ručno uzeti vrijednosti, ali to je teško učiniti kod kuće i potreban vam je termometar za određivanje stvarnih vrijednosti temperature medija. U podatkovnim listovima nekih komponenti takva je tablica dana, na primjer, za niz NTC termistora iz Vishaya.

Datashit Vishay TC Termistori

Tada možete organizirati prijevod kroz grane koristeći funkciju ako ... else ili prekidač. Međutim, ako u tablicama podataka nema takvih tablica, morate izračunati funkciju kojom se otpor mijenja s porastom temperature.

Da bismo opisali ovu promjenu, postoji Steinhart-Hartova jednadžba.

Steinhart-hart-ova jednadžba

pri čemu su A, B i C konstante termistora određene mjerenjem tri temperature s razlikom od najmanje 10 stupnjeva Celzija. Istovremeno, različiti izvori ukazuju da su za tipični NTC termistor od 10 kΩ jednaki:

Konstante termistora

B - beta koeficijent, izračunava se na temelju mjerenja otpora za dvije različite temperature. Navedeno je ili u podatkovnom listu (kao što je prikazano u nastavku) ili se izračunava neovisno.

B - beta koeficijent iz tablice podataka

U ovom slučaju, B je naznačen u obliku:

beta omjer

To znači da je koeficijent izračunat na temelju podataka dobivenih prilikom mjerenja otpora na temperaturama od 25 i 100 stupnjeva Celzijusa, a to je najčešća opcija. Tada se izračunava po formuli:

B = (ln (R1) - ln (R2)) / (1 / T1 - 1 / T2)

Donji je tipični dijagram povezivanja termistora s mikrokontrolerom.

Dijagram povezivanja termistora sa mikrokontrolerom

Ovdje je R1 konstantni otpornik, termistor je spojen na izvor napajanja, a podaci se uzimaju iz srednje točke između njih, dijagram uvjetno pokazuje da se signal dovodi na pin A0 - ovo analogni ulaz Arduino.

Dijagram povezivanja termistora sa mikrokontrolerom

Za izračunavanje otpora termistora možete koristiti sljedeću formulu:

R termistora = R1⋅ ((Vcc / Voutput) -1)

Da biste prevodili na jezik razumljiv za arduino, morate imati na umu da arduino ima 10-bitni ADC, tako da će maksimalna digitalna vrijednost ulaznog signala (napon 5V) biti 1023. Tada, uvjetno:

  • Dmax = 1023;

  • D je stvarna vrijednost signala.

zatim:

R termistora = R1⋅ ((Dmax / D) −1)

Sada to koristimo za izračunavanje otpora, a zatim izračunavamo temperaturu termistora pomoću beta jednadžbe na programskom jeziku za Arduino, Skica će biti takva:

skica

DS18B20

Još je popularnije za mjerenje temperature s.Arduino je pronašao digitalni senzor DS18B20. Komunicira s mikrokontrolerom putem sučelja s 1 žicom, na jednu žicu možete spojiti nekoliko senzora (do 127), a za pristup njima morat ćete saznati ID svakog senzora.

Napomena: trebali biste znati ID čak i ako koristite samo 1 senzor.

DS18B20 digitalni senzor

Dijagram povezivanja senzora ds18b20 za Arduino izgleda ovako:

Dijagram povezivanja senzora ds18b20 na Arduino
Dijagram povezivanja senzora ds18b20 na Arduino

Tu je i način parazitskog napajanja - dijagram njegove veze izgleda ovako (trebaju vam dvije žice umjesto tri):

Dijagram povezivanja senzora Arduino

U ovom načinu rada nije zajamčen ispravan rad pri mjerenju temperature iznad 100 Celzijevih stupnjeva.

Digitalni senzor temperature DS18B20 sastoji se od čitavog niza čvorova, kao i bilo koji drugi SIMS. Njegov unutarnji uređaj možete pogledati u nastavku:

Digitalni temperaturni senzor DS18B20

Da biste radili s njom, morate preuzeti biblioteku Onewire za Arduino, a za sam senzor preporučuje se korištenje biblioteke DallasTemperature.

skica

Ovaj primjer koda prikazuje osnove rada s 1 temperaturnim senzorom, rezultat u stupnjevima Celzijusa se nakon svakog očitavanja emitira kroz serijski ulaz.


DHT11 i DHT22 - senzori vlage i temperature

DHT11 i DHT22 - senzori vlage i temperature

Ovi su senzori popularni i često se koriste za mjerenje vlažnosti i temperature okoline. U tablici u nastavku naveli smo njihove glavne razlike.

 
DHT11
DHT22
Određivanje vlage u rasponu
20-80%
0-100%
Točnost mjerenja
5%
2-5%
Određivanje temperature
0 ° C do + 50 ° C
-40 ° C do + 125 ° C
Točnost mjerenja
2,5%
plus ili minus 0,5 Celzijevih stupnjeva
Učestalost biranja
1 put u sekundi
1 put u 2 sekunde
Dijagram povezivanja za osjetnik vlage na arduino

Dijagram povezivanja je vrlo jednostavan:

  • 1 zaključak - prehrana;

  • 2 zaključak - podaci;

  • 3 zaključak - ne koristi se;

  • 4 zaključak - opća žica.

Ako je vaš senzor napravljen u obliku modula, on će imati tri izlaza, ali nije potreban otpornik - već je lemljen na ploču.

Dijagram povezivanja senzora vlage u obliku modula za arduino

Za rad nam treba knjižnica dht.h, ona nije u standardnom skupu, pa je trebate preuzeti i instalirati u mapu knjižnice u mapi s arduino IDE. Podržava sve senzore u ovoj obitelji:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Primjer upotrebe biblioteke:

Primjer upotrebe knjižnice

zaključak

Danas je stvaranje vlastite stanice za mjerenje temperature i vlage vrlo jednostavno zahvaljujući platformi Arduino. Trošak takvih projekata je 3-4 stotine rubalja. Može se koristiti za trajanje baterije, a ne za izlaz na računalo prikaz znakova (opisali smo ih u nedavnom članku), tada možete sastaviti prijenosni uređaj koji će se koristiti i kod kuće i u automobilu. Napišite u komentarima što biste još željeli naučiti o jednostavnim domaćim zanatima na arduinu!

Pogledajte i ovu temu:Popularni senzori za Arduino - veza, dijagrami, skice

Pogledajte također na elektrohomepro.com:

  • Najpopularniji senzori za Arduino
  • Spajanje analognih senzora na Arduino, očitavanje senzora
  • Primjena Wheatstone mosta za mjerenje neelektričnih veličina
  • Senzori temperature. Drugi dio Termistori
  • Senzori vlažnosti - kako su raspoređeni i rade

  •