The Hot Water Balloon

Preview:

Citation preview

The Hot Water Balloon

Wookeywookey@wookware.org

-Debian / Embedded Debian / Balloonboard.org / iEndian / Toby Churchill Ltd

Embedded Linux Conference - Europe 2008Ede

Wookey The Hot Water Balloon

What is this talk about?

Solar Thermal crash courseControllers1-wire hackery how-toResults Analysis

Wookey The Hot Water Balloon

Evacuated Tube

Vacuum tube with heat-pipe

Wookey The Hot Water Balloon

Solar Thermal System

Wookey The Hot Water Balloon

Solar Thermal System

Wookey The Hot Water Balloon

Wook’s System

plate heat exchanger (PHE) layout

Wookey The Hot Water Balloon

Panel Fitting

Wookey The Hot Water Balloon

Plumbing

Wookey The Hot Water Balloon

Thermosiphon

Existing TankThermosiphonAnti-siphon dip

Wookey The Hot Water Balloon

Commercial Controllers

Standard: 164ewith Vbus: 230eDatalogger: 260eRemote Display: 68e10 sensors, 7 outputs: 388e

3 sensors, 2 outputs: 162eEthernet connection: 454e

Wookey The Hot Water Balloon

Balloonboard

PXA270, 1GB flash384MB RAM, FPGAUSB host, VGA displayOpen HardwareDistro choice, package management

Wookey The Hot Water Balloon

CUED IO Espansion board

I2C, 8 digital IO6x 10bit ADC15V/5V crowbarred supplyUSB host/slavePWM motor driver

Wookey The Hot Water Balloon

Hardware 1-wire

8 multiplexed 1-wire busesData: 14Kbit/s maxScan: 13 devices/secondMeasurement: 94-750msI2C 400Kbit/s

Wookey The Hot Water Balloon

Hardware - Switching

PCF8574a8 channel IOI2C interface‘On’ pulls pin low - PNPRelay needed for 12Vputs out 45mA max

Wookey The Hot Water Balloon

Hardware - Building

4 wires - I2CData, I2CClk, GND, +5V

Wookey The Hot Water Balloon

1-wire Sensors

Wookey The Hot Water Balloon

Fitting Sensors

Wookey The Hot Water Balloon

Wook’s tidy airing cupboard

Balloon, extra IO board, USB ethernet adaptor

Wookey The Hot Water Balloon

Software - I2C modules and adressing

modprobe i2c-pxamodprobe i2c-dev/dev/i2c-0 /dev/i2c-1bus 0 is general, bus 1 is powerI2C addresses fixed.7bit - bottom bit is r/won DS2482 Address is 0011nnn0x18-0x1Fpull all three pins low to get 0x18

Wookey The Hot Water Balloon

Software - I2C access

i2cdump 0 0x180 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef

00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX b5 XXXXXXXXXXXXXXX?10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX b5 XX XXXXXXXXXXXXXX?X20: XX XX XX XX XX XX XX XX XX XX XX XX XX b5 XX XX XXXXXXXXXXXXX?XX30: XX XX XX XX XX XX XX XX XX XX XX XX b5 XX XX XX XXXXXXXXXXXX?XXX{\ldots}e0: XX 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX X.XXXXXXXXXXXXXXf0: 18 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX ?XXXXXXXXXXXXXXX

pcf8574a on 0x38i2cdump from lm-sensors or i2c-toolsOn: echo “0” > /sys/bus/i2c/devices/0-0038/writeOff: echo “255” > /sys/bus/i2c/devices/0-0038/write

Wookey The Hot Water Balloon

Software - OWFS

FUSE filesystemconfigure in /etc/default/owfs

SERVER_OPTS=”-d /dev/i2c-0”CLIENT_OPTS=”-s localhost:4304”

run with /etc/init.d/owfs startNew on lenny (on etch needs older python, swig, libfuse)apt-get install owfs libowfs26 libfuse

Wookey The Hot Water Balloon

Software - OWFS

Discover: owdir -s 430 /28.D23974010000

Read: owread -s 4304 /28.D23974010000/temperature34.25

Wookey The Hot Water Balloon

Manual rrdtool - create database

Create Round Robin DatabaseFilled in with rrdupdate

sudo r r d t o o l c reate / var / log / so l a r . r r d −s 10\DS: panel :GAUGE:40:−20:125\DS: tanktop :GAUGE:40:−20:125\DS: t ankbo t t :GAUGE:40:−20:125 \DS: pump :GAUGE: 4 0 : 0 : 1 RRA:AVERAGE: 0 . 5 : 1 : 2 0 1 6 0 \RRA: LAST:0 .5 :1 :20160 RRA:MAX:0 .5 :60 :1120

Should be 9 days, actually 2.5

Wookey The Hot Water Balloon

Manual rrdtool - generate graph

sudo r r d t o o l graph −−end 18:00d −−s t a r t 06:00d / tmp/ s o l a r d e t a i l . png −M − i \

− t ‘ ‘Wook ’ s so la r system ’ ’ −v ‘ ‘Temp (C) ’ ’ −h 200−w 800\

DEF: pump=/ var / log / so l a r . r r d : pump : LAST TICK : pump#000000:0 .05 : ’ ’ So lar Pump on ’ ’ \

DEF: panel =/ var / log / so l a r . r r d : panel : LAST LINE2 :panel#FF0000 : ’ ’ Panel Temp ’ ’ \

DEF: tanktop =/ var / log / so l a r . r r d : tanktop : LAST LINE2: tanktop#00FF00 : ’ ’ Top of Tank ’ ’ \

DEF: tankbo t t = / var / log / so l a r . r r d : t ankbo t t : LASTLINE2 : t ankbo t t #00 f f f f ’ ’ : Bottom of Tank ’ ’

Wookey The Hot Water Balloon

Munin

local and remote munin setupshides rrdtool detailsEasy plugin scriptsMunin-graph uses 85% of cpuMunin broken on arm

Wookey The Hot Water Balloon

Munin plugins

Any languageCalled with config: prints variablesCalled normally: prints values

sudo munin-run panels

panelin.value 10.875panel1.value 9.5625panel2.value 10.4pump.value 0

Wookey The Hot Water Balloon

Munin plugin for panel

sudo munin-run panels config

graph_title Solar Panel Temperaturesgraph_order panelin panel1 panel2 pumpgraph_vlabel Degrees Celciusgraph_info This graph shows solar panel temperatures.graph_period minutepanelin.label panels-inpanelin.draw LINE1panelin.max 126panelin.min -2panelin.type GAUGEpanelin.info Temp flow into solar panels

Wookey The Hot Water Balloon

What did I discover

It works!Thermosiphon reacts very quickly (<30 seconds)Control is interesting question

Wookey The Hot Water Balloon

Panels

15◦C rise across panels68◦C in October

Wookey The Hot Water Balloon

Monthly summary

Provided hot water about 23 days of 31

Wookey The Hot Water Balloon

Control

if panel >tank_bot + 20 or panel >tank_top + 4 : pump onif panel <tank_bot + 10 : pump offif tank_top >80 : pump offHorrible shell scriptDecimal temp readings - bcDIYzoning. . . PID control

Wookey The Hot Water Balloon

Stratification

Tank stays stratified during loadingTank hotter than panel!?

Wookey The Hot Water Balloon

Stratification

Tank stays stratified during loadingTank hotter than panel!?

Wookey The Hot Water Balloon

Medium day

Hysteresis between +10◦C and +20◦C

Wookey The Hot Water Balloon

Reliability

Uptime: 87 days load average: 1.02owserver crashed once in 5 monthsSome 1-wire glitchesDisk full survived

Wookey The Hot Water Balloon

Temp accuracy

Nominal 0.5◦C accuracy (0-55◦C)2◦C accuracy (below 0◦C, above 55◦C)3.8◦C differenceStuck at 85◦C, and 10% low

Wookey The Hot Water Balloon

Flowmeter

Swissflow SF800 - optical sensorBattery-backed Counter board

Wookey The Hot Water Balloon

Flowmeter

1.3 million pulses4◦C temp drop6100 pulse/litre1.6 l/minSpecificheat(kWh/KgC ∗ Mass(Kg) ∗ Tempd iff (C) =Energy(Kwh)

0.00116 ∗ 1327532/6100 ∗ 4 = 1kWhWookey The Hot Water Balloon

What’s missing/Future?

power-fail proofingLocal User InterfaceSolar: Display tank temp, Bath status, Energy gainHouse: Room temps, Active zonesInputs: ‘Make a bath’ button, Leaving house, +1hrConfiguration: Sensor allocation, Rule adding/adjustingHow?: Browser, GTK, Misterhouse, GladeMythTV plugin, SMSInterfaces: xAP, wireless sensors, moon on stickUpload data for comparison, to AMEE

Wookey The Hot Water Balloon

Conclusions

Solar Thermal is great1-wire is greatUI is harder - needs workI have a very tolerant wife

Wookey The Hot Water Balloon

Recommended