FORUM

Pirometr z czujnikiem MLX90614ESF-BAA

ArduinoHero
Posty: 2
https://www.oferia.pl/wykonawca/meble-kuchenne-warszawa/1240988
Rejestracja: 21 mar 2023, 6:32
Kontakt:

Pirometr z czujnikiem MLX90614ESF-BAA

Post autor: ArduinoHero »

Kiedy zachodzi konieczność bezdotykowego pomiaru temperatury badanego obiektu, a nie mamy możliwości zamocowania odpowiedniego czujnika temperatury, z pomocą przyjdzie nam pirometr. Jednym z dostępnych tego typu modułów jest GY-906 wykorzystujący czujnik MLX90614ESF-BAA z oferty sklepu Kamami. Wykorzystany tutaj czujnik pozwoli nam zarówno na pomiar temperatury otoczenia jak i badanego obiektu. Pod względem budowy zawiera w sobie zintegrowany wzmacniacz o niskim poziomie szumów, procesor DSP oraz 17-bitowy przetwornik ADC
gy906-top.jpg
gy906-top.jpg (38.13 KiB) Przejrzano 1480 razy
MLX90614 jest dostępny w kilku wariantach, różniących się wartością napięcia zasilającego, zakresem pomiaru temperatury otoczenia oraz ogólnym przeznaczeniem.

Pierwszy człon ESF oznacza, że mamy do czynienia z czujnikiem mierzonej temperatury otoczenia z zakresu -40°C…85°C (pierwsza litera E) oraz obudowie TO-39 (dwie ostatnie litery SF). Gdybyśmy potrzebowali czujnika o większym zakresie wartości temperatur -40°C…125°C, powinniśmy wybrać wersję "K" (czyli MLX90614KSF). Drugi człon BAA informuje nas o napięciu zasilania 3V (pierwsza litera B), natomiast ostatnie dwie litery definiują liczbę stref oraz typ obudowy, który ma bezpośredni wpływ na obszar widzenia FOV (Field of View) o którym nieco później.

Tabela opisu wersji czujnika MLX90614:
tab1.jpg
tab1.jpg (112.95 KiB) Przejrzano 1479 razy
Powróćmy jednak do naszego modułu, który został konkretnie wyposażony w czujnik MLX90614ESF-BAA. Posiada on już wbudowany stabilizator napięcia 3.3V oraz rezystory podciągające magistralę I2c do zasilania rezystorami o wartości 4.7 kΩ. Wiemy również, że zakresy mierzonych temperatur to: -40°C…85°C dla temperatury otoczenia oraz -40°C…380°C dla temperatury badanego obiektu. Moduł charakteryzuje się dokładnością pomiaru 0.5°C dla zakresu pomiarowego To=0°C…60°C (temperatura obiektu), Ta=0°C…50°C (temperatura otocznia) z rozdzielczością 0.2°C. Największy błąd pomiarowy z jakim przyjdzie nam się spotkać to ±4°C, jednak dla bardzo wysokich temperatur.
mlx90614-std.png
mlx90614-std.png (82.21 KiB) Przejrzano 1478 razy
Istnieje również wersja "medyczna" czujnika, która charakteryzuje się mniejszym błędem pomiarowym w szczególnym zakresie temperatury badanego obiektu oraz otoczenia. Dla pozostałcyh zakresów obowiązuje wykres powyżej.
mlx90614-med.png
mlx90614-med.png (19.14 KiB) Przejrzano 1476 razy
Jak wspomniałem wcześniej, czujnik może komunikować się mikrokontrolerem za pomocą magistrali I2c, jednak możliwy jest również odczyt pomiarów za pomocą sygnału PWM o rozdzielczości 10 bitów i okresie 1,024ms, dzięki czemu możliwe jest opracowanie układu bez udziału mikrokontrolera. Domyślnym adresem czujnika na magistrali I2c jest 0x5A. Deklarowany pobór prądu to 2mA podczas normalnej pracy i maksymalnie 6uA w trybie uśpienia.

Jak działa pirometr?
flir-house.jpg
flir-house.jpg (130.33 KiB) Przejrzano 1475 razy

Każdy przedmiot emituje promieniowanie podczerwone (znane również jako promieniowanie cieplne), które jest odczuwalne, ale nie jest dla nas widoczne. Natężenie tego promieniowania jest tym większe, im wyższa jest temperatura danego przedmiotu.

Powyższe zdjęcie zostało uzyskane za pomocą profesjonalnej kamery FLIR, jednak doskonale oddaje istotę rzeczy. Niestety urządzenia te są bardzo drogie i prędzej spotkamy się z punktowymi przyrządami (pirometrami), szerzej znanymi jako termometrami bez dotykowymi.

Kamera FLIR
flir.jpeg
flir.jpeg (18.97 KiB) Przejrzano 1473 razy
Pirometr UNI-T
unit.jpg
unit.jpg (21 KiB) Przejrzano 1473 razy
Zadaniem pirometru jest więc zmierzenie natęzenia promieniowana podczerwonego emitowanego przez przedmiot, padającego na obszar aktywny czujnika. Tak zmierzoną wielkość czujnik przelicza na odpowiadającą mu temperaturę przedmiotu. Należy jednak pamiętać, że otrzymana wartość jest wartością uśrednioną całkowitego promieniowania padającego na czujnik, dlatego należy pamiętać o doborze odpowiedniej odległości od badanego obiektu, która nie może być zbyt wielka. Jak wielka? Na to pytanie odpowie nam parametr FOV lub współczynnik odległości do rozmiaru obiektu D:S.

Obszar widzenia FOV, a badany obiekt
FOV jest bardzo istotnym parametrem, który definiuje nam z jakiej maksymalnej odległości możemy zmierzyć temperaturę obiektu o określonym rozmiarze. Żeby to dokładnie zrozumieć, musimy uświadomić sobie fakt, że ze względu na budowę czujnika, obszar z którego odbierane jest emitowane promieniowanie podczerwone wyznaczone jest przez okrąg o określonej średnicy. Drugim ważnym elementem jest zachowanie warunku, aby wyznaczony okrąg znajdował się wewnątrz obiektu. Pamiętajmy, że pirometr wyznacza średnią całkowitego emitowanego promieniowania.
mlx90614-pom.png
mlx90614-pom.png (118.15 KiB) Przejrzano 1472 razy
Skoro czujnik przetwarza średnią wartość odbieranego promieniowania, łatwo więc zauważyć, że w drugim przypadku zmierzona temperatura będzie odpowiadała średniej częściowego promieniowaniu emitowanego przez badany obiekt i otoczenia. Co oczywiście przełoży nam się na błędny pomiar.

O tym, jak daleko może znajdować się czujnik od obiektu mówi nam właśnie parametr FOV określony miarą kątową w stopniach.
mlx90614-fov.png
mlx90614-fov.png (43.94 KiB) Przejrzano 1471 razy
W zależności od wersji czujnika MLX90614, kąty pola widzenia FOV wynoszą odpowiednio: 90°, 35°, 12°, 10° i 5°. Im mniejszy jest ten kąt, tym dalej może znajdować się czujnik od badanego obiektu.

Dla kątów mniejszych niż 45° obowiązują zależności, dzięki którym określimy jaka może być maksymalna odległość (jeśli znamy rozmiar obiektu) lub jaki jest maksymalny rozmiar obiektu dla zadanej odległości.

S = tan(δ) * D

D = S / tan(δ)


Załóżmy, że chcemy zbadać temperaturę obiektu oddalonego od czujnika o 100 cm o wartości FOV = 10°:

S = tan(δ) * D
S = tan(10°) * 100 cm
S = 0.1763269807 * 100 cm
S = 17.63269807 cm

Zatem z odległości 1 metra, możemy mierzyć temperaturę obiektu większego niż 17cm. Analogicznie, gdybyśmy chcieli wiedzieć z jakiej maksymalnej odległości możemy zbadać temperaturę obiektu o rozmiarze 5 cm? Proszę bardzo:

D = S / tan(δ)
D = 5 cm / tan(10°)
D = 5 cm / 0.1763269807
D = 28.35640909945 cm

Maksymalna odległośc od obiektu o rozmiarze 5 cm to 28 cm.

Dla kątów większych niż 45° do obliczeń przyjmujemy jego połowę, a otrzymany wynik mnożymy przez 2. Tak też musimy postąpić w przypadku naszego badanego dziś modułu, ponieważ jego kąt widzenia to 90°.

S / 2 = tan(δ / 2) * D
S / 2 = tan(90° / 2) * 1 cm
S / 2 = 1 cm
S = 2 cm

Jak widzimy dla kątą FOV 90° z każdym centymetrem odległości od obiektu jego rozmiar musi być co najmniej dwukrotnie większy niż sama odległość. To całkiem sporo, gdyż z odległości 10 cm, minimalny rozmiar obiektu musi mieć co najmniej rozmiar 20cm. Dlatego mierząc temperaturę tym konkretnym czujnikem, odległość musi być możlwie najmniejsza.

Na tym przykładzie również widzimy, że współczynnik D:S wynosi 1:2.

Współczynnik emisyjności ε
Na dokładność pomiaru temperatury ma również współczynnik emisyjności. O co chodzi? Materiały mają różną zdolność emitowania promieniowania podczerwonego ze swojej powierzchni. Wartość ta zależy głównie od barwy powierzchni jak i jej gładkości. Jak wiadomo, materiały o powierzchni szortstkiej i ciemnej mają większą zdolność emisyjną niż materiały o barwie jasnej i gładkiej. Przykładowo ludzka skóra posiada wpółczynnik emisyjności ε = 0.98, ale już wypolerowane na glanc alumunium ε = 0.05. Tak więc również musimy o tym pamętać, mierząc temperaturę obiektu. W naszym MLX90614,fabrycznie ustawiony jest współczynnik ε = 1.0, który możemy zmienić na etapie użytkowania.

Wybrane martiały i współczynnik ε
tab2.jpg
tab2.jpg (141.11 KiB) Przejrzano 1470 razy
Pamięć RAM / EEPROM
Czujnik MLX90614 posiada wbudowaną pamięć, gdzie przechowywane są wyniki pomiarów oraz 64-bajtową pamięć EEPROM (32 x 16 bitowe rejestry), z której możemy odczytać wartości minimalne i maksymalne badanego obiektu, zakres temperatury otoczenia, skonfigurować wyjście PWM, ustawić parametry filtrów FIR/IIR, skorygować współczynnik emisyjności ε oraz odczytać 8-bajtowy identyfikator produktu. Co ciekawe za pomocą specjalnego rejestru możemy zmienić na stałe adres na magistrali I2c, co pozwala nam podłączyć do 127 czujników do jednej szyny.

Struktura pamięci RAM
tab3.jpg
tab3.jpg (128.84 KiB) Przejrzano 1468 razy
Struktura pamięci EEPROM
tab4.jpg
tab4.jpg (168.03 KiB) Przejrzano 1467 razy
Z naszego punktu widzenia najistotniejsze są rejestry konfiguracji współczynnika emisyjności oraz adresu na szynie I2c. Na pewno przyda nam się również numer identyfikacyjny, gdybyśmy chcieli wiedzieć z którego konkretnie czujnika pochodzą dane w przypadku ich większej ilości. Rejestry 0x00 - 0x03 przydadzą nam się w momencie potrzeby wyjścia danych w formacie PWM (nota aplikacyjna), które nie mają wpływu na wyście w trybie cyfrowym I2c.

Ponieważ nasz czujnik posiada jeden kanał, dostępne dane będą pod adresami rejestrów 0x04. 0x06 oraz 0x07.

Podłączenie do Arduino
Podłączenie modułu nie może być już prostsze. Wystarczy podłączyć zasilanie 5V, masę oraz I2c (piny A4 i A5).
mlx.jpg
mlx.jpg (141.91 KiB) Przejrzano 1466 razy
Biblioteka Adafruit
Jeśli potrzebujemy tylko odczytać pomiary z czujnika, możemy skorzystać z gotowej biblioteki Adafruit_MLX90614.
Adafruit-MLX90614-Library-master.zip
(13.74 KiB) Pobrany 138 razy
Jest ona niestety bardzo prosta i nie umożliwia dostępu do pamięci EEPROM w celu konfiguracji własnego adresu modułu czy zmiany współczynnika emisyjności. Niemniej jednak wykorzystamy nam do prostego przykładu. Za pomocą pomocą poniższego programu odczytamy temperaturę badanego obiektu i temperaturę otoczenia. Tak naprawdę okazuje się, że temperatura otoczenia jest temperaturą samego czujnika. Wyniki możemy prezentować w °C i °F. Jak się okazuje, otrzymane wyniki są powtarzalne i stabilne.

Kod: Zaznacz cały

#include <Wire.h>
#include <Adafruit_MLX90614.h>
 
// Adafruit_MLX90614 mlx = Adafruit_MLX90614(0x5A);
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
 
void setup()
{
  Serial.begin(9600);
  mlx.begin();  
}
 
void loop()
{
  Serial.print("*C: Ta = ");
  Serial.print(mlx.readAmbientTempC());
  Serial.print(", To = ");
  Serial.println(mlx.readObjectTempC());
 
  Serial.print("*F: Ta = ");
  Serial.print(mlx.readAmbientTempF());
  Serial.print(", To = ");
  Serial.println(mlx.readObjectTempF());
 
  Serial.println();
  delay(500);
}
mlx90614-wyniki.jpg
mlx90614-wyniki.jpg (63.21 KiB) Przejrzano 1462 razy
Zmiana adresu I2c
Domyślnie czujnik MLX90614 znajduje się pod adresem 0x5A. Gdy zaistnieje jednak potrzeba wykorzystania kilku takich czujników, konieczne będzie nadanie im unikatowych adresów. W przypadku MLX90614 może być to wartość od 0x00 do 0x7F.

Aby zmienić adres czujnika, musimy wpisać nową wartość adresu do pamięci EEPROM o adresie 0x2E. Aby tego dokonać, wpierw musimy zawartość wymazać, a dopiero potem zapisać.

O ile z odczytem zawartości pamięci EEPROM nie ma problemu, to do zapisu będziemy potrzebowali jeszcze wyliczyć kod PEC, który opiera się na CRC8 z wielomianem X8+X2+X1+1 (funkcja crc8())

Nowy adres wpisujemy do zmiennej uint16_t newAddr = 0x70; Ponieważ program wykorzystuje adres rozgłoszeniowy 0x00 do odnalezienia czujnika, należy pamiętać, że czujnik musi znajdować się sam na magistrali I2c podczas całego procesu.

Po wymazaniu i zapisaniu nowej wartości, program będzie czekał 10 sekund, abyśmy mieli czas na odłączenie czujnika od zasilania i ponowne jego podłączenie.

Kod: Zaznacz cały

#include <Wire.h>
 
uint16_t newAddr = 0x70;
 
uint8_t crc = 0;
uint8_t addr = 0;
 
uint8_t crc8(uint8_t data)
{
    uint8_t i = 8;
    crc ^= data;
    while (i--) crc = crc & 0x80 ? (crc << 1) ^ 7 : crc << 1;
    return crc;
}
 
uint16_t read16(uint8_t cmd)
{
    uint16_t val;
    uint8_t pec,pec2;
    crc = 0;
    
    Wire.beginTransmission(addr);
    Wire.write(cmd);
    Wire.endTransmission(false);
    
    delayMicroseconds(125);
 
    Wire.requestFrom(addr, (uint8_t)3);
 
    val = Wire.read();
    val |= Wire.read() << 8;
 
    pec = Wire.read();
    
    crc8(addr << 1);
    crc8(cmd);
    crc8((addr << 1) + 1);
    crc8(lowByte(val));
 
    pec2 = crc8(highByte(val));
 
    if (pec != pec2)
    {
       Serial.print("!PEC ERROR! ");
    }
 
    return val;
}
 
void write16(uint8_t cmd, uint16_t data)
{
    uint8_t pec;
    crc = 0;
 
    crc8(addr << 1);
    crc8(cmd);
    crc8(lowByte(data));
    pec = crc8(highByte(data));
 
    Wire.beginTransmission(addr);
    Wire.write(cmd);
 
    Wire.write(lowByte(data));
    Wire.write(highByte(data));
 
    Wire.write(pec);
    
    Wire.endTransmission(true);
}
 
void setup()
{
  Wire.begin();
    
  Serial.begin(115200);
 
  Serial.println("Zapodaj dowolny znak i enter...");
 
  while (!Serial.available()) {  }
 
  if ((addr == 0x00) && (newAddr &= 0x7F))
  {
    Serial.print("Szukam adresu czujnika ... ");
    addr = read16(0x2E);
    Serial.print("0x"); Serial.println(addr, HEX);
    
    if (newAddr != addr)
    {
      Serial.print("Zmienam adres czujnika z ");
      Serial.print("0x"); Serial.print(addr, HEX);
      Serial.print(" na ");
      Serial.print("0x"); Serial.println(newAddr, HEX);
 
      Serial.println("Czyszczenie komorki...");
      write16(0x2E, 0x0000);
      
      delay(1000);
      
      Serial.println("Zapisywanie komorki...");
      write16(0x2E, newAddr);
 
      Serial.println("Gotowe... odlacz i podlacz zasilanie czujnika.");
      Serial.println("Za 10s nastapi ponowne wyszukiwanie adresu.");
 
      for (byte i = 0; i < 10; i++)
      {
        delay(1000); Serial.println("*");
      }
     
      addr = 0;
      Serial.print("Ponownie szukam adresu czujnika ... ");
      addr = read16(0x2E);
      Serial.print("0x"); Serial.println(addr, HEX);
    } else
    {
      Serial.print("Czujnik juz posiada adres ");
      Serial.print("0x"); Serial.print(addr, HEX);
    }
  } else
  {
     Serial.println("Blad. Nowy adres moze byc od 0x01 - 0x7F");
  }
}
 
void loop()
{
}
mlx90614-zmiana-adresu.jpg
mlx90614-zmiana-adresu.jpg (56.54 KiB) Przejrzano 1459 razy
Zmiana współczynnika emisyjności
Współczynnik emisyjności ustawiamy w rejestrze pamięci EEPROM o adresie 0x24. Jego wartość wylicza się na podstawie poniższego wzoru:

Emissivity = 65535 * ε
dla ε = 0 ... 1

Przykładowo dla wartości ε = 0.98:

Emissivity = 65535 * 0.98 = 64224 = 0xFAE0

Przydatna może okazać się również zależność, dzięki której chcielibyśmy wyznaczyć współczynnik emisyjności ε na podstawie odczytu temperatury z czujnika MLX90614 (Tomeas) i rzeczywistej temperatury zmierzonej termometrem dotykowym (Toreal). Do wyznaczenia współczynnika emisyjności będziemy potrzebowali jeszcze temperatury otoczenia (Ta):

Emissivity = (Tomeas4 - Ta4) / (Toreal4 - Ta4)

Zalecane jest, aby temperatura badanego obiektu była wyższa od temperatury otoczenia co najmniej 5°C.

Kod: Zaznacz cały

#include <Wire.h>
 
uint8_t crc = 0;
uint8_t addr = 0x70;
 
char buff[20];
 
uint8_t crc8(uint8_t data)
{
    uint8_t i = 8;
    crc ^= data;
    while (i--) crc = crc & 0x80 ? (crc << 1) ^ 7 : crc << 1;
    return crc;
}
 
uint16_t read16(uint8_t cmd)
{
    uint16_t val;
    uint8_t pec,pec2;
    crc = 0;
    
    Wire.beginTransmission(addr);
    Wire.write(cmd);
    Wire.endTransmission(false);
    
    delayMicroseconds(125);
 
    Wire.requestFrom(addr, (uint8_t)3);
 
    val = Wire.read();
    val |= Wire.read() << 8;
 
    pec = Wire.read();
    
    crc8(addr << 1);
    crc8(cmd);
    crc8((addr << 1) + 1);
    crc8(lowByte(val));
 
    pec2 = crc8(highByte(val));
 
    if (pec != pec2)
    {
       Serial.print("nPEC ERROR! ");
       Serial.print(pec, HEX);
       Serial.print(":");
       Serial.println(pec2, HEX);
    }
 
    return val;
}
 
void write16(uint8_t cmd, uint16_t data)
{
    uint8_t pec;
    crc = 0;
 
    crc8(addr << 1);
    crc8(cmd);
    crc8(lowByte(data));
    pec = crc8(highByte(data));
 
    Wire.beginTransmission(addr);
    Wire.write(cmd);
 
    Wire.write(lowByte(data));
    Wire.write(highByte(data));
 
    Wire.write(pec);
    
    Wire.endTransmission(true);
}
 
void setup()
{
  uint16_t eraw;
  float e;
 
  Wire.begin();
    
  Serial.begin(115200);
 
  Serial.println("Zapodaj dowolny znak i enter...");
 
  while (!Serial.available()) {  }
 
  Serial.print("Aktualny e=");
  eraw = read16(0x24);
  e = eraw / 65535.0;
  Serial.println(e);
 
  eraw = 0.95 * 65535;
  Serial.print("Zapisuje nowa wartosc eraw = ");
  Serial.println(eraw, HEX);
 
  write16(0x24, 0x0000);
  delay(1000);
  write16(0x24, eraw);
  delay(1000);
      
  Serial.print("Aktualny e=");
  eraw = read16(0x24);
  e = eraw / 65535.0;
  Serial.println(e);
}
 
void loop()
{
}
mlx90615-zmiana-e.jpg
mlx90615-zmiana-e.jpg (32.19 KiB) Przejrzano 1457 razy
Porównanie na tle innych czujników i przyrządów
Do porównania wyników z naszym czujnikiem wykorzystamy dwa termometry bezdotykowe - medyczny Microlife NC 150 (w trybie pracy pomiaru przedmiotów i płynów) oraz techniczny UNI-T UT300C. Dla wszystkich trzech e=0.95
mlx90614-wyk.png
mlx90614-wyk.png (72.74 KiB) Przejrzano 1456 razy
MLX90614 prezentował prawie identyczne wyniki co Microlife NC150. Zupełnie zaskoczony jestem tutaj UNI-T UT300C. Albo myliła się para konkurencyjna... albo on :)

Mam hipotermię?!
Czy badanym dziś czujnikiem możemy zmierzyć temperaturę ciała? Można, ale tutaj zaczynają się pewne schody. Pomimo znanego współczynnika emisyjności dla ludzkiej skóry ε = 0.98, zmierzona temperatura na dłoni wyniosła 33.2°C. To by wskazywało na stan hipotermii spowodowany zbyt szybkim ochładzaniem organizmu, gdzie temperatura ciała dla zdrowej osoby powinna być w okolicach 36,6°. Nie posiadam jednak typowych objawów hipotermii: zawrotów głowy, odczuwanie niepokoju, brak wrażliwości na bodźce.

Wszystko jest w porządku, ponieważ pirograf nie mierzy temperatury ciała, a temperaturę powierzchni skóry dla której normalna temperatura mieści się w granicy 32°C - 34°C. Taka temperatura wynika z faktu znaczącego udziału naszej skóry w zachowaniu bilansu cieplnego i termoregulacji ciała. Czy to oznacza, że możemy do niej dodać stałe "kilka stopni", aby otrzymać właściwą temperaturę ciała? Absolutnie nie.

Na rynku są dostępne termometry bezdotykowe, które mierzą temperaturę ciała, zacząłem więc poszukiwać informacji na ten temat, przebywając długą i ciekawą drogę po publikacjach medycznych. I chociaż muszę przyznać, że lekarzy boję się jak braku prądu, to temat okazał się pasjonujący i bardzo ciekawy.

Wśród przeróżnych metod pomiaru temperatury rdzenia (ciała) były i takie, które wykorzystywały metody chirurgiczne. Niestety moja asystentka odmówiła udziału w badaniu, więc niepocieszony czytałem na ten temat co raz więcej. Każda część ciała wydziela inną dawkę ciepła, więc naturalną siłą rzeczy będą różne jego wskazania w różnych jego miejscach. Na dokładniejsze odczyty pozwalają pomiary temperatury w ustach lub w najcieplejszym miejscu - wnętrza ucha. Oczywiście znów metoda inwazyjna, więc asystentka ponownie odmówiła udziału.
images.jpg
images.jpg (36 KiB) Przejrzano 1454 razy
Do wyznaczenia temperatury ciała istnieje metoda, która uwzględnia zasady utraty ciepła z powierzchni ludzkiej skóry, znana jako: tętniczy bilans cieplny (AHB - Arterial Heat Balance) dla tętnicy skroniowej, uwzględniającą średnią ważoną pomiędzy temperaturą powierzchni (Ts), a temperaturą otoczenia (Ta).

Tciała = k * (Ts - Ta) + Ts

Pojawia się dodatkowy współczynnik "k", który zależy od szybkości perfuzji krwi, konkretnie przepływu przez tkankę lub narząd. W obszarze tętnicy skroniowej współczynnik "k" wynosi od 0.09 do 0.13. Typowo przyjmuje się wartość k=0.13 oraz ε=0.95. Dalej jednak jest to metoda przybliżona, gdyż na temperaturę skóry wpływa jeszcze wiele innych czynników. Warto do pomiaru temperatury otoczenia Ta skorzystać z dodatkowego czujnika. Zbliżenie MLX90614 na tyle blisko do badanego przedmiotu powoduje jego ogrzanie. W zależności od miejsca (np. czoła) współczynnik "k" będzie naturalnie inny.
mlx2.jpg
mlx2.jpg (134.64 KiB) Przejrzano 1452 razy
Więc jeśli myślicie, że termometr bezdotykowy mierzy naszą temperaturę ciała prawidłowo - to nie - nie mierzy i nigdy nie będzie, jak drogi by nie był.

Ciekawostki warte uwagi
Czy możemy zmierzyć temperaturę powietrza?

I tak, i nie. Nie, ponieważ powietrze nie emituje podczerwieni. Tak, ponieważ możemy zbadać temperaturę wszystkiego, co ma taką samą temperaturę jak powietrze. Na zewnątrz mogą to być liście, drzewa, trwa (w cieniu). Wewnątrz budynku może to być kawałek papieru.

Czy termometr IR jest szkodliwy?

Nie, ponieważ nie emituje żadnego promieniowania, tylko mierzy. W przypadku termometrów z wskaźnikiem laserowym pomagającym na określenie środka badanego obszaru należy pamiętać, aby nie celować wskaźnikiem w oczy. Medyczne termometry z reguły nie posiadają laserowego celownika, a zwykłą, punktową diodę LED, na przykład niebieską.

Z jakich odległości można mierzyć temperaturę?

Promieniowanie podczerwone mieści się w zakresie 8μm do 15μm. Ziemska atmosfera w większości przypadków jest przeźroczysta dla tego zakresu długości fali. Możliwe jest więc zmierzenie temperatury nawet do 100 metrów - o ile nie pada, nie ma mgły, czy większych zanieczyszczeń powietrza. Z odległości 1km również jest to możliwe, ale będziemy potrzebować odpowiedniego tła obiektu do odczytu.

Czy czujnik dzaiała w ciemnościach?

Tak. Właściwość ta szczególnie wykorzystywana jest przez wojsko.

Czy możliwe jest przenikanie badanego obiektu i zmierzenia temperatur w jego środku?

Nie. Wewnętrzna temperatura nie może być zmierzona, chyba że zależy ona od temperatury powierzchni. Takie rzeczy spotkasz tylko w filmach.

Czy mogę zmierzyć temperaturę rybki w akwarium?

Nie. Woda i szkło są przeźroczyste jedynie dla światła widzialnego, ale nie dla podczerwieni. Promieniowanie podczerwone wysyłane przez rybkę nie przeniknie wody, więc w praktyce zmierzymy tylko temperaturę szkła lub wody. Podobnie mierząc temperaturę swojego pupila, zmierzysz temperaturę jego sierści.

Czy wszystkim obiektom da się zmierzyć temperaturę?

Niektóre materiały są trudne do zmierzenia temperatury - np. złoto czy bardzo lśniące metale. Złoto rozgrzane do temperatury 125°C, będzie odczytane jako ~25°C stopni, ponieważ będziemy mierzyć jedynie odbicie. Możemy zaradzić temu poprzez matowienie powierzchni obiektu lub naklejąjąc na nią zwykłą, czarną taśmę elektroizolacyjną.

Wróć do „16. Zdalny miernik temperatury( pirometr)”