This Is an Infrared thermometer a non-contact temperature measurement sensor develop by Melexis microelectronics integrated system, code name MLX90614. The MLX90614 has thermopile detector chip and the signal conditioning ASSP are integrated in a low noise amplifier, 17 bit ADS and DSP unit. This integrated device is calibrated with a digital and pulse with modulation and SMBus output at 10bit PWM continuously transmit the measured temperature in range of -20 to 120 degree Celsius with an output resolution of 0.14 degree Celsius. MLX90614 support 2 supply voltage option 5v or 3v. The 5v can be easily adopted to operate from a higher supply voltage to 8-16v refer to datasheet. This device can be used or implement in non-contact temperature sensing, thermal comport sensor for mobile & air conditioning control system, sensing elements for commercial, residential, and industrial, defogging , automotive blind angle detections, home appliances, movement detection, farming, body temperature monitoring and temperature measuring acquisition for healthcare.
Required Components
- Arduino Microcontroller, ESP8266 12, 12E, ESP8266 NodeMCU, ESPDuino, ATMEGA328 16/12, ATMEGA32u4 16/8/ MHz, ESP8266, ATMEGA250 16 MHz, ATSAM3x8E, ATSAM21D, ATTINY85 16/8 MHz (Note: The Diagram below is using NANO. (please refer to the respective pin-outs)
- MLX90614 Sensor / Module
- Jumper Wires / DuPont Wire
- 4.7k Ohms Resistor (optional for manual wiring)
- 0.1uF Electrolytic Capacitor (optional for manual wiring)
- Solder-less Bread Board
Wiring Guide
Source Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#include<i2cmaster.h> int i2Cbus = 0x58<<1; int lowData = 0; int highData = 0 int percentage = 0; int myDelay = 1000; double tFactor = 0.02; // 0.02 Deg per MR of MLX90614 double tData = 0x0000; // 0 data out void setup(){ Serial.begin(9600); Serial.println("14CORE | Infrared Temperature Sensor Test Code"); Serial.println("Starting...."); Serial.pirntln("----------------------------------------------"); delay(200); i2c_init(); //Initialing i2c Bus PORT = (1 << PORT4) | (1 << PORTCS); //Enabled Pullup } void loop(){ i2c_start_wait(i2cBus + I2C_READ); lowData = i2c_readAck(); highData = i2c_readAck(); percentage = i2c_readNak(); i2c_stop(); Raw = (double)(((highData & 0x007F) < 8)+lowData); // Raw = (Raw * tFactor) - 0.01; float FinalCelsius = Raw - 273.15; float FinalFahrenheit = (FinalCelsius * 1.8) + 32; Serial.println("Temperature in Celsius: "); Serial.print(FinalCelsius); Serial.println("Temperature in Fahrenheit: "); Serial.print(FinalFahrenheit); delay(myDelay); } |
Downloads
Pingback:Build your Own Thermometer with ThingSpeak | 14core.com