Wifi Enabled Fuel Oil Level Gauge

I've been working on this project on an off for about a year. Last week I started working on it in earnest and got it finished to the point where it's installed and running.

There's an ESP-01 communicating with an Arduino Mini-Pro via software serial. The ESP-01 connects to my wireless network and sends the level of the oil read from an ultrasonic transducer that's attached to the Arduino.

There's more information about it's function by clicking the picture above (no ads, no spam, just a simple blog). I'm going to post the code later once I'm sure it's mostly bug free. It'll have an entire package including the PHP files for the webserver and the fuel gauge.

I have a couple more IoT projects in the works, just waiting for some parts to arrive.


I ought to do that with our oiltank, the original wireless gauge packed up a couple of years ago.


There's more information about it's function by clicking the picture above

... the link gave me: "403 Forbidden error"



I ought to do that with our oiltank, the original wireless gauge packed up a couple of years ago.


... the link gave me: "403 Forbidden error"


Sorry about the error, you're probably in one of the countries that I ended up banning due to a massive bot net attack I was under going. PM me your IP subnet and I'll open it.


What sensor did you use for this?
also, please update when you have your code available


P.S. Noticed you use JSON... you may be interested in these (not specifically for Arduino, but it's just C) which were written to handle JSON in microcontroller applications:

jRead - an in-place JSON element reader

jWrite - a really simple JSON writer in C

I’m using a sensor that I found on AliExpress.

Seems to work ok, but it does have an issue with objects being too close. I think it’s minimum detection range is around 20cm. My original thought was to put a 20cm pipe on the top of the tank so that if the tank was full it wouldn’t error, but the ping didn’t seem to like being transmitted down a pipe and caused even more problems with detection.

Hi JedidiahStolzfus,

Just came across your post as I am doing something very similar.

I have been working on my project for about 4 weeks although I have been dabbling with Raspberry Pi for a while, I only got an Arduino 5 weeks ago and ESP8266 3 weeks ago and I am extremely new to this.

Anyway, my project started on the Arduino and when I realised that I could get a Nodemcu (ESP8266) with more memory capacity, faster processing, wifi, uses Arduino IDE, etc, all for less than I paid from an UNO, I transferred my project over.

So, what I have is the Nodemcu (ESP12-E LoLin board), 1" OLED display, VL53L0X laser range finder and a couple of DS18B20 temperature sensors.
So far, with a lot of changing of the code, the idea is to read the level of the oil in my heating oil tank by subtracting the distance from the sensor with the bottom of the tank.
I also measure the temperature at the tank and I have used the analogue input to measure the battery voltage too.

This is displayed locally on the OLED display with a few bar-graphs and numbers but also sent to Thingspeak for a permanent record.
For battery life, I put the whole thing to deep-sleep and wake up to take periodic readings. This extends the battery life.

This is all still in the test phase in my ‘junk’ room (as the wife calls it) but all seems to be working fine.
I still have some work to do on it, the code is a mess and needs editing/refining and then I have to build the physical unit (boxing and mounting).
If you or anyone else is interested or would like to share/swap ideas, then by all means contact me.

Hope I haven’t bored you too much.

My Thingspeak page is here… Channels - ThingSpeak IoT
If the link didn’t work, just go to channels/427193
Also a couple of pictures attached.




Hi Cathprotect

Did the sensor VL53L0X worked for you?
I have a strange oil tank with some supports in it so ultrasonic sensors are not working for me.
I wonder if VL53L0X is good enough for measuring the distance to oil top surface (laser/reflective liquid etc.). Also I need about 1.6 meters of maximum measuring distance.


Hi skacavida,

Sorry late reply.
My project failed, not due to parts but due to oil fumes that disolved the glue holding the project together and parts falling off into the tank.
Up until that point it was working great.

Yes, the VL53LOX worked perfectly and very accurate. It had no problem detecting the surface of the oil.