What do you do when you don’t know how to cook? You start a YouTube video and get immersed in the world of a myriad range of recipe videos, with so many different methods to prepare a meal that it becomes overwhelming for you. Well, it was overwhelming for us too. Not the “deciding what to eat and quickly by following a recipe” part. Nope. We have already solved that problem with Futuristic Labs' Klynk App - your personal guided cooking assistant, which gives you exact instructions for preparing a delicious meal. Klynk aims to link kitchens and solve all the problems that involve cooking.
Thinking is easier than done. To make a cooktop with a guided cooking feature, you need to combine various sorts of engineering and design techniques. Most of the questions we need to ask are fundamental. But the answer to them, and the approach to reach that answer, can be extremely daunting.
To name a few of those challenges, SEMI has weighting functionality as one of the main unique selling points - which means, you can weigh the number of ingredients you need to add to the recipe - along with guided cooking that tells you exactly what and when to add the ingredient, but the nightmare of having weighing functionality is that we need to add load cells for measuring the weight. The load cell only functions at an operating temperature below 50°C, and placing such a temperature-sensitive component beside a heating element (induction coil) forced us to be particular in the design of the exhaust and not let the load cells heat up which is why we need to log the thermal data using a thermocouple and optimize our thermal design.
Earlier, we used to borrow a CR6 data logger and hook up thermocouples to it, but as all good things come to an end, the data logger would stop working after a while and we needed a next of kin real soon. So, naturally, we make one for ourselves with the tools at our disposal which are temperature sensors leftovers from SEMI and a couple of spare Arduino. Hence, the birth of a home-brewed temperature logger.
Project Name: Arduino-based temperature logger
Time: 1 day
Agenda: To measure the temperature performance of our products.
Task: We will be logging temperature values to excel by hooking up 8-channel Arduino Mega-based temperature logger.
Temperature Range: 10-300°C
Plan of Action:
Choose the thermistor to use.
Select the Thermistor Resistance Model to estimate the temperature from the calculated resistance.
Find the Thermistor Resistance Model Coefficients from the thermistor datasheet (or calculate them from the website (further explanation is given below))
Make the connections and write the code in Arduino IDE.
Install ArduSpread for Arduino IDE and use it to log the values into an excel sheet.
This blog is divided into the first part discussing the theory of thermistors and the second part discussing the implementation of temperature loggers using Arduino.
Historically, there are three ways for getting temperature values digitally:
Thermistors: Good for low temperature ranges up to 250°C
RTDs: Good for high temperature ranges up to 600°C
Thermocouple: Good for pretty much all ranges of temperature
This setup will be using Thermistors (104JG1F) as they are cheaper and quicker to implement on Arduino. In the future, we plan to make a Thermocouple-based logger.
Thermistors vary their resistance according to changes in temperature. There are two types of thermistors NTC (Negative Temperature Coefficient) and PTC (Positive Temperature Coefficient)
Resistance increases with an increase in Temperature.
They are made of doped polycrystalline ceramic based on barium titanate, the major material BaTio3.
They are used for overcurrent, overload and short circuit protection, temperature sensing, temperature protection, motor sensing protection, motor starting, lighting soft switching time delay, self-regulation constant heating, etc.
Resistance decreases with an increase in Temperature.
They are made of polycrystalline mixed oxide ceramics, major material is Mn, Ni, and Cu.
They are mainly applied in inrush current limiting surge suppressing (because it limits the inrush current due to high initial resistance), temperature sensing measurement, temperature compensation, temperature control, etc.
The thermistor we are using is an NTC (Negative Temperature Coefficient) thermistor, meaning the resistance of the thermistor decreases with the increase in temperature. We can verify this by checking the datasheet.
Note: The operating current of the thermistor is suggested to be kept at a minimum because if the operating current is too high, it heats up quicker than it dissipates, creating false results.
Thermistor Resistance Model
Looking at the Resistance-Thermistor Characteristics Curve of an NTC Thermistor, we can see the curve is non-linear with respect to changes in temperature. So, to model this curve, we need to use a Thermistor-Resistance Mode. There are two equations widely used to model this behavior:
This model needs 3-point calibration.
It provides better accuracy over a wider range for example 0-250°C, because there are three coefficients.
This model needs 2-point calibration.
It provides better accuracy over a narrow range for example 100-200°C, because there is only one coefficient.
The coefficient (β) is found by calibrating the device.
We will be using Steinhart–Hart equation. To find the coefficients we will use SRS Thermistor Calculator and enter three temperature points (close to the temperature readings we are expected to measure) from the datasheet to calculate the coefficients.
In Part 2, we will discuss its implementation.