Monitoring Your Central Heating Boiler Using a Raspberry Pi – Hardware, Software, and Setup Guide
Hardware Overview
Below is a concise list of the Raspberry Pi components required for this boiler monitoring system. The relay unit, which manages the boiler’s burner and pump, remains unchanged from the original PC setup.
- Raspberry Pi Model B
- Pi‑Face Digital interface card
- Dallas Semiconductor (Maxim) DS9490R 1‑Wire USB adapter
- Dallas Semiconductor (Maxim) DS18S20 1‑Wire temperature sensors
The block diagram (not shown) illustrates the general wiring layout. Optionally, a GSM modem can be integrated later to receive SMS alerts.
Software Components
Three primary programs drive the monitoring system:
- Event logger – talks to the Pi‑Face Digital card and records the status of mains power, pump operation, and burner firing. Data are written to a daily log file.
- Temperature logger – reads the 1‑Wire sensor network and logs temperature readings from each sensor to a separate daily file.
- CGI renderer – invoked by Apache, it generates a calendar view and renders SVG graphs of events and temperatures.
All programs were originally written in C for a Windows/2000 Server environment on a Dell GX11 PC. The transition to Linux required significant rewrites, especially for the Pi‑Face Digital API and the OWFS (One‑Wire File System) interface.
The CGI module is the most complex part; it produces an SVG bar chart and timeline. It was ported to Linux by replacing _stat() calls with statfs() and correcting string handling routines.
Filesystem Layout
Typical Linux and Apache directories are highlighted in yellow; custom paths appear in blue. All monitoring files live under /1-wire:
/1-wire ├─ src ├─ events ├─ temperatures
Step 1 – Create Directories
sudo su cd / mkdir /1-wire mkdir /1-wire/src mkdir /1-wire/events mkdir /1-wire/temperatures
Step 2 – Download and Compile
wget https://www.noveldevices.co.uk/rpdl/logger.c -O /1-wire/src/logger.c wget https://www.noveldevices.co.uk/rpdl/1-wire.c -O /1-wire/src/1-wire.c wget https://www.noveldevices.co.uk/rpdl/server.c -O /1-wire/src/server.c gcc -L/usr/local/lib -lpiface-1.0 -o /1-wire/events/logger /1-wire/src/logger.c -lm gcc -L/usr/local/lib -o /1-wire/temperatures/1-wire /1-wire/src/1-wire.c -lm gcc -L/usr/local/lib -o /usr/lib/cgi-bin/server /1-wire/src/server.c -lm
Step 3 – Fetch Configuration and Stylesheet
wget https://www.noveldevices.co.uk/rpdl/1-wire.conf -O /1-wire/temperatures/1-wire.conf wget https://www.noveldevices.co.uk/rpdl/server.conf -O /usr/lib/cgi-bin/server.conf wget https://www.noveldevices.co.uk/rpdl/boiler.css -O /var/www/boiler.css
Step 4 – Configure 1‑Wire Logging
The 1-wire.conf file contains settings for the logger and the CGI graph generator. Each entry is independent of order:
[Interval]=n– polling interval in seconds (adjusted to avoid drift; OWFS usually needs ~2 s per sensor).[DataDirectory]=/path/to/data/– directory where log files will be stored.- For each sensor:
[DevicePath]=/path/to/owfs/#RRGGBBsensor‑description
Here, #RRGGBB is the HTML colour code for the sensor’s line on the graph, and sensor‑description is the label displayed on the temperature plot.
For additional details, refer to the original article: Monitoring My Central Heating Boiler.
Manufacturing process
- Solar Heating Systems: From Passive to Active Solutions for Sustainable Home Heating
- Professional Raspberry Pi Temperature Monitoring with DS18B20
- Accurate Temperature Monitoring in a Server Closet with Raspberry Pi
- Remote Weather Monitoring with Raspberry Pi 3 and PubNub
- Seamlessly Integrate Your Central Heating with Arduino for Smart Control
- Smart Central Heating Boiler Control Box – Efficient Energy Management
- Real‑Time Environmental Monitoring with Arduino MKR1000 & Environment Click Sensors
- Understanding Steam Boilers: Fundamentals and Applications
- Reheating Furnace Steel Heating: Enhancing Hot Rolling Efficiency
- Understanding Heating Coils: Function, Materials, and Applications