My speed of progress on this project has been a little slower than anticipated, mostly due to school (BLERGH), but I have made a little bit of progress. To me, the most important part of this concept for a smart fridge is the way (or should I say weigh) I am envisioning it using weight sensors to make intelligent assumptions without user input. Example: you take a carton of milk out of the fridge, pour yourself a glass, and then put the carton back on the fridge shelf. Because the fridge has weight sensors, it knows the weight of the carton before and after you consumed some, so combined with publicly available nutrition information, it can tell you exactly how many calories of milk you consumed, without requiring a single button to be pressed.
Here is the thing though, weight sensing seems to a lot more complex than you might think. There are so many sensors out there that can be easily integrated into MCU projects (simply hook sensor output up to ADC), but I had no idea where to even start with weight. I started researching and it seems like the most commonly used sensor is a strain gauge. This is essentially a flexible film that has an embedded resistor. As the gauge flexes (or is strained), the resistance changes. However, this change in resistance is miniscule, so you need to use the strain gauge in a Wheatstone Bridge configuration in order to actually measure the change in resistance. After that, you need a special kind of amplifier, an instrumentation amplifier, to amplify the signal before it can be fed into a microcontroller, if you want a wide range of values to be read. This video is an excellent overview of the process:
All of this is certainly feasible to do, but the costs start adding up really quickly. For some reason it is really hard to source strain gauges (also often sold in the form of load cells) for cheap. When you add in the cost of an instrumentation amplifier (hard to find under $3 per IC), things really start getting pricey. I think this comment thread (on this HAD article) best sums up the dilemma:
At this point, I think the best option for this project might actually be to just head over to Goodwill (or some other thriftstore) and purchase some already made kitchen scales, then disassemble them and see if there is any easy way to tap into the output. Even on Amazon, I can get a digital kitchen scale for around $7, coming from inside the US, which is LESS than a single order of strain gauges.
In the meantime, while I was thinking about all of this, I was trying to come up with alternative ways to measure weight, other than the go-to method of strain gauges. I happened to have a few Hall Effect sensors laying around, so I came up with a concept for using them to measure the change in distance between a platform (holding the object to be weighed) and a base platform, separated by some sort of spring. Based on price, this might be a more cost-effective method, considering I probably only paid about a penny for each sensor, but much more labor-intensive to implement. I'm not actually going to use this method in my project, but it was something fun to play around with. Here is short video of me goofing around with this concept:
I should also note that I am far from the first person to experiment with using hall effect sensors to measure weight. Hall effect sensors are commonly used in automotive applications for measuring force/displacement:
The best example I could find of a hall-effect sensor scale was actually a project featured on Hackaday previously: http://hackaday.com/2011/01/21/magnetic-digital-scale/.