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).
- Digispark (or Arduino Nano)
- HC-SR04 ultrasonic sensor
- Push button
- 560 ohms resistor
- PLA for 3D print
- Battery (power bank)
Step 1: Study
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.
Step 2: 3D Print
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
Step 3: Welding of Components
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).
Step 4: Assembly
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.
Step 5: Bip Bip!
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 😉