sábado, 13 de março de 2010

Smart Vacuum Bottle with Arduino

Translated by Bruno. Original work by Gamesh_

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:

The sensor was positioned in the interior of the bottle of the glass through a longest wire.  

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.


    Program to SMART THERMOS.
  -Program created by Gamesh_ (by Gamesh_) from Brazil
   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. -- 
The Program used as the basis:
    LED bar graph  
    created 26 Jun 2009
    by Tom Igoe 
    available at:

 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() {

   // 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.print("Valores sensorReading : ");

   // 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.

Nenhum comentário: