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.

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.

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.

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.

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:


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.

Tokiu atveju B nurodoma forma:

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.

Č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.

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:

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“ jutiklio prijungimo prie Arduino schema atrodo taip:


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

Š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:

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

Š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

Š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.

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.

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:

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 electro-lt.tomathouse.com
: