비접촉 적외선 온도 센서 -MLX90614, UART 출력

(Non-Contact Infrared Temperature Sensor

-MLX90614, UART Serial Output)

개요

  • 본 제품은 MLX90614를 탑재한 비접촉 적외선 온도센서입니다.
  • 이 제품의 독특한 점은 측정된 온도를 내부적으로 계산하여 UART 시리얼로 출력을 하여 준다는 점입니다.
  • 쉽게 온도를 측정할 수 있으며, 3-5V 전원으로 동작합니다.
  • 타켓온도를 -70도에서 380도까지 측정할 수 있으며, 주변온도를 -40도에서 125도까지 측정이 가능합니다.
  • PC에서 데이터를 읽어 올수 있는 소프트웨어가 제공됩니다. (Serial-USB 변환 연결)

특징

  • Power supply: 3-5v
  • Current: 5ma
  • The baud rate is 9600 or 115200
  • Size: 18mm * 16.5mm * 5mm (L * W * H)
  • Mounting hole 3mm, installation hole spacing 11.5mm, row needle spacing 2.54mm
  • Pin definition: VCC/GND = Power Supply, TX/RX = Serial UART interface, RST SIM --> N/C
  • Measurement range:
    -40… +125 C degree for ambient temperature
    -70… +380 C degree for measurement target temperature
    Measuring distance: close range 5-10cm

문서

  • PC Software
  • Serial default baud rate 115200, configurable 9600, serial example setup 115200, N, 8, 1
  • Serial commands

    • Frame start 0x45
    • commands full combination, frame start 0x45 + data + sum 8bit

    Output

    0xA5+0x45+0xEA continisouly output temperature data  0xA5+0x15+0xBA check/enquiry output temperature data  

    Baudrate config

    0xA5+0xAE+0x53   -- 9600  0xA5+0xAF+0x54   -- 115200 (default)  

    Power up and output data

    0xA5+0x51+0xF6--------------- direct output when power up  0xA5+0x52+0xF7---------------  NOT direct output when power up
  • Serial data output

    • Can also use a PC tool to read data directly
    1. Byte0: 0x5A Frame header flag
    2. Byte1: 0x5A Frame header flag
    3. Byte2: 0X45 The frame data type (0X45: temperature data)
    4. Byte3: 0x04 Data volume (the following four data 2 group as an example)
    5. Byte4: 0x00 ~ 0xFF 1 high 8 bits of data
    6. Byte5: 0x00 ~ 0xFF Lower 8 bits of data1
    7. Byte6: 0x00 ~ 0xFF Data 2 Upper 8 bits
    8. Byte7: 0x00 ~ 0xFF Lower 8 bits of data2
    9. Byte8: 0x00 ~ 0xFF Checksum (in front of the sum of data, leaving only 8 low)
    • temperature = high 8 bit << 8 | low 8 bit (multiply 100 =result )
    • for example, <5A- 5A- 45- 04- 0C- 78- 0D- 19- A7 >
  • TO=0x0C78/100=31.92 ℃ // first TO data is object temperature
  • TA=0x0D19/100=33.53 ℃ // second TA data is ambient temperature
  • 예제코드
  • /////////////////////
    /*
    GY-MCU90615----MINI
    VCC----VCC
    GND----GND
    1:RX---TX,send A5 51 F6 to GY263
    2:TX---RX
    3:MINI_TX---FT232_RX
    */
    //////////////////
    unsigned char Re_buf[11],counter=0;
    unsigned char sign=0;
    float TO=0,TA=0;
    void setup() {
       Serial.begin(115200);  
      delay(1);    
      Serial.write(0XA5); 
      Serial.write(0X45);    
      Serial.write(0XEA);    
    }
    
    void loop() {
      unsigned char i=0,sum=0;
      
      if(sign)
      {   
         sign=0;
         for(i=0;i<8;i++)
          sum+=Re_buf[i]; 
         if(sum==Re_buf[i] )       
         {  	       
               TO=(float)(Re_buf[4]<<8|Re_buf[5])/100;
               Serial.print("TO:");
               Serial.println(TO);  
               TA=(float)(Re_buf[6]<<8|Re_buf[7])/100;
               Serial.print("TA:");
               Serial.println(TA);             
       }
      } 
    
    }
    void serialEvent() {
      while (Serial.available()) {   
        Re_buf[counter]=(unsigned char)Serial.read();
        if(counter==0&&Re_buf[0]!=0x5A) return;     
        counter++;       
        if(counter==9)               
        {    
           counter=0;                 
           sign=1;
        }      
      }
    }
    

연관제품