DFRobot TC01 Non-contact 16x4 Pixel Infrared Temperature Sensor

Introduction

The main function of this TC01 non-contact 16x4 pixel infrared temperature sensor is to realize remote temperature detection via non-contact 16x4 pixel infrared. It can detect the environment temperature, and its 16x4 pixels support producing temperature figure of 64 pixels. The sensor adopts metal crust, which is waterproof, dustproof and ensures high anti-interference even in varieties of complex scenarios. The standard Modbus-RTU industrial protocol RS485 interface is adopted. So that it is compatible with a variety of industrial personal computer. It can be widely applied to applications like high-precision contactless temperature testing, temperature scanners, intrusion/motion detection, status detection/human positioning and so on.

Specification

Overview

Board Overview

Num Wire Color Description
1 White VCC(+)
2 Black GND(-)
3 Orange RS485-A
4 Brown RS485-B

Pixel Arrangement Schematic

Pixel Schematic

warning_yellow.png NOTE: The infrared array has 16x4 pixels in all.

Description about FOV and Distance

The field-of-view angle of the sensor is 60°x 16°. The maximum distance between the target under test and the measuring head is depended on the size of the target being measured and the optical characteristics of the infrared thermometer.

Sensor FOV

Measurement Accuracy Change

Accuracy Change

Annotation: To-Measure temperature Ta-ambient temperature

warning_yellow.png NOTE:

  • All precision specifications are only applicable to stable temperature conditions.
  • Accuracy is only effective if the object is fully covered by the sensor's field-of-view angle.
  • The precision parameters shown in the figure are the accuracy of the four center pixels of the product, and the accuracy of the remaining pixels depends on the uniformity declaration.
  • Due to long-term (year) drift, the temperature of the measured object near room temperature may have an additional measurement deviation of ±3°C.

Modbus -RTU Register Table

Description: support Modbus function codes: 0x03, 0x06, 0x10

SEN0254-RegisterMap-EN-20052101

Tutorial

Requirements

Install Library

Connection Diagram

Hardware Connection

Sample Code


#include <ArduinoModbus.h>
#include <ArduinoRS485.h>

#define baudRate 19200
#define addr 0x0A

float To[64]= {0.0};
float Ta= 0.0;

void getTa()
{
    if (!ModbusRTUClient.requestFrom(addr, HOLDING_REGISTERS, 0x45,1)) 
    {
        Serial.println("error: ");
        Serial.println(ModbusRTUClient.lastError());
    } 
    else 
    {
        Ta= ModbusRTUClient.read()/10.0;
    }
    delay(100);
}

void getTo()
{
  for(uint8_t row=0;row<4;row++)
  {
    if (!ModbusRTUClient.requestFrom(addr, HOLDING_REGISTERS, 0x05+(row*0x10),0x10)) 
    {
        Serial.print("error: ");
        Serial.println(row);
        Serial.println(ModbusRTUClient.lastError());
    } 
    else 
    {
        for(uint8_t i=0; i<16; i++)
        {
            To[row*16+i]=ModbusRTUClient.read()/10.0;
        }
    }
    delay(100);
  }
}

void setup() {
    Serial.begin(baudRate);
    ModbusRTUClient.begin(baudRate);
}

void loop() {

    /**********Ta*****************/
    getTa();
    Serial.println("======== Ta ========");
    Serial.println(Ta,1);

    /**********TO**********************/
    getTo();
    Serial.println("======== To ========");
    for(uint8_t i=0; i<64; i++)
    {
        Serial.print(To[i],1);
        Serial.print("  ");
        if((i+1)%16==0)Serial.println();
    }
    delay(100);
}

Expected Results

Output

Visual Testing Software

Connection Diagram

Please refer to the hardware connection above(but there is no need to install library).


*
This code realizes the function to transform Leonardo USB to 485. And you can also test it with other DF USB to 485 tools.
*/
void setup() {
  Serial.begin(19200); //Initializing Serial (i.e. USB serial)
  Serial1.begin(19200);//Initializing Serial
}
void loop() {
  while (Serial1.available()) {
    Serial.write(Serial1.read());//If Serial1 receives data, then Serial will output it.
  }
  while (Serial.available()) {
    Serial1.write(Serial.read());//If Serial receives data, then Serial1 will output it.
  }
  delay(1);//Short delay to avoid USB-COM instability
}

Host Computer Software

Click to download TC01 measurement tool.

Visual Display

FAQ

For any questions, advice or cool ideas to share, please visit the DFRobot Forum

More Documents