This ESPHome project is as simple as they get. All you need is a load cell weight sensor suitable for a kitchen scale and compatible with Arduino-like microcontrollers and an ESP8266 board. Nothing more and nothing less. You could even buy a pre-soldered ESP8266 board (such as this one) and connect the two components using only Dupont cables.
This connected dog bowl can be set to notify you whenever your dog (or any other animal that eats and drinks out of a bowl) is out of food or water. For it to work, you simply have to weigh the bowl on its own and that value will then represent an empty bowl. If the load cell reports a weight of more than that of the bowl alone, there is still food in it. As the load sensor doesn’t just measure full or empty but everything in-between, you could also have it notify you when the bowl is almost empty.
The creator of this project is, obviously, a dog owner. Hence, the connected dog bowl. However, you can use the same tools to measure a cat, capybara (apparently you can legally own them in the USA), or hedgehog bowl.
Parts needed for the ESPHome connected dog bowl
If you’ve already got an ESP8266 (or ESP32) you are literally already halfway there. The only other thing needed is a load cell weight sensor, which can be found online for little money. Make sure you buy a load cell weight sensor that comes with a load cell amplifier, such as the HX711. The load cell amplifier is a device that increases the strength of the signals coming from a load cell, making them understandable for the ESP8266. Luckily, the load cell I have linked below already contains an HX711.
The ESP8266 and load cell weight sensor can be connected using the Dupont cables that ship with the load cell, or you can do some soldering for a more permanent and durable installation. The ESP8266 can be powered by an old phone charger and as the load cell works in the voltage range 2.6V~5.5V it can be powered directly off the ESP8266 board.
How the ESPHome connected dog bowl works
The creator of this project has made their code public on GitHub. It is, as you might be able to tell, rather simple. The only thing you have to do is calibrate your data. It’s like when you have to press the tare button on the kitchen scales. The HX711 will spit out a number, but you then have to convert the values to units yourself.
To accomplish that, you will first have to place the bowl on the load cell. That will be your value for 0 kilograms or litres, depending on what you want to measure. You should see the value in the logs. Make a note of the exact number. Next, place a known mass into the bowl, such as a 1000 g scale calibration weight. Again, wait for the value to appear in the value to appear. You can repeat this process multiple times. The creator of this ESPHome connected dog bowl went with 1 and 2 kilos.