Distant Boiler Temperature Monitoring




Introduction: Distant Boiler Temperature Monitoring

Natural gas is widely used in our region for heating of dwellings. Boilers located in the basement heat up the water, convection draws up heated water through system of pipes to heat radiators located up in the house.

Simple yet convinient system has a disappointing draw back. Boiling water which is expanding steam can damage pipeworks.

Reasons for overheating we can handle by monitoring the temperature:

  • Insufficient speed of coolant (water) circulation or lack thereof (may be caused by too fast heating up)
  • Insufficient amount of coolant in the system (caused by evaporation)

Critical moments are the time when you increase the firing (gas infeed) and when the system is working for quite a long period. That's why boiler temperature monitoring is crucial in preventing damages and heating outage in winter time.

Anyway access to temperatures must be convinient. I don't want to zip around to basement and backwards.

That's how this device appeared. It consists of actually two controllers.

  1. Arduino with temperature sensors and radio module (tranceiver)
    1. Arduino nano
    2. Two ds18b20 temperatue sensors
    3. 2.4 gHz Wireless tranceiver module NRF24L01+
    4. Buzzer
  2. Arduino with radio module and display (receiver)
    1. Arduino nano
    2. MAX7219 Dot Matrix Module
    3. Buzzer
    4. 2.4 gHz Wireless tranceiver module NRF24L01+

Tranceiver is checking the temperature every two seconds. These values are transferred to the receiver and displayed in a creeping line. Apart from that both devices sound the alarm in case a temperature threshold is exceeded. In case tranceiver fails the display would show: "No signal from boilers..."

Step 1: Feasibility Study

Now let's calculate. I bought all components from Aliexpress (links in previous step)

Arduino nano x 2 = $4.28

ds18b20 x 2 = $ 2.18

nRF24L01+ x 2 = $ 1.38

buzzer x 2 = $ 0.84

dot led matrix = $ 3.90

TOTAL: $12.58 both controllers without wires and boxes.

Do the expenses worth the problem described? You decide.

Step 2: Wiring the Tranceiver

The connection is simple. Data pins of both temperature sensors are connected to one pin A2 (pin 16) (OneWire library is used). NRF24L01+ module is connected as follows:

Arduino Nano, UNO

SCK — D13

MOSI — D11

MISO — D12

CSN — D10

CE/SS — D9

Arduino MEGA

SCK — D52

MOSI — D51

MISO — D50

CSN — D53

CE/SS — D49

You may use any pins as СЕ and CSN (to be changed in the sketch).

Pay attention to radio module power supply. It is 3.3V!

To enhance the connectivity it is recommended to solder ~100uF capacitor to VCC and GND of the module.

These brilliant radio modules work as wireless modem. What you send is what you receive in digital form!

Since sensors are digital no adjustment or calibration is needed. The buzzer is connected between GND and A1 (pin 15 of Arduino nano).

The controller is powered from simple 5V USB charger.

Step 3: Wiring the Receiver

Radio module NRF24L01+ is connected exactly like the first one. Again, pay attention to radio module power supply. It is 3.3V!

MAX7219 Dot Matrix Module is connected as follows:

CLK - pin 6

CS - pin 7

DIN - pin 8



The buzzer again is connected between GND and A1 (pin 15 of Arduino nano). The controller is powered from media player USB port. It can be powered from power bank although.

Step 4: Programming the Tranceiver

Tranceiver's task is simple. It reads data from sensors, multiplies by 100 (handling integers are much more easier) and puts them to the array of two variables.This array is sent to the receiver.

I used Arduino IDE to upload sketches to Arduino microcontroller. Install Arduino IDE onto your PC. Download libraries enclosed herewith. Add libraries one by one to the Arduino IDE (Main menu: Sketch -> Include library -> Add .zip Library). Connect your Arduino Nano to USB port of our PC. Find out which port it is connected to.

Open the sketch in Arduino IDE, check out the menu: Tools -> port. Upload the sketch to microcontroller. Sketch -> Upload (Ctrl + U).

It's gonna start transmitting the temperature data at once. It is making short sound signals to indicate transmission. In the basement it will bother noone.

Step 5: Programming the Receiver

Receiver is obviously receiving the array and is inserting the values to the pre-prepared strings. In case there's no transmission it picks the string "No signal from boilers..." as the alarm message. If one of the values exceed a threshold of 90° Celcius it sounds the alarm and shows "ALARM!" string as the alarm message along with temperature values.

Upload the sketch NRF24L01_nano_ds18b20_rx_Matrix.ino to your receiver microcontroller. You will need one more library fourMatrix. Arduino will start receiving data at once and displaying it on the led dot matrix.

Since the time I installed this radio thermometer there's no worries about boiler overheating - by one problem less than.

Be the First to Share


    • CNC and 3D Printing Contest

      CNC and 3D Printing Contest
    • Rice & Grains Challenge

      Rice & Grains Challenge
    • Lamps Challenge

      Lamps Challenge



    Question 7 months ago

    Is the signal strong enough to receive data trough 3 floors?
    Thank you.


    Answer 7 months ago

    No, it's weak. The receiver was on the 1st floor, not 3rd :)
    But anyway I should have placed it exactly above the boiler transceiver otherwise signal was broken.


    4 years ago

    Great project! Do you have any ideas why the transiver cant find any sensors. I uncommented lines that output data to Serial Monitor, and it says Found 0 sensors. Receiver shows -127.0 for both sensors, even when only one of them is connected to arduino. Both sensors work fine in another project...

    UPDATE. It's the pull-up resistor i forgot to solder! everything works fine now! THANKS A LOT for sharing


    Reply 4 years ago

    Actually I can hardly remember the process there. I did it more than 1.5 years ago. But if I were you I would check the connetions and libraries first. Maybe if you use another version of microcontroller you might need another versions of labraries. I am not of much use in diagnostics now.


    5 years ago

    Thanks for sharing. I have an electric one. But to be honest I didn't install it by myself, I used services of heating denver http://www.summitheatingco.com/ to accomplish this task. And I'm completely satisfied with its work. It's very fast and not expensive. Plus, they helped me with all the settings


    5 years ago

    i made this and it does work well. i just have one question, how do i change it to read out in fahrenheit?


    Reply 5 years ago

    You noticed that we get temperature using a command getTempCByIndex (lines 65, 66 of the sketch). If you peep into the DallasTemperature library you'll find a similar command for Fahrenheit. getTempFByIndex

    Just replace C with F inside the command word. That's it.


    Reply 5 years ago

    thank you! i figured i had missed it somewhere. i found it now thank you so much. I will post a few pics of my build later today for you to see. thank you for your help.


    Reply 5 years ago

    It's always pleasure to share. Especially if it doesn't cost you anything :-)

    Hutch Fix It
    Hutch Fix It

    6 years ago

    I like your setup, I'm working on something similar with a single water heater with remote ON and OFF. I'm definitely getting some good ideas from your setup. thanks for sharing!