Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
The Hot Water Balloon
-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