Skip to content

coff/hellfirepi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HellfirePi

Aim of HellfirePi is to provide intelligent fully featured controller for my house's heating system. Though the way I'm trying to develop this project should make it easy adaptable to other heating systems configurations as well.

My heating system components:

  • wood fueled water boiler
  • 800L buffer tank
  • radiator system with mixing valve

Features

HellfirePi tasks:

  • control fuel burning process by manipulating air intake shutter? using on exhaust pipe thermocouple and water temperature readings
  • control heat buffering process
  • control radiator circuit through enabling and disabling it's water pump as well as through operating mixing valve
  • gather statistics and data for more efficient fuel burning techniques
  • provide safety related features like:
    • provide failover solutions: water boiling prevention, etc.
    • warnings and alerts sent over text messages as well as through dedicated iOS application (long term plan).

Hardware

Heart of this controller makes Raspberry Pi with several external DB18b20 temperature sensors along with MAX6675 chip connected to thermocouple K on boiler's exhaust pipe that allows measuring temperatures up to 800 degrees Celsius.

Devices controlled (or to be controlled) by this software:

  • heating circuit water pump
  • heating circuit mixing valve
  • boiler circuit water pump
  • boiler air intake controlled with servo

RaspberryPi connections map

+----+-----+-------------------+---------------------------------------------+
|wPi | Phs | Pin name          | Used as                                     |
+----+-----+-------------------+---------------------------------------------+
|    |   1 | 3.3v              | powering 3.3v line                          |
|    |   2 | 5v                | not used                                    |
|  8 |   3 | SDA.1             | not used                                    |
|    |   4 | 5v                | not used                                    |
|  9 |   5 | SCL.1             | not used                                    |
|    |   6 | 0v                | not used                                    |
|  7 |   7 | 1-wire data line  | 1-wire devices (thermal sensors)            |
| 15 |   8 | TxD               | not used                                    |
|    |   9 | 0v                | providing GND for 3.3v line                 |
| 16 |  10 | RxD               | not used                                    |
|  0 |  11 | GPIO. 0           | wired to buzzer (makes noise on LOW)        |
|  1 |  12 | GPIO. 1           | not used                                    |
|  2 |  13 | GPIO. 2           | not used                                    |
|    |  14 | 0v                | not used                                    |
|  3 |  15 | GPIO. 3           | servo control line                          |
|  4 |  16 | GPIO. 4           | not used                                    |
|    |  17 | 3.3v              | not used                                    |
|  5 |  18 | GPIO. 5           | not used                                    |
| 12 |  19 | MOSI              | SPI (thermocouple & analog sensors)         |
|    |  20 | 0v                | not used                                    |
| 13 |  21 | MISO              | SPI (thermocouple & analog sensors)         |
|  6 |  22 | GPIO. 6           | not used                                    |
| 14 |  23 | SCLK              | SPI (thermocouple & analog sensors)         |
| 10 |  24 | CE0               | SPI CS for analog sensors                   |
|    |  25 | 0v                | not used                                    |
| 11 |  26 | CE1               | SPI CS for thermocouple                     |
| 30 |  27 | SDA.0             | not used                                    |
| 31 |  28 | SCL.0             | not used                                    |
| 21 |  29 | GPIO.21           | relay 8                                     |
| 21 |  30 | 0v                | not used                                    |
| 22 |  31 | GPIO.22           | relay 7                                     |
| 26 |  32 | GPIO.26           | not used                                    |
| 23 |  33 | GPIO.23           | relay 6                                     |
|    |  34 | 0v                | not used                                    |
| 24 |  35 | GPIO.24           | relay 5                                     |
| 27 |  36 | GPIO.27           | relay 1                                     |
| 25 |  37 | GPIO.25           | relay 4                                     |
| 28 |  38 | GPIO.28           | relay 2                                     |
|    |  39 | 0v                | not used                                    |
| 29 |  40 | GPIO.29           | relay 3                                     |
+----+-----+-------------------+---------------------------------------------+

Software Vendors

SPI sensors communication for HellfirePi is realized by https://github.com/frak/php_spi

1-wire sensors readings are provided through W1Server I developed due to significant delay on reading those sensors.

Servo control is realized by ServoBlaster from here: https://github.com/richardghirst/PiBits/tree/master/ServoBlaster

For my setup it's supposed to be launched this way: ./servod --p1pins=15 --min=500us --max=2440us

Installation procedure for brand new RaspberryPi with Raspabian installed

sudo apt-get install php7.0-dev sudo apt-get install git git clone https://github.com/frak/php_spi cd php_spi phpize ./configure --enable-spi make

... and SPI is outdated so it doesn't work :/

Berry-SPI

sudo apt-get install dirmngr sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BB761EA8 echo "deb https://deb.berry.volantus.org/ stretch main" | sudo tee -a /etc/apt/sources.list.d/volantus-berry.list sudo apt-get update sudo apt-get install php7.0-berry-spi

sudo apt-get install pigpio

Servoblaster installation

git clone https://github.com/richardghirst/PiBits cd PiBits/Servoblaster/user make sudo make install

PHP-CPP

git clone https://github.com/CopernicaMarketingSoftware/PHP-CPP.git cd PHP-CPP make sudo make install sudo ln -s /usr/lib/libphpcpp.so.2.1.1 /usr/lib/libphpcpp.so.2.0

Enable 1-wire interface in Raspberry Pi

sudo raspi-config Enter "interfacing" Enable 1-wire interface

Pre-launch tasks

sudo ./hellfire.php install:fix-permissions

About

Heating system control device program for Raspberry Pi

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages