Kategorijos: Mikrovaldiklio grandinės
Peržiūrų skaičius: 9996
Straipsnio komentarai: 0

Temperatūros ir drėgmės matavimas Arduino - įvairių būdų pasirinkimas

 

Norėdami sukurti namų orų stotį ar termometrą, turite išmokti suporuoti „Arduino“ plokštę ir temperatūros bei drėgmės matavimo prietaisą. Temperatūros matavimą galima atlikti naudojant termistorių arba skaitmeninį jutiklį DS18B20, tačiau drėgmei matuoti naudoti sudėtingesnius įrenginius - jutiklius DHT11 arba DHT22. Šiame straipsnyje jums parodysime, kaip išmatuoti temperatūrą ir drėgmę naudojant „Arduino“ ir šiuos jutiklius.

Temperatūros ir drėgmės matavimas Arduino - įvairių būdų pasirinkimas

Termistoriaus matavimas

Lengviausias būdas nustatyti temperatūrą yra naudoti termistorius. Tai rezistoriaus tipas, kurio varža priklauso nuo aplinkos temperatūros. Yra termistoriai, turintys teigiamą ir neigiamą temperatūros pasipriešinimo koeficientus - atitinkamai PTC (dar vadinami posistoriais) ir NTC-termistoriai.

Žemiau esančiame grafike matote pasipriešinimo priklausomybę nuo temperatūros. Brūkšniuota linija parodo neigiamo TCS termistoriaus (NTC) priklausomybę ir vientisą liniją teigiamo TCS termistoriaus (PTC) atžvilgiu.

Atsparumo temperatūros priklausomybė

Ką mes čia matome? Pirmas dalykas, patraukiantis jūsų dėmesį, yra tai, kad PTC termistoriaus grafikas yra sulaužytas ir bus sunku ar neįmanoma išmatuoti daugybę temperatūros verčių, tačiau NTC termistoriaus grafikas yra daugiau ar mažiau vienodas, nors jis aiškiai netiesinis. Ką tai reiškia? Naudojant NTC termistorių, lengviau išmatuoti temperatūrą, nes lengviau sužinoti funkciją, kuria keičiasi jos vertės.

Norėdami konvertuoti temperatūrą į atsparumą, galite rankiniu būdu paimti reikšmes, tačiau tai sunku padaryti namuose ir jums reikia termometro, kad būtų galima nustatyti tikrąsias terpės temperatūros vertes. Kai kurių komponentų duomenų lapuose tokia lentelė pateikiama, pavyzdžiui, NHA termistorių iš Vishay serijai.

„Datashit Vishay TC“ termistoriai

Tada galite organizuoti vertimą per atšakas naudodami funkciją, jei ... kita, arba jungiklį. Tačiau, jei duomenų lentelėse tokių lentelių nėra, turite apskaičiuoti funkciją, kuria pasipriešinimas kinta didėjant temperatūrai.

Šiam pokyčiui apibūdinti egzistuoja Šteinharto-Harto lygtis.

Steinharto-harto lygtis

kur A, B ir C yra termistorinės konstantos, nustatomos matuojant tris temperatūras, kurių skirtumas yra bent 10 laipsnių Celsijaus. Tuo pačiu metu skirtingi šaltiniai nurodo, kad tipiškam 10 kΩ NTC termistoriui jie yra lygūs:

Termistorinės konstantos

B - beta koeficientas, jis apskaičiuojamas remiantis dviejų skirtingų temperatūrų varžos matavimais. Jis nurodomas arba duomenų lape (kaip parodyta žemiau), arba apskaičiuojamas nepriklausomai.

B - beta koeficientas iš duomenų lapo

Tokiu atveju B nurodoma forma:

beta santykis

Tai reiškia, kad koeficientas buvo apskaičiuotas remiantis duomenimis, gautais matuojant pasipriešinimą 25 ir 100 laipsnių Celsijaus temperatūroje, ir tai yra labiausiai paplitęs variantas. Tada jis apskaičiuojamas pagal formulę:

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

Tipiška termistoriaus prijungimo prie mikrovaldiklio schema parodyta žemiau.

Termistoriaus prijungimo prie mikrovaldiklio schema

Čia R1 yra nuolatinis rezistorius, termistorius yra prijungtas prie maitinimo šaltinio, o duomenys paimami iš vidurio taško tarp jų, diagrama sąlygiškai rodo, kad signalas tiekiamas į A0 kaištį - tai analoginis įėjimas Arduino.

Termistoriaus prijungimo prie mikrovaldiklio schema

Norėdami apskaičiuoti termistoriaus varžą, galite naudoti šią formulę:

Termistoriaus R = R1⋅ ((Vcc / Voutput) −1)

Norėdami išversti į „arduino“ suprantamą kalbą, turite atsiminti, kad „arduino“ yra 10 bitų ADC, taigi didžiausia įvesties signalo (5 V įtampa) skaitmeninė vertė bus 1023. Tada, sąlygiškai:

  • Dmax = 1023;

  • D yra tikroji signalo vertė.

Tada:

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

Dabar mes tai naudojame apskaičiuodami varžą ir tada apskaičiuodami termistoriaus temperatūrą, naudodami beta lygtį programavimo kalba Arduino. Eskizas bus toks:

Eskizas

DS18B20

Dar labiau populiaru matuoti temperatūrą su.„Arduino“ rado skaitmeninį jutiklį DS18B20. Jis susisiekia su mikrovaldikliu per 1 laido sąsają, prie vieno laido galite prijungti kelis jutiklius (iki 127), o norint juos pasiekti, turėsite sužinoti kiekvieno iš jutiklių ID.

Pastaba: turėtumėte žinoti ID, net jei naudojate tik 1 jutiklį.

DS18B20 skaitmeninis jutiklis

„Ds18b20“ jutiklio prijungimo prie Arduino schema atrodo taip:

„Ds18b20“ jutiklio prijungimo prie Arduino schema
„Ds18b20“ jutiklio prijungimo prie Arduino schema

Taip pat yra parazitinis maitinimo režimas - jo prijungimo schema atrodo taip (jums reikia dviejų laidų, o ne trijų):

„Arduino“ jutiklio prijungimo schema

Šiame režime teisingas veikimas negarantuojamas matuojant temperatūrą virš 100 laipsnių Celsijaus.

DS18B20 skaitmeninį temperatūros jutiklį sudaro visas mazgų rinkinys, kaip ir bet kuris kitas SIMS. Galite pamatyti jo vidinį įrenginį žemiau:

Skaitmeninis temperatūros jutiklis DS18B20

Norėdami dirbti su juo, turite atsisiųsti „Onewire“ biblioteką „Arduino“, o pačiam jutikliui rekomenduojama naudoti „DallasTemperature“ biblioteką.

Eskizas

Šis kodo pavyzdys parodo darbo su 1 temperatūros jutikliu pagrindus, rezultatas po Celsijaus laipsnio išvedamas per nuoseklųjį prievadą po kiekvieno nuskaitymo.


DHT11 ir DHT22 - drėgmės ir temperatūros jutikliai

DHT11 ir DHT22 - drėgmės ir temperatūros jutikliai

Šie jutikliai yra populiarūs ir dažnai naudojami drėgmei ir aplinkos temperatūrai matuoti. Žemiau esančioje lentelėje mes nurodėme pagrindinius jų skirtumus.

 
DHT11
DHT22
Drėgmės nustatymas diapazone
20-80%
0-100%
Matavimo tikslumas
5%
2-5%
Temperatūros nustatymas
Nuo 0 ° C iki + 50 ° C
Nuo -40 ° C iki + 125 ° C
Matavimo tikslumas
2,5%
plius arba minus 0,5 laipsnio Celsijaus
Balsavimo dažnis
1 kartas per sekundę
1 kartas per 2 sekundes
Drėgmės jutiklio ir arduino prijungimo schema

Ryšio schema yra gana paprasta:

  • 1 išvada - mityba;

  • 2 išvada - duomenys;

  • 3 išvada - nenaudojama;

  • 4 išvada - bendroji viela.

Jei jūsų jutiklis pagamintas modulio pavidalu, jis turės tris išėjimus, tačiau rezistoriaus nereikia - jis jau yra sulituotas prie plokštės.

Modulio pavidalo drėgmės jutiklio prijungimo prie arduino schema

Darbui mums reikalinga dht.h biblioteka, jos nėra standartiniame rinkinyje, todėl ją reikia atsisiųsti ir įdiegti į bibliotekų aplanką aplanke su arduino IDE. Tai palaiko visus šios šeimos jutiklius:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Bibliotekos naudojimo pavyzdys:

Bibliotekos naudojimo pavyzdys

Išvada

Šiais laikais Arduino platformos dėka labai paprasta sukurti savo temperatūros ir drėgmės matavimo stotį. Tokių projektų kaina yra 3-4 šimtai rublių. Galima naudoti bateriją, o ne išvesti į kompiuterį simbolių rodymas (aprašėme juos naujausiame straipsnyje), tada galėsite susikurti nešiojamąjį prietaisą, skirtą naudoti tiek namuose, tiek automobilyje. Komentaruose parašykite, ką dar norėtumėte sužinoti apie paprastus naminius amatus ant arduino!

Taip pat žiūrėkite šia tema:Populiarūs „Arduino“ jutikliai - jungtis, schemos, eskizai

Taip pat žiūrėkite tinklalapyje i.electricianexp.com:

  • Populiariausi „Arduino“ jutikliai
  • Analoginių jutiklių prijungimas prie Arduino, skaitymo jutikliai
  • „Wheatstone“ tilto naudojimas neelektriniams dydžiams matuoti
  • Temperatūros jutikliai. Antra dalis Termistoriai
  • Drėgmės jutikliai - kaip jie išdėstyti ir veikia

  •