Team 8

Thermodynamics Calculator

Build an app that converts temperatures between scales, calculates heat energy using Q=mcΔT, and demonstrates specific heat capacity concepts for different materials.

🎯 Learning Goals

  • Master Temperature scale conversions (C, F, K)
  • Understand Specific Heat Capacity and Energy transfer
  • Implement thermal equilibrium calculations for mixing
  • Build a reference-based calculator using material lists

🌎 Why This Matters

Thermodynamics allows us to design engines, refrigerators, and climate-controlled buildings. Whenever energy changes form or heat moves, these laws are at play. Mastering this helps you understand the energy efficiency of our modern world.

📖Understanding Heat & Thermodynamics

Theory Masterclass
"

Thermodynamics is the study of heat, temperature, and energy transfer. Temperature Scales: • Celsius (°C): Water freezes at 0°C, boils at 100°C • Fahrenheit (°F): Water freezes at 32°F, boils at 212°F • Kelvin (K): Absolute zero = 0K = -273.15°C. No negative temperatures! Heat Energy (Q): When you heat something up, the energy transferred is: Q = m × c × ΔT Where: Q = Heat energy (in Joules) m = Mass of the substance (in kg) c = Specific heat capacity (different for each material, in J/(kg·°C)) ΔT = Change in temperature = T_final - T_initial Specific Heat Capacity (c): • Water: 4186 J/(kg·°C) — very high! That's why water heats slowly • Iron: 450 J/(kg·°C) • Copper: 385 J/(kg·°C) • Aluminum: 897 J/(kg·°C) • Air: 1005 J/(kg·°C) • Ice: 2090 J/(kg·°C) Higher c means more energy needed to raise temperature by 1°C. Latent Heat: Energy needed for phase change (solid↔liquid↔gas) WITHOUT temperature change. Q = m × L (where L = latent heat)

Mathematical Foundation

fxQ = m × c × ΔT (heat energy)
fx°C to °F: F = (C × 9/5) + 32
fx°C to K: K = C + 273.15
fxLatent Heat: Q = m × L
fxHeat exchange: Q_lost = Q_gained (equilibrium)

🎨Part A — Designer View (UI Design)

Open MIT App Inventor → Switch to Designer view. Follow each step below to build the interface.

1

Set up with tabs

Title: "Thermodynamics Calculator" Tabs: "Temperature", "Heat Energy", "Mixing", "Materials"

2

Temperature Converter panel

TextBox: "Enter Temperature" Spinner/Dropdown: "From" → Celsius, Fahrenheit, Kelvin Spinner: "To" → Celsius, Fahrenheit, Kelvin Button: "Convert" ResultLabel

3

Heat Energy panel

TextBox: "Mass (kg)" Spinner: "Material" → Water, Iron, Copper, Aluminum, Custom TextBox: "Initial Temperature (°C)" TextBox: "Final Temperature (°C)" Button: "Calculate Heat Energy" ResultLabel showing Q in Joules and kJ

4

Mixing panel (thermal equilibrium)

Label: "Hot substance" TextBox: mass1, temp1, Spinner: material1 Label: "Cold substance" TextBox: mass2, temp2, Spinner: material2 Button: "Find Equilibrium Temperature" ResultLabel

5

Materials reference panel

ListView showing all materials with their specific heat values. Tapping a material shows detailed info.

🧩Part B — Blocks View (Logic & Calculation)

Switch to Blocks view. Now add the logic that makes your app actually work.

1

Temperature conversion logic

When ConvertButton.Click: Read value, fromUnit, toUnit C to F: result = (value × 9/5) + 32 F to C: result = (value - 32) × 5/9 C to K: result = value + 273.15 K to C: result = value - 273.15 F to K: first convert to C, then to K K to F: first convert to C, then to F Check: if result in K is < 0 → "Error: Temperature below absolute zero is impossible!"

2

Set specific heat based on material

Create a procedure "getSpecificHeat" with parameter material: if material = "Water" → return 4186 if material = "Iron" → return 450 if material = "Copper" → return 385 if material = "Aluminum" → return 897 if material = "Ice" → return 2090 if material = "Air" → return 1005 if material = "Custom" → return number from custom TextBox

3

Calculate heat energy Q

When CalculateHeatButton.Click: 1. Read mass, material, T_initial, T_final 2. Get c using getSpecificHeat procedure 3. deltaT = T_final - T_initial 4. Q = mass × c × deltaT 5. Display: "Heat Energy = " + Q + " J" 6. Display: "= " + Q/1000 + " kJ" if Q > 0 → "Heat is ABSORBED (endothermic)" if Q < 0 → "Heat is RELEASED (exothermic)"

4

Calculate mixing equilibrium

When EquilibriumButton.Click: At equilibrium: Q_lost by hot = Q_gained by cold m1 × c1 × (T1 - Tf) = m2 × c2 × (Tf - T2) Solving for Tf: Tf = (m1×c1×T1 + m2×c2×T2) / (m1×c1 + m2×c2) Display: "Equilibrium Temperature = " + Tf + " °C" Display: "Heat transferred = " + m1×c1×(T1-Tf) + " J"

5

Add practical examples

After calculation, show relatable comparisons: "Energy to heat 1L of water from 20°C to 100°C = " + 1×4186×80 + " J" "That's " + 334880/1000 + " kJ, or about " + 334880/3600000 + " kWh" "Your electricity cost: ₹" + round(334880/3600000 × 8) + " approximately"

6

Populate materials list

When Screen1.Initialize: Set MaterialsList to: "Water — 4186 J/(kg·°C) — Highest of common substances" "Iron — 450 J/(kg·°C)" "Copper — 385 J/(kg·°C)" "Aluminum — 897 J/(kg·°C)" "Ice — 2090 J/(kg·°C)" "Glass — 840 J/(kg·°C)" "Wood — 1700 J/(kg·°C)"

🧪Testing Your App

  • 100°C = 212°F = 373.15K
  • 0°C = 32°F = 273.15K
  • -273.15°C = 0K (absolute zero)
  • Heating 1kg water from 20°C to 100°C → Q = 334,400 J
  • Mix: 1kg water at 80°C + 1kg water at 20°C → Tf = 50°C

🚀Bonus Challenges

Extra credit — impress your instructor

  • Add phase change calculations (melting/boiling with latent heat)
  • Create a graph showing temperature vs time during heating
  • Add a 'How long to boil?' calculator given power input
  • Compare energy needed to heat same mass of different materials