Oliv'

I have a great Rika pellet stove, but despite all the embedded electronics, it is unable to warn me just before the pellets tank is empty. As I already have my own low-power wireless devices and home automation tools, I just added a distance sensor and designed some enclosures.

Pellet stove

Pellet stove

Sensor selection

IR sensor

Cheap usual Sharp sensor needs to be at least 10 cm away from the pellets. It is a no go for this use case as pellets are close to the lid when the tank is full

Ultrasonic sensors

As common as the Sharp IR sensor, the HC-SR04 was an option but I discarded it for two reasons:

  • Dust generated by pellets: sensor difficult to clean
  • Not working well with a power supply of 3.3 Vdc

STMicroelectronics time of flight sensor

So I went with ST VL53L0X: range adapted to my needs, low power, and it is easy to the clean sensor. Regarding dust, I used it for several months without having to clean it but summer was included, so let’s wait a full winter for feedback.

Hardware

I bought a cheap breakout board from eBay and plug the I2C lines into my NoteRF boards

Software

I just added the library from Pololu to my project then translated the data in Node-Red.

// VL53L0X
if ( sensorType == 7 ) {
    msg.topic = `data/sensor/noterf_distance_${sensorName}/state`;

	var distance = msg.payload.split( "|" )[2];
	distance_percent = 100 - distance/590*100;

	msg.payload = {
	    'rssi': rssi,
	    'battery': battery,
	};

	// Filter abnormal values
	if ( ( distance >= 0 ) && ( distance < 8000 ) ) {
	    msg.payload.distance = distance;
	    msg.payload.distance_percent = distance_percent;
	}
}

Home assistant

As for all other connected things in my house it reports to Home Assistant, which allows a nice interface, that I rarely use thanks to the automation: I am notified on my phone (through pushbullet) when tank level or device battery cross a threshold: the purpose of that device is achieved! Anyway, some fancy displays can be setup in a few seconds:

Tank status gauge - color changes according to the value

Tank status gauge - color changes according to the value

Tank status in millimeters - useless as percentage is more descriptive

Tank status in millimeters - useless as percentage is more descriptive

Icons + values - I have view with it for all my devices

Icons + values - I have view with it for all my devices

Device battery needs calibration :-)

Mechanics

I designed with OnShape two 3D printed boxes for the sensor and the electronics/battery, both are using magnets to stick in place The sensor is on the tank lid, while electronics and batteries are outside, hidden on the back of the stove.

Design files:

Time of flight sensor - Hot glued into 3D printed box

Time of flight sensor - Hot glued into 3D printed box

Enclosure for the electronics and the battery

Enclosure for the electronics and the battery

comments powered by Disqus