This paper is about a calorimeter.
A calorimeter consists of a water flow meter and two thermometers. The calories absorbed in a flat - this paper is for heating, but cooling is similar - are proportional to the volume of water passing through the radiators and the difference between the inlet and outlet temperatures of the water.
The processor I use in this project is MSP430FR6989 The processor has a built-in water flow detection unit while the temperature can be measured with the comparator. All units operate autonomously based on the 32768Hz clock, to minimize power consumption. The measurements are displayed on the LCD (varitronix VIM-878) that the project incorporates. During the development of the code, it was estimated that the total consumption is 120μA, with a 3v 2000mA battery (Varta CRAA 3v lithium) with a service life of 8 years. For 8 years of continuous operation, the LCD must be on for 1sec and remain off for the next sec before showing the next display. I prefer not to turn off the LCD.
Two implementations were made
a) complete implementation (blue PCB) that integrates
• infrared communication
• serial communication (57600bps)
• EEprom with built-in MAC address (routines published on Hackster.io)
• a led indicator with a jumper for debugging
• a general-purpose push button and reset button
• open collector pulse unit for activating external devices
Haven LCD I2 slot (routines published on Hackster.io)
• two inputs for PT 1000 sensors to measure water temperature
• Unit of measurement of water volume based on the unit Extend scan interface.
B) simple implementation (magenta PCB) that includes only the necessary elements for the implementation of the calorimeter. These data are
• Unit of measurement of water volume based on the unit Extend scan interface.
• two inputs for PT 1000 sensors to measure water temperature
• serial communication unit.
• a push button to reset the indicators etc
• reset button
The operation code is the same in both implementations. In the simple implementation, the code for the units not included in the implementation has been removed.
The battery life is estimated at 8 years for simple implementation while for full implementation 4 years depending on the peripherals that have been activated. Battery life is reduced by activating the LCD but I like that the LCD does not turn off when switching from one indicator to the next.
The indications shown by the LCD are:
• 88888888 (all digits work normally)
• 0.123 GWatt measured
• cubic meters of water
• bA 2.99 * the battery voltage, the * means that the device in this sec has activated the infrared receiver. The infrared module consumes 170μA in operation and 50μA in standby mode. For this reason, I turn it off completely and turn it on only for one sec when the battery voltage is displayed.
• 80.7 inlet temperature - Hot water
• C 70.2 the outlet temperature -Coldwater
• 0845 impeller rpm in thousands
Calculations are made only when there is a flow of water to save energy. The longer the CPU sleeps, the longer the battery will last. Question: how much energy will be saved from this? Considering that this device will operate in Heraklion, Crete, Greece which is a warm country with heating needs from the end of November to the beginning of April - about 5 months per year - the water flow will be zero for the remaining months. "No way" to spend energy on calculations that will not change the indications. Battery voltage is measured when the LCD indication is the battery voltage.
In the full implementation, all the peripherals have been activated, ie new implementations may occur - PCBs- deactivating the peripherals that are not necessary.
I will not go into detail in the code why
• Ti.com has fine examples which I have incorporated into the code. View Ti.com's FlowESIGUI.jar application It will give you the code you will use to detect the flow.
• On Hackster.io I have published the code for EEprom and Haven LCD which you can use.
• The temperature is measured with a comparator. See the corresponding application of Ti.com. We must keep in mind that we measure the pulses of a timer until the reference capacitor is discharged through the PT1000 in relation to the pulses we have measured in a reference resistance. In my application, this resistor is 1.8K and the capacitor 0.1u The temperature measurement is not accurate but the error produced concerns both sensors. In any case, to measure the calories consumed in the apartment, we need the difference in water temperature, inlet-outlet.
• Keep in mind that the processor uses the 32768Hz crystal to save power and extend battery life so you should avoid decimal calculations. All peripherals operate independently of the central unit and if they have "something to say" then they use the interrupts. After an interrupt is served the processor must be put to sleep. The peripheral that will need its "service" will wake him up with an interrupt
• The time base in the program is 1 sec Why? See the equation for calorie calculation. Question: how much energy does it take to heat 80gr of water from 26o C to 48o C?
Water Quality of heat transfer = 4.184j / gc
e = m qht ΔΤ = 80gr X 4, 184 j / gc X (48-26) C = 80 x 4, 184 x 22 = 7363, 84 joule
Watt = Joules / Sec 1Joule = 1watt * 1sec => 1watthour = 3600Joules
1calorie = 4, 184 Joule 1KWh = 860Kcal 1KJoule = 0, 239Kcal
(, means deciamal place )
I have not implemented the function of changing the battery. Now on power on, the device enters the function of maximum and minimum in the ESIScan interface. The water flow will rotate the water meter impeller for 1 sec and the calibration will be completed Then the device will be in normal operation.
For development, I use the Ti.com MSP-EXP430FR6989 I used its schematic to get the PCB my application needs. The PCB is 4 layers. The schematic is in eagle.
contact me by email at info@kalarakis.gr Heraklion Crete Greece
Comments
Please log in or sign up to comment.