Domestic Solarthermal Energy

Notes on experiments with a solarthermal energy system for domestic hot water pre-heating

  1. Preliminary Calculation
  2. Measuring setup
    1. Flows
    2. Temp
  3. Controller / Relay

Intro

I live in an area with quite high solar input (globalsolaratlas). My domestic hot water is electric, leading to the DHW to probably account for 80% of my electricity consumption.

This is an attempt to pre-heat the mains intput into my water heater

Preliminary Calculation

There are some devices on amazon, such as a dome panel, and flat panels.

Considering the Global tilted irradiation at optimum angle of about 6.8 kWh/m/m/day at my location, the following energy should be gainable with the dome panel, the flat panel, and a 30 ft 1/8 inch hose.

UnitPanelDome PanelHose
Widthm0.600.570.0127
Lengthm3.000.5730.48
Aream*m1.860.330.39
GTIkWh/m/m/day6.806.806.8
Daily EnergykWh/day12.632.222.63

Measuring setup

Flows

Pins:

  • Red (3.3 V Power): pin 1
  • Black (ground): pin 6
  • Yellow (signal): pin 7; GPIO 4
#!/usr/bin/python
import RPi.GPIO as GPIO
import time, sys

flow_sensor_gpio = 4

GPIO.setmode(GPIO.BCM)
GPIO.setup(flow_sensor_gpio, GPIO.IN, pull_up_down=GPIO.PUD_UP)

global count
count = 0

def countPulse(channel):
   global count
   if start_counter == 1:
      count = count+1

GPIO.add_event_detect(flow_sensor_gpio, GPIO.FALLING, callback=countPulse)

while True:
    try:
        start_counter = 1
        time.sleep(1)
        start_counter = 0
        flow = (count / 7.5) # Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
        print("The flow is: %.3f Liter/min" % (flow))
        count = 0
        time.sleep(1)
    except KeyboardInterrupt:
        print('\nkeyboard interrupt!')
        GPIO.cleanup()
        sys.exit()

Temp

Pins:

  • Red: 5V (pin 2 or pin 4)
  • black: ground (8 or 14)
  • Yellow: Pin 11 (GPIO 17) and Pin 12 (GPIO 18)

Not sure if we have to do the following:

  1. sudo modprobe w1-gpio
  2. sudo modprobe w1-therm

Configuring the One-Wire interface on a Raspberry Pi, using GPIO pin 7 without a pull-up resistor.

sudo dtoverlay w1-gpio gpiopin=17 pullup=0
sudo dtoverlay w1-gpio gpiopin=18 pullup=0
sudo dtoverlay w1-gpio gpiopin=27 pullup=0

Make permanent:

  1. sudo nano /boot/config.txt dtoverlay=w1-gpio,gpiopin=17,pullup=0 dtoverlay=w1-gpio,gpiopin=18,pullup=0 dtoverlay=w1-gpio,gpiopin=27,pullup=0
  2. Reboot

For my system:

  • GPIO 17: 28-3ce1d44312b4 Flow
  • GPIO 18: 28-3ce1d4438ff7 Return
  • GPIO 17: 28-3ce1d4432b6f Ambient

Verify

ls /sys/bus/w1/devices

Controller / Relay

Connecting the pins