Many times we face with a thermos coffee and we don't know if the liquid is on adequate temperature only looking for it. In the end we waste a lot of time with a cold coffee and that turn unpleased us.
However, this vacuum flask indicates by a graph of LEDs if the liquids are hot, warm or cold. The LEDs will go gradually from blue (cold) to red (hot), when there a overheat and will go off when there a cooling.
Watch the complete project below:
For project be developed were needed:
- 1 temperature sensor. You can find it in digital thermometer:
- 9 LEDs colors.1 red, 4 yellow, 3 green, 1 blue.
- 1 resistance 10K (Brown, Black and Orange)
- 1 Arduino
- 1 thermos
- Wires
Nine holes were drilled in the side of the thermos with a hot iron of the same diameter of the LEDS.
Wires connected the LED pin 5 to 13:
The temperature sensor was removed from the tip of the digital thermometer and connected to Arduino as shown below:
A code was developed based on another that controls the LEDs, and it was modified and adapted for our necessary. In this program also is possible read in the serial port from IDE of Arduino the value sent by the sensor and the number of LEDs that are off.
It was possible to detect the gradual variation of internal temperature of the liquid inside the vacuum. This is due to the cooling and heating with the graph of LEDs.
Code:
/*
Program to SMART THERMOS.
-Program created by Gamesh_ (by Gamesh_) from Brazil
http://www.brasilrobotics.blogspot.com/
Created on January 3, 2010
--The program detects the temperature of the liquid (coffee, tea) in the thermal and
indicates a temperature graph.
Blue for cold, red for hot and
other colors to intermediate temperatures.
The objective whether the "coffee" is still a
good temperature to drink. --
created 26 Jun 2009
by Tom Igoe
available at:
http://www.arduino.cc/en/Tutorial/BarGraph
*/
const int analogPin = 0; // Check temperature sensor.
const int ledCount = 9; // Number of LEDs used (the number of LEDs in the bar graph)
int ledPins[] = {5,6, 7, 8, 9, 10,11,12,13}; // Pins used with the LEDS (an array of pin numbers to which LEDs are attached)
void setup() {
Serial.begin(9600);
// loop over the pin array and set them all to output:
for (int thisLed = 0; thisLed < 9; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
void loop() {
// Reading the sensor:
int sensorReading = analogRead(analogPin);
// map the result to a range from 0 to the number of LEDs:
int ledLevel = map(sensorReading, 320, 930, 0, 9);
Serial.print("Valores ledLevel : ");
Serial.println(ledLevel);
Serial.print("Valores sensorReading : ");
Serial.println(sensorReading);
delay(1000);
// loop over the LED array:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
if (thisLed < ledLevel) {
digitalWrite(ledPins[thisLed], LOW); //LEDs OFF
}
else {
digitalWrite(ledPins[thisLed], HIGH); //LEDs ON
}
}
}
This work is licensed under a Creative Commons License.