Thermocouple-based temperature logger

This is an implementation of a temperature logging device. It reads temperature from a thermocouple probe at predefined time intervals, and saves the data for later use. The temperature, date and time of day for each reading are saved on EEPROM non-volatile memory.

TempLog can be used to collect wide-range temperature data to further be analyzed using tables and charts. Some application examples include reading of the following data:

  • Ambient temperature (for days, months or even years).
  • Cooking temperature on an oven.
  • Engine working temperature.
  • Operating temperature of electronic devices.
  • Greenhouse temperature.
  • Water heating system temperature.


The following modules are used:


Assembled TempLog hardware


We provide all the source code for the project at the bottom of the page. The software is comprised of three main components, separated in three subdirectories:

  • TempLog: main Arduino source code to read and store temperature, date and time of day. To use it, you will need the Arduino libraries in place to access the RTC, EEPROM and thermocouple. Please see the source code link for more details.
  • TempLogPlot: Python source code to plot the data collected by TempLog. To use it, you just need to execute the Python application on your computer, connect TempLog via USB, select the correct serial port in the application and watch the data.
  • TempLogReset: Arduino software to reset the EEPROM memory, deleting all data. You just need to upload it to the board once to delete the data. The results are shown on the Arduino serial monitor.

When the board is powered up or reset, all data already collected and stored in the EEPROM memory are sent through the USB serial port in text format. After all data is sent, the software continues logging the temperature and sending collected data through the serial port in real time. You can use a standard serial terminal, like the the Arduino IDE serial monitor for example, to extract the data, which is compatible with the CSV format. You can copy/paste it in a text file with the .CSV extension and then open it directly in a spreadsheet editor (e.g. Excel, OpenOffice or Google Docs) to see it in tabular format, analyze it, generate graphs, etc.

Another alternative to see the data in a more visual way, and in real time, is to use the TempLogPlot application above.


  • TempLog - Project source code on GitHub.