Temperature & Level Metered Thermos Flask with Arduino




This Project explains how to measure Temperature and Liquid Level inside a thermos vacuum flask using temperature sensor & ultrasonic sensor to determine whether the flask requires a refill or not very easily.

The heat loss inside the flask due to frequent use of the thermos.Hence with time, stored hot/cool liquid inside the flask will return to its normal state.

Without actually touching or feeling the heat of the liquid there is no other way to determine whether the liquid is at the required state or not.

Also the level of the liquid is not measurable while it is in the flask.Hence alternatives are considered.

Tools & Components

1 X Arduino Nano

1 X HC-SR04 Ultrasonic Sensor

1 X DS18B20 Temperature Sensor

1 X 16x2 LCD Display

1 X 10K Potentiometer

1 X 6V Rechargeable Battery

1 X 5VDC Voltage Regulator

1 X Charger Control Unit(6V)

1 X 2.2K Ohm Resistor

A Flask with suitable size

Connecting Wires

Connecting Components





By using a I2C Module LCD wiring can be reduced.

DS18B20 temperature sensor must be insulated and waterproof.

Flask bottle cap must be big enough to hold the ultrasonic sensor and temp. sensor.

Seal the bottle cap after the sensors are installed in it.Carefully handle the sensor wires without braking the seal.

Installing Sensors

A plastic cup wide enough to fit on to the flask bottle is used to install sensors.



The Ultrasonic sensor and the temperature sensor was installed side by side at the top of the bottle cap.


After Installing Sensors, Seal the bottle cap from inside as well as out side


Arduino Code

//2020 CraftyBin.blogspot.com
//Author : Chathura H.

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
char ch;
int Contrast = 15;
int LCD;
#include <HCSR04.h>
UltraSonicDistanceSensor distanceSensor(7, 8);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#define ONE_WIRE_BUS 13

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

float Celsius = 0;

void setup() {

  sensors.begin();
  Serial.begin(9600);
  lcd.begin(16, 2);
 
}

void loop() {

  sensors.requestTemperatures();
  Celsius = sensors.getTempCByIndex(0);
  LCD = map( distanceSensor.measureDistanceCm(), 5, 23, 100, 0);
  delay(1);

  Serial.print(Celsius);
  Serial.print(" C  ");
  delay(1);

  Serial.println(distanceSensor.measureDistanceCm());
  delay(500);
 
  lcd.print("TEMP: ");
  lcd.print(Celsius);     
  lcd.print("C ");
  delay(1000);
  lcd.clear();
  delay(1);
 
  lcd.print("LEVEL : ");
  lcd.print(LCD);   
  lcd.print("%");
  delay(1000);
  lcd.clear();
  delay(1);

}

If the ultrasonic sensor readings are off, please edit the code and calibrate the system.Given code is written for a flask bottle with 22cm depth.

Testing

Level Testing

 Empty Flask


At 50% Level


 At Maximum Level (100%)


Temperature Testing

At Normal Temperature(Without Liquid)


At Normal Temperature(With Liquid)


Increasing Liquid Temperature



Additional Data



Minimize the wire lengths by all means.this will help to install the circuit inside the flask casing.

Ultrasonic sensor must be perfectly aligned in such a way it directly aiming at the bottom of the bottle.Otherwise the readings may not be reliable.

This project can be used in boilers as well as water filters both domestically and commercially.

Safety First !
Always Connect the power supply if you are absolutely sure that the components are connected correctly without changing polarity and short circuited the wiring.
Even if it seems nothing is wrong : DOUBLE CHECK EVERYTHING !!
Be Cautious with Hot Water!!
Handle the Flask bottle carefully.It is very fragile! 
Your Feedback is very important to us. 
Please Leave a comment about how you feel about this project.




Post a Comment

Previous Post Next Post