Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 16 - Arduino - Měření teploty infračerveným teploměrem MLX90614

V minulé lekci, Arduino - Měření teploty a vlhkosti čidlem DHT11, jsem si představili čidlo teploty a vlhkosti DHT11, které jsme využili v novém projektu, kde mohl uživatel zadat, kterou z hodnot má čidlo měřit.

V dnešní lekci HW Arduino tutoriálu si představíme další možnost, jak změřit teplotu a představíme si infračervený teploměr MLX90614. Popíšeme si jeho charakteristiky a poté si ukážeme, jak jej zapojit a naprogramovat.

Teploměr MLX90614

Z mnoha důvodů někdy nemůžeme využít dotykový teploměr, jakým je například model DS18B20. Na trhu však existuje pěkný bezkontaktní snímač teploty, infračervený teploměr MLX90614, který můžeme použít pro měření teploty hned dvěma způsoby:

  • Teploměr nám umožňuje změřit teplotu okolí.
  • Také jím ale můžeme měřit teplotu objektu na dálku.

Specifikace teploměru

Podívejme se nejprve na specifikaci našeho modelu, již uvádí výrobce:

Rozsah měření pro teplotu okolí -40 °C až + 125 °C
Rozsah měření pro teplotu objektu bezkontaktně -70 °C až + 380 °C
Přesnost 0.5 °C
Rozlišení 0.02 °C
Komunikace I2C

Jak můžeme vidět, je to dobrý snímač teploty, který bude nepostradatelný zejména, pokud chceme měřit teplotu horkých předmětů. Využijeme ho tedy například pro kontrolu při vaření jídla nebo spíše pro měření teploty komponent na PCB desce.

Při měření teploty dodržujeme vzdálenost 1 cm!

Zapojení senzoru

Zapojení je jednoduché, protože senzor komunikuje prostřednictvím I2C protokolu, jak jsme si mohli přečíst v tabulce výše. Zapojení, které si ukážeme, platí pro Arduino UNO a Nano:

Arduino Senzor
5V / 3,3V VIN
GND GND
SCL A5
SDA A4

Pro jiné desky je třeba pohlídat si SCL a SDA piny.

Zapojení na naší desce je následující:

Zapojení teplotního senzoru na desce Arduina - Arduino - Hardware

Programování MLX90614 teploměru

Kód je jednoduchý, budeme však potřebovat knihovnu od Adafruit - Adafruit_MLX90614. Knihovnu si můžeme pomocí uvedeného linku stáhnout a nainstalovat do svého Arduino IDE.

Přidání knihovny do projektu jsme si připomínali v lekci Měření teploty a vlhkosti čidlem DHT11, kam se můžete na správný postup podívat, pokud byste s instalací měli problémy.

Pro komunikaci využijeme nově přidanou knihovnu Adafruit_MLX90614.h a zároveň využijeme také knihovnu Wire.h, která umožňuje Arduinu komunikovat se senzory využívající I2C protokol. Obě si na začátku našeho programu nejprve importujeme:

#include <Wire.h>
#include <Adafruit_MLX90614.h>

V dalším řádku kódu vytvoříme instanci senzoru z knihovny:

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

Obslužný program bude opravdu jednoduchý, hlavičku tímto máme hotovou a můžeme se přesunout do funkce setup().

Ve funkci setup() inicializujeme sériovou komunikaci a zároveň komunikaci se senzorem:

void setup()
{
  Serial.begin(9600);
  mlx.begin();
}

Nejprve jsem nastavili Baudovu rychlost pro sériový monitor, poté jsme pomocí příkazu begin() výše vytvořenou instanci čidla aktivovali.

Hlavní smyčka

Opět máme hotovo, zbývá nám doplnit funkci loop(). Ukažme si nejprve, jak zajistit měření okolní teploty a vzdáleného předmětu.

Pro získání teploty okolí nyní použijeme příkaz:

mlx.readAmbientTempC();

A pro získání teploty objektu bezkontaktně voláme příkaz:

mlx.readObjectTempC();

Ve zbylé části funkce loop() pak už jen doplníme výpis zjištěných hodnot a sekundovou prodlevu, před započetím nového cyklu.

Celý kód hlavní smyčky pak vypadá takto:

void loop()
{
  Serial.println("Temperature from MLX90614:");
  Serial.print("Ambient:     ");
  Serial.print(mlx.readAmbientTempC());
  Serial.println(" °C");
  Serial.print("Contactless: ");
  Serial.print(mlx.readObjectTempC());
  Serial.println(" °C");
  Serial.println();
  delay(1000);
}

A ukažme si, jaký výsledek našeho měření po spuštění programu získáme:

Ukázka měření teploty s Arduinem - Arduino - Hardware

Princip fungování teploměru MLX90614

Máme hotový další funkční projekt. Pojďme si ale ještě v závěru krátce popsat, jak infračervený teploměr MLX90614 funguje.

Několikrát jsme zmínili, že se jedná o infračervený teploměr. Tento druh teploměru využívá předpoklad, že každé těleso se do jisté míry chová jako černé těleso. Černé těleso je takové, které pohlcuje všechno záření všech vlnových délek, jež dopadá na jeho povrch. Černé těleso zároveň vyzařuje elektromagnetické záření podle Planckova zákona. Ten řeší závislost intenzity tohoto záření na vlnové délce.

Název černé těleso nám pak napovídá, že jde o takový předmět, který neodráží žádné světlo. Průběh závislosti intenzity na vlnové délce totiž závisí na teplotě tělesa. Proto, když například více a více zahříváme kov, postupně se mění jeho barva z červena do bílé. To značí, že vlnová délka s narůstající teplotou klesá. Ukažme si to na obrázku z Wikipedie:

Závislost intenzity záření od vlnové délky. Zdroj: wikipedia - Arduino - Hardware

Černé těleso je samozřejmě aproximací, téměř každý předmět nějaké to světlo odráží, dokonce i nejtmavší předmět na světě. Infračervený teploměr tak využívá poznatek, že každé těleso má v závislosti na teplotě charakteristický průběh vyzařované energie a na základě toho určuje teplotu tělesa bezdotykově.

V příští lekci, Arduino - Komunikace přes Bluetooth, se naučíme navázat komunikaci pomocí Bluetooth.


 

Předchozí článek
Arduino - Měření teploty a vlhkosti čidlem DHT11
Všechny články v sekci
Arduino - Hardware
Přeskočit článek
(nedoporučujeme)
Arduino - Komunikace přes Bluetooth
Článek pro vás napsal michal
Avatar
Uživatelské hodnocení:
4 hlasů
Autor sa venuje vzdelávaniu a má rad novinky vo vzdelávani.
Aktivity