Newbie - Please help MLX90614 IR Thermometer to DAC

All, I am using an Arduino Mega 2560 with a MLX90614 IR Thermometer. I am using the code below.

Here is my plan… I want to take the output that I would see in the Serial Monitor in the Arduino IDE, output that to the second set of I2C pins on my Mega 2560, take that output from the second set of I2C on my Mega 2560 to a MCP4725 DAC, and finally end up with an analog output from the MCP4725.

Any detailed help would be appreciated.

Thank you in advance

Serial output example for the MLX90614 Infrared Thermometer

This example reads from the MLX90614 and prints out ambient and object
temperatures every half-second or so. Open the serial monitor and set the
baud rate to 9600.

Hardware Hookup (if you’re not using the eval board):
MLX90614 ------------- Arduino
VDD ------------------ 3.3V
VSS ------------------ GND
SDA ------------------ SDA (A4 on older boards)
SCL ------------------ SCL (A5 on older boards)

An LED can be attached to pin 8 to monitor for any read errors.

Jim Lindblom @ SparkFun Electronics
October 23, 2015

Development environment specifics:
Arduino 1.6.5
SparkFun IR Thermometer Evaluation Board - MLX90614

#include <Wire.h> // I2C library, required for MLX90614
#include <SparkFunMLX90614.h> // SparkFunMLX90614 Arduino library

IRTherm therm; // Create an IRTherm object to interact with throughout

const byte LED_PIN = 8; // Optional LED attached to pin 8 (active low)

void setup()
Serial.begin(9600); // Initialize Serial to log output
therm.begin(); // Initialize thermal IR sensor
therm.setUnit(TEMP_F); // Set the library’s units to Farenheit
// Alternatively, TEMP_F can be replaced with TEMP_C for Celsius or
// TEMP_K for Kelvin.

pinMode(LED_PIN, OUTPUT); // LED pin as output

void loop()
setLED(HIGH); //LED on

// Call to read object and ambient temperatures from the sensor.
if ( // On success, read() will return 1, on fail 0.
// Use the object() and ambient() functions to grab the object and ambient
// temperatures.
// They’ll be floats, calculated out to the unit you set with setUnit().
Serial.print("Object: " + String(therm.object(), 2));
Serial.write(‘°’); // Degree Symbol
Serial.print("Ambient: " + String(therm.ambient(), 2));
Serial.write(‘°’); // Degree Symbol

void setLED(bool on)
if (on)
digitalWrite(LED_PIN, LOW);
digitalWrite(LED_PIN, HIGH);

Please enclose your code in Code Tags </>.

There is nothing like a second set of I2C, all I2C devices connect to the same SCL/SDA lines. In your case an I2C level shifter is required, for 5V (Arduino) to 3.3V (sensor).

Find a method of the IRTherm class that returns the temperature in binary (float/double?), so that you can send that value to the DAC.