Most of the electronic & electrical components are rated to work in certain temperature ranges. But, the performance of these components can get reduced once the temperature increases from a specified range. Once the temperature crosses the maximum acceptable limit, then components will get damaged because of thermal runaway or heating. So, thermal characteristics play an essential role when selecting different components for electronic circuits. Thermal sensors are used for maintaining reliability and performance in consumer electronics, industrial and automotive applications. This article discusses an overview of a thermal sensor – working with applications.
What is a Thermal Sensor?
A thermal sensor definition is; a sensor that is used to measure the temperature of a system/space. Thermal sensors are mainly developed to use in an extensive range of applications which ranges from industrial process monitoring to environmental control. These sensors are capable of measuring different thermal signals like temperature, acceleration, angular velocity & flow. The most frequently used thermal sensors are thermocouples which are used in automotive, consumer, and industrial applications. The thermal sensor diagram is shown below.
Types of Thermal Sensor
Understanding different kinds of thermal sensor are very significant to select an appropriate thermal sensor for your application without compromising sensitivity & accuracy. Thermal sensors are classified into different types which are discussed below.
Thermocouples
Thermocouples are nonlinear sensors where their temperature, as well as sensitivity ranges, differ by the types of metals bound together. The thermocouple accuracy is extremely low; however, the operation they provide is a wide range that ranges from -200℃ – 1750 ℃.
Thermocouples are the most frequently used thermal sensors in various applications. This thermal sensor working principle is the Seebeck effect principle which states that the difference in temperature between two different metal wires generates a voltage difference. So this difference is proportional to the change in temperature.
Resistance Temperature Detectors
In resistance temperature detectors or RTDs, the change within the resistance is mainly used for detecting temperature. These thermal sensors need materials that have a well-defined resistance-temperature relationship. For RTDs, the best material is Platinum due to its relationship between variation in temperature and change in resistance. Platinum material RTDs are very accurate, stable & have repeatability within measurement, including an operation range from -270℃ to 850℃. In these sensors, other materials are also used like copper, and nickel but the accuracy is less by these metals.
Thermistors
Thermistors use resistance in the measurement of temperature similar to resistance temperature detectors. The materials used by these thermal sensors are ceramic or polymer in place of copper & platinum so these sensors are available at less cost however they are less accurate as compared to RTDs. Thermistors are available in two types NTC and PTC.
The NTC thermistor is also known as the negative temperature coefficient. In these sensors, the change within the resistance is inversely proportional to the change in temperature. The PTC thermistor is also known as the positive temperature coefficient. In these types of sensors, the change within the resistance is directly proportional to the change in the temperature.
Thermometers
Thermometers play a key role in measuring the temperature of any liquids or solids. In these types of thermal sensors, the measurements of temperature are proportional to the change in the volume of the temperature detecting element filled in the thermometer. The thermometer’s accuracy mainly depends on the device size & the liquid utilized as the temperature detecting element.
Semiconductor Thermal Sensors
These types of thermal sensors are available as temperature sensor ICs which detect the change in temperature from the variation within the output quantities like voltage, resistance, current, etc. These integrated circuits are extremely accurate & linear from the range of temperatures like 55℃ – 155℃.
Thermal Sensor Arduino
The seat occupation detection using D6T Thermal Sensor and with Arduino is shown below. This interfacing provides information on how to use the D6T Thermal Sensor with Arduino board to detect the occupancy of the seat by simply measuring temperature.
Required Components
The required components of this interfacing mainly include Evaluation Board by Omron Electronic Components, Omron D61 thermal sensor, Arduino MKR WiFi 1010, Harness, USB Cable for connecting PC & Arduino and PC and Windows PC. This interfacing describes how to use the D6T Thermal Sensor for detecting the occupancy of the seat by simply measuring temperature through the Arduino board.
D6T Thermal Sensor for Human Detection
The D6T series MEMS thermal sensor from Omron Electronics is a super-sensitive IR temperature sensor that uses MEMS sensing technology. This sensor is capable of detecting the presence of motionless humans by detecting heat from the body and is also used automatically to turn off needless lighting, and AC when peoples are not there. This sensor is also used to monitor the room’s temperature and also maintains optimal room temperature levels, continually it detects strange changes in temperature so detecting factory line stoppages otherwise find out overheating areas for early fire outbreaks prevention.
D6T MEMS Thermal Sensor Features & Specifications
The features and specifications of the thermal sensor include the following.
- D6T thermal sensors are created completely from Omron’s proprietary ASIC, MEMS & other application-specific parts to make sure high sensitivity.
- High S/N ratio.
- The crosstalk characteristics of a low visual field allow high-precision region temperature detection.
- Digital I2C o/p for superior noise immunity.
- Unique ASIC & MEMS technologies attain a high signal-to-noise ratio.
- Higher noise immunity through a digital output.
- RoHS compliant.
- The range of storage temperature is -10 ℃ to 60°C.
- The range of operating temperature is 0℃ to 50°C.
- Range of storage humidity 85%RH or less.
- Range of operating humidity 20%RH to 85%RH.
- The voltage supply ranges from 4.5 to 5.5V.
- The highest output voltage is 0.8V – 1V.
- The least output voltage is 0 to 0.2V.
- Current utilization is typically 5mA.
- The accuracy of object temperature is ±1.5 ℃.
- The maximum data update rate is 250ms.
Omron Evolution Board (2JCIE-EV01-AR1)
The evaluation board simply supports different evaluation platforms like Arduino, Raspberry Pi, & Adafruit Feather because these boards are easily connected to different sensors over four different sensor categories like flow sensors, thermal sensors, air quality sensors & light convergent reflective sensors because it offers different interfacing options like I2C interfacing, UAT, Analog, Digital, etc. Here, I2C is used for communication purposes with MKR WiFi 1010 board. These sensor-based evaluation boards are equipped with sensing function types like Temperature, Light, Humidity, Acceleration, Noise, and Barometric pressure.
Arduino MKR WiFi 1010
The Arduino MKR WiFi 1010 is the best choice for beginners, makers, or professionals to begin with IoT (Internet of Things). This board belongs to the MKR family, where you can select from a large range of shields to design projects with minimum effort. If you are seeking for designing a sensor network for your home router, or office or to make a low-energy Bluetooth device to transmit data to a cell phone, then MKR WiFi 1010 is the best solution for different IoT applications.
Connections/Wiring
Basically, the wiring section explains how to give the connection between Arduino, Evaluation Board and sensors. Ensuring proper connections is the basic need when working on any type of system for the preferred output. The wiring connections between these components follow as;
First, we need to solder the evaluation board in order to connect the Arduino board by mounting.
After that, connect the USB cable to the USB port of the Arduino board & PC
Connect the Omron 2JCIE-HARNESS-01 one end to the ‘CN5’ of the evolution board whereas another end of this harness is connected with Omron D6T thermal sensor. But this sensor must be placed in the human detection area.
Arduino Code
For the evolution of sensors, the sample source code is available on GitHub. So that can be modified & implemented separately based on the unique application of users.
#include <Wire.h>
/* defines */
#define D6T_ADDR 0x0A // for I2C 7bit address
#define D6T_CMD 0x4C // for D6T-44L-06/06H, D6T-8L-09/09H, for D6T-1A-01/02
#define N_ROW 8
#define N_PIXEL 8
#define N_READ ((N_PIXEL + 1) * 2 + 1)
/***** Setting Parameter *****/
#define comparingNumInc 6 // x250 ms (example) 6 -> 1.5 sec
#define comparingNumDec 6 // x250 ms (example) 6 -> 1.5 sec
#define threshHoldInc 10 // /10 degC (example) 10 -> 1.0 degC
#define threshHoldDec 10 // /10 degC (example) 10 -> 1.0 degC
bool enablePix[8] = {true, true, true, true, true, true, true, true};
/****************************/
uint8_t rbuf[N_READ];
int16_t pix_data[8] = {0};
int16_t seqData[8][40] = {0};
bool occuPix[8] = {0};
bool occuPixFlag = false;
uint8_t resultOccupancy = 0;
uint16_t totalCount = 0;
/** JUDGE_occupancy: judge occupancy*/
bool judge_seatOccupancy(void) {
int i = 0;
int j = 0;
for (i = 0; i < 8; i++){
for (j = 0; j < 39; j++){
seqData[i][39 – j] = seqData[i][38 – j];
}
seqData[i][0] = pix_data[i];
}
if (totalCount <= comparingNumInc){
totalCount++;
}
if (totalCount > comparingNumInc){
for (i = 0; i < 8; i++){
if (enablePix[i] == true){
if (occuPix[i] == false){
if (seqData[i][0] – seqData[i][comparingNumInc] > threshHoldInc){
occuPix[i] = true;
}
}
else{ //resultOccupancy == true
if (seqData[i][comparingNumDec] – seqData[i][0] > threshHoldDec){
occuPix[i] = false;
}
}
}
}
if (resultOccupancy == 0) {
for (i = 0; i < 8; i++){
if(occuPix[i] == true){
resultOccupancy = 1;
break;
}
}
}
else{
occuPixFlag = false;
for (i = 0; i < 8; i++){
if (occuPix[i] == true){
occuPixFlag = true;
break;
}
else{
}
}
if (occuPixFlag == false){
resultOccupancy = 0;
}
}
}
return true;
}
uint8_t calc_crc(uint8_t data) {
int index;
uint8_t temp;
for (index = 0; index < 8; index++) {
temp = data;
data <<= 1;
if (temp & 0x80) {data ^= 0x07;}
}
return data;
}
/** <!– D6T_checkPEC {{{ 1–> D6T PEC(Packet Error Check) calculation.
* calculate the data sequence,
* from an I2C Read client address (8bit) to thermal data end.
*/
bool D6T_checkPEC(uint8_t buf[], int n) {
int i;
uint8_t crc = calc_crc((D6T_ADDR << 1) | 1); // I2C Read address (8bit)
for (i = 0; i < n; i++) {
crc = calc_crc(buf[i] ^ crc);
}
bool ret = crc != buf[n];
if (ret) {
Serial.print(“PEC check failed:”);
Serial.print(crc, HEX);
Serial.print(“(cal) vs “);
Serial.print(buf[n], HEX);
Serial.println(“(get)”);
}
return ret;
}
/** <!– conv8us_s16_le {{{1 –> convert a 16bit data from the byte stream.
*/
int16_t conv8us_s16_le(uint8_t* buf, int n) {
int ret;
ret = buf[n];
ret += buf[n + 1] << 8;
return (int16_t)ret; // and convert negative.
}
/** <!– setup {{{1 –>
* 1. initialize a Serial port for output.
* 2. initialize an I2C peripheral.
*/
void setup() {
Serial.begin(115200); // Serial baudrate = 115200bps
Wire.begin(); // i2c master
Wire.beginTransmission(D6T_ADDR); // I2C client address
Wire.write(0x02); // D6T register
Wire.write(0x00); // D6T register
Wire.write(0x01); // D6T register
Wire.write(0xEE); // D6T register
Wire.endTransmission(); // I2C repeated start for read
Wire.beginTransmission(D6T_ADDR); // I2C client address
Wire.write(0x05); // D6T register
Wire.write(0x90); // D6T register
Wire.write(0x3A); // D6T register
Wire.write(0xB8); // D6T register
Wire.endTransmission(); // I2C repeated start for read
Wire.beginTransmission(D6T_ADDR); // I2C client address
Wire.write(0x03); // D6T register
Wire.write(0x00); // D6T register
Wire.write(0x03); // D6T register
Wire.write(0x8B); // D6T register
Wire.endTransmission(); // I2C repeated start for read
Wire.beginTransmission(D6T_ADDR); // I2C client address
Wire.write(0x03); // D6T register
Wire.write(0x00); // D6T register
Wire.write(0x07); // D6T register
Wire.write(0x97); // D6T register
Wire.endTransmission(); // I2C repeated start for read
Wire.beginTransmission(D6T_ADDR); // I2C client address
Wire.write(0x02); // D6T register
Wire.write(0x00); // D6T register
Wire.write(0x00); // D6T register
Wire.write(0xE9); // D6T register
Wire.endTransmission(); // I2C repeated start for read
}
/** <!– loop – Thermal sensor {{{1 –>
* 1. read sensor.
* 2. output results, format is: [degC]
*/
void loop() {
int i, j;
memset(rbuf, 0, N_READ);
// Wire buffers are enough to read D6T-16L data (33bytes) with
// MKR-WiFi1010 and Feather ESP32,
// these have 256 and 128 buffers in their libraries.
Wire.beginTransmission(D6T_ADDR); // I2C client address
Wire.write(D6T_CMD); // D6T register
Wire.endTransmission(); // I2C repeated start for read
Wire.requestFrom(D6T_ADDR, N_READ);
i = 0;
while (Wire.available()) {
rbuf[i++] = Wire.read();
}
if (D6T_checkPEC(rbuf, N_READ – 1)) {
return;
}
// 1st data is PTAT measurement (: Proportional To Absolute Temperature)
int16_t itemp = conv8us_s16_le(rbuf, 0);
Serial.print(“PTAT:”);
Serial.print(itemp / 10.0, 1);
Serial.print(“, Temperature:”);
// loop temperature pixels of each thrmopiles measurements
for (i = 0, j = 2; i < N_PIXEL; i++, j += 2) {
itemp = conv8us_s16_le(rbuf, j);
pix_data[j – 2] = itemp;
Serial.print(itemp / 10.0, 1); // print PTAT & Temperature
if ((i % N_ROW) == N_ROW – 1) {
Serial.print(” [degC]”); // wrap text at ROW end.
} else {
Serial.print(“,”); // print delimiter
}
}
judge_seatOccupancy(); //add
Serial.print(“, Occupancy:”);
Serial.println(resultOccupancy, 1);
delay(250);
}
// vi: ft=arduino:fdm=marker:et:sw=4:tw=80
The D6T thermal sensor needs to be connected horizontally by facing toward the detection area of human seating. So, this sensor must be connected in such a way that the face of humans is within the view of the field.
The output from this thermal sensor is simply temperature values that define whether a person is there on the seat or not. If the seat is in use then the occupancy output is 1 and if a seat is not used then the occupancy output is 0.
This thermal sensor can measure the temperature of the target’s surface without touching it but by obtaining radiant heat from the object through thermopile elements. With its non-contact target surface temperature measurement, these sensors can give to better amenity, energy saving, and improvement of productivity by simply detecting an object/ a human/abnormal equipment’s heat generation in a variety of places like a building, home, and/or factory.
Thermal Sensor Vs Temperature Sensor
The difference between the thermal sensor and temperature sensor includes the following.
Thermal Sensor | Temperature Sensor |
A thermal sensor is an element, used to measure the change in temperature by the change of sensor materials’ electrical properties. | The temperature sensor is a device, used to measure the temperature of its surroundings & change the i/p data into electronic data to monitor, and record otherwise changes in signal temperature. |
The thermal sensor is selected based on its accuracy & responsiveness. | The temperature sensor is selected based on size, accuracy, noise immunity, stability, etc. |
These sensors are mainly used in a broad range of applications which range from industrial process monitoring to environmental control. | These sensors are used in industrial and commercial applications. |
As compared to temperature sensors, these sensors’ price is less. | These sensors’ price is high. |
Advantages
The advantages of thermal sensors are given below.
- Thermal sensors are extremely simple to utilize
- Widespread use and less expensive
- These sensors provide superior technical characteristics that are driving main changes within several fields.
- These are not expensive.
- Quick response time.
- These are durable.
- They have a simple construction.
- Accuracy is good.
- These are rugged.
Disadvantages
The disadvantages of thermal sensors are given below.
- These are nonlinear.
- Recalibration is not easy.
- More vulnerable to EMI/ RFI.
- These have a less o/p voltage.
- When the output voltage is extremely small then it requires amplification
Applications
The applications of thermal sensors are given below.
- Thermal sensors are used everywhere like in our refrigerators, kettles, water heaters, microwaves, etc.
- Non-contact thermal sensors are used in the COVID-19 pandemic to check temperatures.
- These are also used in food processors, medical systems, petrochemical systems, boilers, etc.
- These sensors are used for monitoring the temperature of gases, solids, or liquids at a wide range of temperatures.
- These types of sensors measure the surfaces’ temperature, whether they are organic, geologic, or man-made.
- These are used in a broad range of markets which ranges from sports & leisure to defense & automotive.
- Thermal Sensor Specification
- The specifications of the thermal sensor include the following.
Know more about Resistance Temperature Detector MCQs.
Thus, this is an overview of a thermal sensor – working with applications. Thermal sensors are available in different types and each type is different based on responsiveness as well as accuracy. Here is a question for you, what is a temperature sensor?