Tank Level Alert for Pellet Stove

by MagicManu in Circuits > Arduino

7696 Views, 90 Favorites, 0 Comments

Tank Level Alert for Pellet Stove

Capteur 1920x1080.jpg
Alerte niveau réservoir pour poêle à pellet
Capteur 019.jpg

If, like me, you have a pellet stove which does not indicate the low level of the tank, I suggest this little module which will beep when the reserve is almost empty.

This gap is problematic because when there are no more pellets, the stove switches off and the ventilation still blows for 40 minutes. Only after that it is possible to restart it.

This module consists of 2 boxes, the first is the sensor which will "read" the level of the tank and the second contains the buzzer to warn, a test button, and an LED to indicate a reading in progress. Everything is powered by a battery (a power bank to use to recharge phones for example).

Supplies

  • Digispark (or Arduino Nano)
  • HC-SR04 ultrasonic sensor
  • Buzzer
  • LED
  • Push button
  • Switch
  • 560 ohms resistor
  • PLA for 3D print
  • Magnets
  • Battery (power bank)

Study

Capteur Pellet (2).jpg
Capteur Pellet (3).jpg
Capteur Pellet (10).jpg
Temperature.jpg

I did some tests with a test board and an Arduino Uno to know how to use the ultrasonic sensor.

The HC-SR04 detector uses ultrasound to determine the distance an object is located. Regardless of the light intensity, temperature or type of material, the sensor can easily detect how far it is from the obstacle.

The stove tank heats up to around 46 degrees Celsius but that shouldn't be a problem as the sensor has a Working Temperature: -15°C to 70°C

On such a project I don't need a lot of I/O so I chose a Digispark.

To facilitate programming I used the NewPing.h library. The problem is, I couldn't get this library to work with a Digispark. So I used the basic functions to read the sensor but the values seemed less precise.

So I created 2 version of the code depending on whether you choose a Nano or a Digispark :

  • NiveauPellet.ino for Arduino Uno or Nano (Use NewPing.h library)
  • NiveauPellet_v2.ino for Digispark

The rest is pretty basic, a buzzer to alert, an LED to indicate that a reading is in progress, and a button for do a reading test.

3D Print

Boutons.png
Support.png
Capteur 005.jpg
Capteur Pellet (4).jpg

I designed the boxes with the Fusion 360 software, I planned a housing inside the boxes to be able to install a small magnet.

For printing I used carbon black PLA with my FlashForge Finder printer

Welding of Components

Capteur Pellet (5).jpg
Capteur Pellet (6).jpg
Capteur Pellet (8).jpg
Capteur Pellet (7).jpg
Capteur Pellet (9).jpg

For the control part, the components are soldered onto a small piece of pre-drilled printed circuit board.

For the ultrasonic sensor, I unsoldered the pins and soldered the wires directly.

And for the cable, I recovered an old computer Y cable (it was used once for a wireless keyboard and mouse receiver).

Assembly

Capteur 012.jpg
Capteur 018.jpg
Capteur 021.jpg
Capteur Pellet (11).jpg

The circuits are installed in the cases, the covers are glued, and the cable is connected to the Arduino.

The Digispark having a standard USB port, I can plug it into a power bank.

Bip Bip!

Capteur Pellet (12).jpg
Capteur Pellet (13).jpg
Capteur 024.jpg
Capteur 025.jpg
Capteur 026.jpg
Capteur 027.jpg
Capteur 029.jpg

The sensor is installed under the tank cover thanks to its magnet, and the control part is placed on the edge of the stove and remains in place thanks to its magnet too.

This is how it works: when the pellet level is low (I left about 10 cms), the buzzer sounds every 2 minutes and I know I need to refuel.

If you liked it, please consider your vote for the automation contest ;)