Concept for a "Smart Pantry" Feedback/Input/Criticism needed
So I've had this idea floating in my head for a few months and I would appreciate some feedback on it's feasibility, input as to it's design, and criticism on it's expected downfalls. It keeps coming up in my mind, so I either need to move forward on it or prove to myself it's not worth the effort so I can get it out of my head.
Smart Pantry Concept
Summary:
A food pantry that contains an apparatus that is capable of maintaining an inventory of stored items by use of the UPC barcodes on the products.
Design Concept:
Components for the food pantry portion would be a Basic Stamp 2, serial barcode scanner, LCD display, and 4 button keypad. The LCD terminal appmod might be good considering the screen data would be minimal and 4 buttons should suffice. The button functions would be:
1) Add an item to the pantry
2) Remove an item from the pantry
3) Show inventory for an item in the pantry
4) Options button
If you are putting something into the pantry, you press button 1, scan the UPC code, and place it in the pantry. The BS2 sends the UPC code and an "add" command to the PC so that the software can edit the database accordingly. If pulling out an item, you press button two, scan the UPC code and take the item. The BS2 sends the UPC code and an "remove" command to the PC so that the software can edit the database accordingly. To check inventory accuracy for an item, press button 3, scan the UPC code, and the display shows the quantity of that item in the database. The BS2 sends the UPC code and a "query" command to the PC, the software checks the quantity in the database, and sends the value back to the BS2.
The PC would have software to manage the communication with the stamp and the edits to the database. I am sure there are easy ways to do this, but this would be my weak spot. The PC would also contain the database of UPC codes or a database that is linked to the net for the codes. Last, the PC would contain a webserver so that the inventory can be seen from any laptop or the MediaPC on the living room TV. All the functions of the "PC" could probably be done with a Linux embedded device, a propeller, or ???
The Pantry Module would be very simple to create. The database side is where I would be stuck on this idea. Also, in looking for UPC code data sources, I have not found a reliable one in the aspect of downloads.
www.upcdatabase.com seems to be pretty good for checking UPC codes, but I can't get the downloadable database to appear like the data from the website. I did find a similar solution for an online wine cellar inventory program at www.bottlecount.com/. Written in PERL, that seems like a solution for the software side of my idea. I might have to send that guy an email....
Anyhow, I attached a block diagram of the idea and I would love any sort of response.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
~~ dRu ~~
Smart Pantry Concept
Summary:
A food pantry that contains an apparatus that is capable of maintaining an inventory of stored items by use of the UPC barcodes on the products.
Design Concept:
Components for the food pantry portion would be a Basic Stamp 2, serial barcode scanner, LCD display, and 4 button keypad. The LCD terminal appmod might be good considering the screen data would be minimal and 4 buttons should suffice. The button functions would be:
1) Add an item to the pantry
2) Remove an item from the pantry
3) Show inventory for an item in the pantry
4) Options button
If you are putting something into the pantry, you press button 1, scan the UPC code, and place it in the pantry. The BS2 sends the UPC code and an "add" command to the PC so that the software can edit the database accordingly. If pulling out an item, you press button two, scan the UPC code and take the item. The BS2 sends the UPC code and an "remove" command to the PC so that the software can edit the database accordingly. To check inventory accuracy for an item, press button 3, scan the UPC code, and the display shows the quantity of that item in the database. The BS2 sends the UPC code and a "query" command to the PC, the software checks the quantity in the database, and sends the value back to the BS2.
The PC would have software to manage the communication with the stamp and the edits to the database. I am sure there are easy ways to do this, but this would be my weak spot. The PC would also contain the database of UPC codes or a database that is linked to the net for the codes. Last, the PC would contain a webserver so that the inventory can be seen from any laptop or the MediaPC on the living room TV. All the functions of the "PC" could probably be done with a Linux embedded device, a propeller, or ???
The Pantry Module would be very simple to create. The database side is where I would be stuck on this idea. Also, in looking for UPC code data sources, I have not found a reliable one in the aspect of downloads.
www.upcdatabase.com seems to be pretty good for checking UPC codes, but I can't get the downloadable database to appear like the data from the website. I did find a similar solution for an online wine cellar inventory program at www.bottlecount.com/. Written in PERL, that seems like a solution for the software side of my idea. I might have to send that guy an email....
Anyhow, I attached a block diagram of the idea and I would love any sort of response.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
~~ dRu ~~
Comments
Anyway, I'll be doing something much simplified for my two new small parts bins. Basically, it will be a C++ command line program to keep track of components, location, quantity, etc. I'm doing it in C++ right now since I don't know if I'll be able to stick to the schedule, so I won't be too sorry to throw it away.
About the physical design: I think you should have your buttons laid out in a very specific way: two big buttons on either side of the LCD: one for going in, one for going out. The scanner is just below that, so you can quickly grab an item and scan it on the way out. Same thing with the way in. The other two buttons should be above and below each other, and have arrows for quantity input. Defaults to 1, with the displayed quantity being the number of the next item scanned in.
You should probably timestamp all your pantry items. That way, your program can alert you when something is going to go bad or has not been used in a while.
What are you going to do about quantity? Something like flour: you might be mislead by the "20 lb bag of flour, qnty 1" that you see in the database, when you only have 1/4 of that.
If you use either the Propeller or BS2, then you can build on a carrier board with the USB connection already there, and don't need to worry about RS232.
You might also want to consider storing location information. For my parts cabinets, I'm looking at 120 drawers total with up to 3 divisions in each. To promote future expansion, I'll label each cabinet C1, C2, C3, ... and each row and column Battleship style (A, B, C, ... and 1, 2, 3,...) so my program will just store something like C2G4a, and I can quickly find that location.
Another thing that I'm thinking of implementing is a source data field: where I got the part. While it's not as difficult to remember where you got your food from, you may want to consider it.
My final concern (mentioned briefly earlier) is the amorphous nature of your items. Items in the store (where the UPC is intended for use) are of a boolean nature: it either is or it isn't. In your pantry, that's not the case. It may be mostly there (3/4 bag of flour), or it may be mostly gone (1/4 bag). UPC won't tell you that.
The time to "digitally stock" the pantry would be an increase in time, but as you mention with a few layout ideas that could be kept to a minimum. Another idea I had was to have a sensor detect the door opening and turn on the BS2/scanner. Then, anytime the door is open, the scanner and keypad would be waiting for input.
If I made the Add/Remove command "sticky" with a red/green LED, you could scan items back to back as you were stocking the pantry. In that setup, you could open the door, make sure the green LED was on for "Add" (if not, press the Add button), then scan items as you entered them. The second scan would automatically be an "add" since that was the current mode.
For quantity, that should be covered by the UPC. In other words, a 5lb bag of flour and 20lb bag of flour would have different UPC codes. Partial bags would be in the cupboard and wouldn't be tracked. This does pose a need for an inventory software feature. The software would need to group similar items. If I was to check flour and see I have no 5lb bags, would I miss the 20lb bag because it is elsewhere in the inventory list?
If the pantry module increase in design, the extra input could be added if I use a prop with a keyboard.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
~~ dRu ~~
It's amazing what's out there.· I can't vouch for the quality or accuracy of this information.· Also, it may not have everything you want, but probably would·be faster than keying in all the UPCs by hand.·
Hopes this helps!
For CD databases, try OrangeCD from Firetongue.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
~~ dRu ~~
Additionally, the expiry dates are gleaned as well, so the pantry or fridge informs you when food has theoretically gone bad.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
When the going gets weird, the weird turn pro. -- HST
1uffakind.com/robots/povBitMapBuilder.php
1uffakind.com/robots/resistorLadder.php
A few years ago, the local radio station ran a contest for the oldest can of food... the prize was a trip to an Island for a few days.
We would have won by about 10 years had my sister-in-law not decided to help us and go through our pantry to throw out the
old food the previous week.
If you could see the pantry... you would not believe it. In the event of a famine, we will be the last ones to go hungry.
Of course it is impossible to find anything... and when it is my turn to feed the kids, I buy fast food, rather than risk injury.
I am absolutely charmed by the concept... and once you get it done, I want to be on your list.
Rich
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
~~ dRu ~~
You could add a keyboard next to the reader, with a 'simplified' dating system.
(One row of keys for month, one for year)
If no keys are pressed after one item is registered, and before the next is held up to the reader, assume that goods are 'good for whatever amount of time you prefer', or possibly, that the type of food has a set date based on simple rules.
Press the month key, then the year to register both, or just year for a 'broader' expiry.
Pressing just month before registering the next item will mean 'that month, within the next 12months'
Registering a date on one item, then registering more of the same will give them all the same expiry date, unless you punch in a new date further along the series.
Of course, there's the problem of which date there's on the item you removed, if there's several batches of them, all with different dates. Just stacking the new stuff behind the old isn't always an easy option, or timely for that matter...
(I dare anyone to place a new can of beans behind the rest of the cans already on my shelves.... )
you could have the system display the possible dates when you remove it from the pantry, and giving you the option of 'going back for another look'
Building a computer-controlled robotic pantry is probably a bit of overkill...
(Though, I've always wanted to repurpose the MSI6000 LTO3 tape robot at the office to sort my packets of instant noodles...
Besides, it would need a seriously advanced mechanism to handle all the different packaging sizes and types. (Canned goods are relatively simple, if all you eat are Campbells soup... but add ham, ravioli, reindeer balls -not THAT kind of balls - slized pineapple, sardines, kippers... )
Of course, with that kind of system, you wouldn't have to leave the kitchen to stock or empty the pantry...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Don't visit my new website...