Kategorie: Obvody mikrokontrolérů
Počet zobrazení: 9996
Komentáře k článku: 0

Měření teploty a vlhkosti na Arduino - výběr způsobů

 

Chcete-li vytvořit domácí meteorologickou stanici nebo teploměr, musíte se naučit, jak spárovat desku Arduino a zařízení pro měření teploty a vlhkosti. Měření teploty lze řešit pomocí termistoru nebo digitálního senzoru DS18B20, ale pro měření vlhkosti používat složitější zařízení - senzory DHT11 nebo DHT22. V tomto článku vám ukážeme, jak měřit teplotu a vlhkost pomocí Arduino a těchto senzorů.

Měření teploty a vlhkosti na Arduino - výběr metod

Měření termistoru

Nejjednodušší způsob stanovení teploty je použití termistor. Jedná se o typ rezistoru, jehož odpor závisí na okolní teplotě. Existují termistory s kladným a záporným teplotním koeficientem odporu - PTC (také nazývané pozistory) a NTC-termistory.

V níže uvedeném grafu vidíte teplotní závislost odporu. Přerušovaná čára ukazuje závislost negativního termistoru TCS (NTC) a plná čára pozitivního termistoru TCS (PTC).

Teplotní závislost odporu

Co tady vidíme? První věc, která upoutá vaše oko, je to, že plán termistoru PTC je porušen a bude obtížné nebo nemožné měřit řadu teplotních hodnot, ale plán termistoru NTC je víceméně rovnoměrný, i když je zjevně nelineární. Co to znamená? Použití termistoru NTC je snadnější měřit teplotu, protože je snazší zjistit funkci, kterou se jeho hodnoty mění.

Chcete-li převést teplotu na odpor, můžete hodnoty vzít ručně, ale to je obtížné udělat doma a pro stanovení skutečných hodnot teploty média potřebujete teploměr. V datových listech některých komponent je taková tabulka uvedena například pro řadu termistorů NTC od Vishay.

Termistory Datashit Vishay TC

Poté můžete překlad uspořádat pomocí větví pomocí funkce, pokud ... jindy nebo rozvaděče. Pokud však v datových listech takové tabulky neexistují, musíte vypočítat funkci, kterou se odpor mění s rostoucí teplotou.

K popisu této změny existuje Steinhart-Hartova rovnice.

Steinhart-hartova rovnice

kde A, B a C jsou termistorové konstanty určené měřením tří teplot s rozdílem nejméně 10 stupňů Celsia. Současně různé zdroje naznačují, že pro typický 10 kΩ termistor NTC jsou rovny:

Termistorové konstanty

Koeficient B - beta se počítá na základě měření odporu pro dvě různé teploty. Je to uvedeno v datovém listu (jak je znázorněno níže) nebo vypočítáno samostatně.

B - koeficient beta z datového listu

V tomto případě je B ve tvaru:

poměr beta

To znamená, že koeficient byl vypočítán na základě údajů získaných při měření odporu při teplotách 25 a 100 stupňů Celsia, což je nejběžnější varianta. Pak se vypočítá podle vzorce:

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

Níže je uvedeno typické schéma připojení termistoru k mikrokontroléru.

Schéma připojení termistoru k mikrokontroléru

Zde R1 je konstantní odpor, termistor je připojen ke zdroji energie a data jsou přijímána ze středu mezi nimi, schéma podmíněně ukazuje, že signál je veden na svorku A0 - to analogový vstup Arduino.

Schéma připojení termistoru k mikrokontroléru

Pro výpočet odporu termistoru můžete použít následující vzorec:

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

Chcete-li přeložit do jazyka, který je pro arduino srozumitelný, musíte si uvědomit, že arduino má 10bitový ADC, takže maximální digitální hodnota vstupního signálu (napětí 5V) bude 1023. Potom podmíněně:

  • Dmax = 1023;

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

Pak:

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

Teď použijeme tento výpočet pro výpočet odporu a poté vypočítáme teplotu termistoru pomocí beta rovnice v programovacím jazyce pro Arduino. Náčrt bude vypadat takto:

Skica

DS18B20

Ještě populárnější pro měření teploty pomocí.Arduino našel digitální senzor DS18B20. Komunikuje s mikrokontrolérem přes jednovodičové rozhraní, k jednomu vodiči můžete připojit několik senzorů (až 127) a pro přístup k nim budete muset zjistit ID každého ze senzorů.

Poznámka: ID byste měli znát, i když používáte pouze 1 senzor.

Digitální snímač DS18B20

Schéma připojení senzoru ds18b20 k Arduinu vypadá takto:

Schéma připojení senzoru ds18b20 k Arduino
Schéma připojení senzoru ds18b20 k Arduino

K dispozici je také parazitní režim napájení - jeho schéma zapojení vypadá takto (místo tří kabelů potřebujete dva dráty):

Schéma připojení senzoru Arduino

V tomto režimu není zaručena správná funkce při měření teplot nad 100 stupňů Celsia.

Digitální teplotní senzor DS18B20 se skládá z celé sady uzlů, stejně jako u jiných SIMS. Jeho interní zařízení můžete sledovat níže:

Digitální teplotní senzor DS18B20

Chcete-li s tím pracovat, musíte si stáhnout knihovnu Onewire pro Arduino a pro samotný senzor se doporučuje použít knihovnu DallasTemperature.

Skica

Tento příklad kódu demonstruje základy práce s 1 teplotním senzorem, výsledek ve stupních Celsia je výstupem přes sériový port po každém čtení.


DHT11 a DHT22 - senzory vlhkosti a teploty

DHT11 a DHT22 - senzory vlhkosti a teploty

Tyto senzory jsou oblíbené a často se používají k měření vlhkosti a teploty okolí. V následující tabulce jsme uvedli jejich hlavní rozdíly.

 
DHT11
DHT22
Stanovení vlhkosti v rozsahu
20-80%
0-100%
Přesnost měření
5%
2-5%
Stanovení teploty
0 ° C až + 50 ° C
-40 ° C až + 125 ° C
Přesnost měření
2,5%
plus nebo mínus 0,5 stupně Celsia
Frekvence dotazování
1 čas za sekundu
1 čas za 2 sekundy
Schéma připojení senzoru vlhkosti k arduinu

Schéma připojení je velmi jednoduché:

  • 1 závěr - výživa;

  • 2 závěr - data;

  • 3 závěr - nepoužito;

  • 4 závěr - obecný drát.

Pokud máte senzor ve formě modulu, bude mít tři výstupy, ale nepotřebujete rezistor - je již připájen k desce.

Schéma připojení čidla vlhkosti ve formě modulu k arduinu

K práci potřebujeme knihovnu dht.h, která není ve standardní sadě, takže je třeba ji stáhnout a nainstalovat do složky knihoven ve složce s arduino IDE. Podporuje všechny senzory v této rodině:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Příklad použití knihovny:

Příklad použití knihovny

Závěr

Vytvoření vlastní stanice pro měření teploty a vlhkosti je dnes díky platformě Arduino velmi jednoduché. Náklady na takové projekty jsou 3-4 stovky rublů. Pro výdrž baterie a bez výstupu do počítače lze použít znakové zobrazení (popsali jsme je v nedávném článku), pak si můžete vytvořit přenosné zařízení pro použití doma i v autě. Napište do komentářů, co dalšího byste se chtěli dozvědět o jednoduchých domácích řemeslech na arduino!

Viz také toto téma:Populární senzory pro Arduino - spojení, diagramy, náčrtky

Viz také na i.electricianexp.com:

  • Nejoblíbenější senzory pro Arduino
  • Připojení analogových senzorů k Arduino, čtení senzorů
  • Použití Wheatstoneova mostu pro měření neelektrických veličin
  • Snímače teploty. Část druhá Termistory
  • Senzory vlhkosti - jak jsou uspořádány a fungují

  •