kategória: Obvody mikrokontrolérov
Počet zobrazení: 9996
Komentáre k článku: 0

Meranie teploty a vlhkosti na Arduino - výber metód

 

Ak chcete vytvoriť domácu meteorologickú stanicu alebo teplomer, musíte sa naučiť spárovať dosku Arduino a zariadenie na meranie teploty a vlhkosti. Meranie teploty sa dá riešiť pomocou termistora alebo digitálneho senzora DS18B20, ale na meranie vlhkosti používať zložitejšie zariadenia - senzory DHT11 alebo DHT22. V tomto článku vám ukážeme, ako merať teplotu a vlhkosť pomocou Arduino a týchto senzorov.

Meranie teploty a vlhkosti na Arduino - výber metód

Meranie termistora

Najjednoduchší spôsob stanovenia teploty je použitie termistor, Jedná sa o typ odporu, ktorého odpor závisí od teploty okolia. Existujú termistory s kladným a záporným teplotným koeficientom odporu - termistory PTC (nazývané tiež rezistory) a termistory NTC.

V nasledujúcom grafe vidíte teplotnú závislosť odporu. Prerušovaná čiara zobrazuje závislosť pre negatívny termistor TCS (NTC) a plná čiara pre pozitívny termistor TCS (PTC).

Teplotná závislosť odporu

Čo tu vidíme? Prvá vec, ktorá upúta vaše oko, je, že rozvrh termistora PTC je porušený a bude ťažké alebo nemožné zmerať množstvo teplotných hodnôt, ale rozvrh termistora NTC je viac-menej rovnomerný, hoci je zjavne nelineárny. Čo to znamená? Pomocou termistora NTC sa ľahšie meria teplota, pretože je ľahšie zistiť funkciu, ktorou sa menia jeho hodnoty.

Ak chcete previesť teplotu na odpor, môžete hodnoty ručne odstrániť, ale je ťažké to urobiť doma a na určenie skutočných hodnôt teploty média potrebujete teplomer. V údajových listoch niektorých komponentov je takáto tabuľka uvedená napríklad pre sériu termistorov NTC od spoločnosti Vishay.

Termistory Datashit Vishay TC

Potom môžete preklad zorganizovať pomocou vetiev pomocou funkcie, ak ... inde alebo switchcase. Ak však v údajových listoch nie sú také tabuľky, musíte vypočítať funkciu, pri ktorej sa odpor zvyšuje so zvyšujúcou sa teplotou.

Na opísanie tejto zmeny existuje Steinhart-Hartova rovnica.

Steinhart-hartova rovnica

kde A, B a C sú termistorové konštanty určené meraním troch teplôt s rozdielom najmenej 10 stupňov Celzia. Súčasne rôzne zdroje naznačujú, že pre typický termistor NTC 10 kΩ sa rovnajú:

Termistorové konštanty

Koeficient B - beta sa počíta na základe merania odporu pri dvoch rôznych teplotách. Je uvedený buď v údajovom liste (ako je uvedené nižšie), alebo sa počíta nezávisle.

B - koeficient beta z údajového listu

V takom prípade je B uvedené vo forme:

pomer beta

To znamená, že koeficient sa vypočítal na základe údajov získaných pri meraní odporu pri teplotách 25 a 100 stupňov Celzia, čo je najbežnejší variant. Potom sa vypočíta podľa vzorca:

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

Nižšie je uvedený typický diagram pripojenia termistora k mikrokontroléru.

Schéma pripojenia termistora s mikrokontrolérom

Tu R1 je konštantný odpor, termistor je pripojený k zdroju energie a údaje sú prevzaté zo stredu medzi nimi, schéma podmienečne ukazuje, že signál je privedený na pin A0 - to analógový vstup Arduino.

Schéma pripojenia termistora s mikrokontrolérom

Na výpočet odporu termistora môžete použiť nasledujúci vzorec:

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

Ak chcete preložiť do jazyka, ktorý je zrozumiteľný pre arduino, musíte mať na pamäti, že arduino má 10-bitový ADC, takže maximálna digitálna hodnota vstupného signálu (napätie 5V) bude 1023. Potom podmienečne:

  • Dmax = 1023;

  • D je skutočná hodnota signálu.

potom:

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

Teraz to použijeme na výpočet odporu a potom na výpočet teploty termistora pomocou beta rovnice v programovacom jazyku pre Arduino, Nákres bude vyzerať takto:

skica

DS18B20

Ešte obľúbenejšie je meranie teploty pomocou.Arduino našiel digitálny senzor DS18B20. Komunikuje s mikrokontrolérom prostredníctvom 1-vodičového rozhrania, k jednému vodiču môžete pripojiť niekoľko senzorov (až 127) a pre prístup k nim budete musieť zistiť ID každého zo senzorov.

Poznámka: ID by ste mali poznať, aj keď používate iba 1 snímač.

Digitálny snímač DS18B20

Schéma pripojenia senzora ds18b20 na Arduino vyzerá takto:

Schéma pripojenia senzora ds18b20 na Arduino
Schéma pripojenia senzora ds18b20 na Arduino

K dispozícii je tiež režim parazitického napájania - jeho schéma pripojenia vyzerá takto (namiesto troch potrebujete dva vodiče):

Schéma pripojenia snímača Arduino

V tomto režime nie je zaručená správna prevádzka pri meraní teplôt nad 100 stupňov Celzia.

Digitálny teplotný senzor DS18B20 sa skladá z celej sady uzlov, rovnako ako akékoľvek iné SIMS. Jeho vnútorné zariadenie môžete sledovať nižšie:

Digitálny snímač teploty DS18B20

Aby ste s tým mohli pracovať, musíte si stiahnuť knižnicu Onewire pre Arduino a pre samotný senzor sa odporúča použiť knižnicu DallasTemperature.

skica

Tento príklad kódu demonštruje základy práce s 1 teplotným senzorom, výsledok v stupňoch Celzia je na výstupe cez sériový port po každom prečítaní.


DHT11 a DHT22 - senzory vlhkosti a teploty

DHT11 a DHT22 - senzory vlhkosti a teploty

Tieto senzory sú populárne a často sa používajú na meranie vlhkosti a teploty okolia. V nasledujúcej tabuľke sme uviedli ich hlavné rozdiely.

 
DHT11
DHT22
Stanovenie vlhkosti v rozsahu
20-80%
0-100%
Presnosť merania
5%
2-5%
Stanovenie teploty
0 ° C až + 50 ° C
-40 ° C až + 125 ° C
Presnosť merania
2,5%
plus alebo mínus 0,5 stupňov Celzia
Frekvencia dotazovania
1 krát za sekundu
1 čas za 2 sekundy
Schéma pripojenia snímača vlhkosti k arduino

Schéma pripojenia je pomerne jednoduchá:

  • 1 záver - výživa;

  • 2 záver - údaje;

  • 3 záver - nepoužité;

  • 4 záver - hlavný vodič.

Ak máte snímač vo forme modulu, bude mať tri výstupy, ale nepotrebujete rezistor - je už pripojený k doske.

Schéma pripojenia snímača vlhkosti vo forme modulu na arduino

Na prácu potrebujeme knižnicu dht.h, ktorá nie je v štandardnej sade, takže ju treba stiahnuť a nainštalovať do priečinka knižníc v priečinku s arduino IDE. Podporuje všetky senzory v tejto skupine:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Príklad použitia knižnice:

Príklad použitia knižnice

záver

Vytvorenie vlastnej stanice na meranie teploty a vlhkosti je dnes vďaka platforme Arduino veľmi jednoduché. Náklady na tieto projekty sú 3-4 stovky rubľov. Na výdrž batérie a na výstup z počítača sa dá použiť zobrazenie znakov (popísali sme ich v nedávnom článku), potom si môžete zostaviť prenosné zariadenie, ktoré bude možné používať doma aj v aute. Napíšte do komentárov, čo sa ešte chcete dozvedieť o jednoduchých domácich remeslách na arduino!

Pozri tiež túto tému:Populárne senzory pre Arduino - pripojenie, schémy, nákresy

Pozri tiež na bgv.electricianexp.com:

  • Najpopulárnejšie senzory pre Arduino
  • Pripojenie analógových snímačov k Arduino, snímanie snímačov
  • Použitie Wheatstoneovho mostíka na meranie neelektrických veličín
  • Snímače teploty. Druhá časť termistory
  • Senzory vlhkosti - ako sú usporiadané a ako fungujú

  •