비접촉 적외선 온도 센서 -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
- Byte0: 0x5A Frame header flag
- Byte1: 0x5A Frame header flag
- Byte2: 0X45 The frame data type (0X45: temperature data)
- Byte3: 0x04 Data volume (the following four data 2 group as an example)
- Byte4: 0x00 ~ 0xFF 1 high 8 bits of data
- Byte5: 0x00 ~ 0xFF Lower 8 bits of data1
- Byte6: 0x00 ~ 0xFF Data 2 Upper 8 bits
- Byte7: 0x00 ~ 0xFF Lower 8 bits of data2
- 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; } } }