Kategorijas: Mikrokontrolleru shēmas
Skatījumu skaits: 9996
Komentāri par rakstu: 0

Temperatūras un mitruma mērīšana Arduino - dažādu iespēju izvēle

 

Lai izveidotu mājas laika staciju vai termometru, jums jāiemācās savienot pārī Arduino dēli un ierīci temperatūras un mitruma mērīšanai. Temperatūras mērīšanu var veikt, izmantojot termistoru vai digitālo sensoru DS18B20, bet mitruma mērīšanai izmantojiet sarežģītākas ierīces - sensorus DHT11 vai DHT22. Šajā rakstā mēs jums parādīsim, kā izmērīt temperatūru un mitrumu, izmantojot Arduino un šos sensorus.

Temperatūras un mitruma mērīšana Arduino - dažādu iespēju izvēle

Termistora mērīšana

Vienkāršākais veids, kā noteikt temperatūru, ir izmantot termistoru. Tas ir rezistora tips, kura pretestība ir atkarīga no apkārtējās vides temperatūras. Ir termistori ar pozitīvu un negatīvu temperatūras pretestības koeficientu - attiecīgi PTC (ko sauc arī par posistoriem) un NTC termistori.

Zemāk redzamajā grafikā redzat pretestības atkarību no temperatūras. Punktēta līnija parāda atkarību no negatīva TCS termistora (NTC) un vienlaidu līniju pret pozitīvu TCS termistoru (PTC).

Pretestības atkarība no temperatūras

Ko mēs šeit redzam? Pirmais, kas pievelk jūsu uzmanību, ir tāds, ka PTC termistoru grafiks ir salauzts un būs grūti vai neiespējami izmērīt vairākas temperatūras vērtības, taču NTC termorezistora grafiks ir vairāk vai mazāk vienveidīgs, lai arī tas nepārprotami nav lineārs. Ko tas nozīmē? Izmantojot NTC termistoru, ir vieglāk izmērīt temperatūru, jo ir vieglāk noskaidrot funkciju, ar kuru mainās tā vērtības.

Lai temperatūru pārveidotu par pretestību, vērtības var manuāli noņemt, bet to ir grūti izdarīt mājās, un jums ir nepieciešams termometrs, lai noteiktu barotnes temperatūras faktiskās vērtības. Dažu komponentu tehniskajās lapās šāda tabula ir dota, piemēram, Vishay NTC termistu sērijai.

Datashit Vishay TC termorezistori

Tad jūs varat organizēt tulkošanu caur filiālēm, izmantojot funkciju, ja ... cits vai sadales skapis. Tomēr, ja datu lapās šādu tabulu nav, jums jāaprēķina funkcija, pēc kuras pretestība mainās, palielinoties temperatūrai.

Lai aprakstītu šīs izmaiņas, pastāv Šteinharta-Hāra vienādojums.

Šteinharta-harta vienādojums

kur A, B un C ir termistora konstantes, ko nosaka, izmērot trīs temperatūras ar starpību vismaz 10 grādus pēc Celsija. Tajā pašā laikā dažādi avoti norāda, ka tipiskam 10 kor NTC termistoram tie ir vienādi ar:

Termistora konstantes

B - beta koeficients, to aprēķina, pamatojoties uz divu dažādu temperatūru pretestības mērījumiem. Tas ir norādīts vai nu datu lapā (kā parādīts zemāk), vai arī aprēķināts neatkarīgi.

B - beta koeficients no datu lapas

Šajā gadījumā B tiek norādīts šādā formā:

beta attiecība

Tas nozīmē, ka koeficients tika aprēķināts, pamatojoties uz datiem, kas iegūti, mērot pretestību temperatūrā no 25 līdz 100 grādiem pēc Celsija, un tas ir visizplatītākais variants. Tad to aprēķina pēc formulas:

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

Zemāk parādīta tipiska termistora savienojuma shēma ar mikrokontrolleri.

Termistoru savienojuma shēma ar mikrokontrolleri

Šeit R1 ir pastāvīgs rezistors, termistors ir savienots ar strāvas avotu, un dati tiek ņemti no viduspunkta starp tiem, diagramma nosacīti norāda, ka signāls tiek piegādāts uz tapu A0 - tas ir analogā ieeja Arduino.

Termistoru savienojuma shēma ar mikrokontrolleri

Lai aprēķinātu termistoru pretestību, varat izmantot šādu formulu:

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

Lai tulkotu valodā, kas ir saprotama arduino, jums jāatceras, ka arduino ir 10 bitu ADC, tāpēc ieejas signāla (5 V sprieguma) maksimālā digitālā vērtība būs 1023. Tad nosacīti:

  • Dmax = 1023;

  • D ir signāla faktiskā vērtība.

Tad:

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

Tagad mēs to izmantojam, lai aprēķinātu pretestību un pēc tam aprēķinātu termistoru temperatūru, izmantojot beta vienādojumu programmēšanas valodā Arduino. Skice būs šāda:

Skice

DS18B20

Vēl populārāka temperatūras mērīšanai ar.Arduino atrada digitālo sensoru DS18B20. Tas sazinās ar mikrokontrolleru, izmantojot 1 vadu saskarni, jūs varat savienot vairākus sensorus (līdz 127) vienam vadam, un, lai tiem piekļūtu, jums būs jānoskaidro katra sensora ID.

Piezīme: jums vajadzētu zināt ID pat tad, ja izmantojat tikai 1 sensoru.

DS18B20 digitālais sensors

Sensora ds18b20 savienojuma shēma ar Arduino izskatās šādi:

Ds18b20 sensora savienojuma shēma ar Arduino
Ds18b20 sensora savienojuma shēma ar Arduino

Pastāv arī parazītu enerģijas režīms - tā savienojuma shēma izskatās šādi (jums ir nepieciešami divi vadi, nevis trīs):

Arduino sensora savienojuma shēma

Šajā režīmā pareiza darbība netiek garantēta, mērot temperatūru virs 100 grādiem pēc Celsija.

DS18B20 digitālais temperatūras sensors sastāv no visa mezglu kopuma, tāpat kā jebkura cita SIMS. Tālāk varat skatīties tās iekšējo ierīci:

Digitālais temperatūras sensors DS18B20

Lai strādātu ar to, jums jālejuplādē Onewire bibliotēka Arduino, un pašam sensoram ieteicams izmantot bibliotēku DallasTemperature.

Skice

Šis koda piemērs parāda pamatus darbam ar 1 temperatūras sensoru, rezultāts pēc Celsija grādiem tiek izvadīts caur seriālo portu pēc katras nolasīšanas.


DHT11 un DHT22 - mitruma un temperatūras sensori

DHT11 un DHT22 - mitruma un temperatūras sensori

Šie sensori ir populāri, un tos bieži izmanto mitruma un apkārtējās temperatūras mērīšanai. Zemāk esošajā tabulā mēs norādījām viņu galvenās atšķirības.

 
DHT11
DHT22
Mitruma noteikšana diapazonā
20-80%
0-100%
Mērījumu precizitāte
5%
2-5%
Temperatūras noteikšana
0 ° C līdz + 50 ° C
No -40 ° C līdz + 125 ° C
Mērījumu precizitāte
2,5%
plus vai mīnus 0,5 grādi pēc Celsija
Vēlēšanu biežums
1 reizi sekundē
1 reizi 2 sekundēs
Mitruma sensora un arduino savienojuma shēma

Savienojuma shēma ir diezgan vienkārša:

  • 1 secinājums - uzturs;

  • 2 secinājums - dati;

  • 3 secinājums - nav izmantots;

  • 4 secinājums - vispārīgais vads.

Ja jums ir sensors moduļa formā, tam būs trīs izejas, bet jums nav nepieciešams rezistors - tas jau ir pielodēts pie dēļa.

Mitruma sensora savienojuma shēma moduļa formā arduino

Darbam mums ir nepieciešama dht.h bibliotēka, tā nav standarta komplektācijā, tāpēc tā ir jālejupielādē un jāinstalē bibliotēku mapē mapē ar arinoino IDE. Tas atbalsta visus sensorus šajā ģimenē:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Bibliotēkas lietošanas piemērs:

Bibliotēkas lietošanas piemērs

Secinājums

Mūsdienās, pateicoties Arduino platformai, ir ļoti vienkārši izveidot savu temperatūras un mitruma mērīšanas staciju. Šādu projektu izmaksas ir 3-4 simti rubļu. Var izmantot akumulatora darbības laiku, nevis izvadīt to datorā rakstzīmju displejs (mēs tos aprakstījām nesenā rakstā), pēc tam varat izveidot portatīvu ierīci lietošanai gan mājās, gan automašīnā. Raksti komentāros, ko vēl tu vēlētos uzzināt par vienkāršiem pašdarinātiem amatiem vietnē arduino!

Skatīt arī par šo tēmu:Populārie sensori Arduino - savienojums, diagrammas, skices

Skatīt arī vietnē e.imadeself.com:

  • Populārākie Arduino sensori
  • Analogo sensoru pievienošana Arduino, lasīšanas sensori
  • Wheatstone tilta izmantošana neelektrisko daudzumu mērīšanai
  • Temperatūras sensori. Otrā daļa Termistori
  • Mitruma sensori - kā tie ir izvietoti un darbojas

  •