Shop OBEX P1 Docs P2 Docs Learn Events
Concept for a "Smart Pantry" Feedback/Input/Criticism needed — Parallax Forums

Concept for a "Smart Pantry" Feedback/Input/Criticism needed

uxoriousuxorious Posts: 126
edited 2009-02-24 13:47 in General Discussion
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 ~~
676 x 241 - 51K

Comments

  • SRLMSRLM Posts: 5,045
    edited 2009-02-20 08:59
    Assuming you get the whole system working, I think the success or failure depends on how well you use it. When putting away groceries, are you often in a rush? What about grabbing a quick snack on the way to work? Each missing item adds up, requiring a periodical purge. There's probably no way that you will get every item in or out, but 99%? Will you actually use the system if you implement it?

    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.
  • uxoriousuxorious Posts: 126
    edited 2009-02-20 20:07
    Thanks for the feedback, you bring up some very valid points, however, I guess I should explain how we use our pantry. Inside the house, we use our cupboards for the day to day and partial items. So the half bag of flour is in the cupboard (and would be untracked), but the 2 full bags of flour are in the pantry. The pantry is basically bulk storage for full items.

    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 ~~
  • Desy2820Desy2820 Posts: 138
    edited 2009-02-21 00:58
    I was thinking about this and realized that some type of database or search capability (think CDDB for CD's) would be nice.· I wouldn't want to sit there and input all the descriptions for the UPCs by hand into a computer.· So, with a quick search, I turned up this link:· http://www.upcdatabase.com/

    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!
  • uxoriousuxorious Posts: 126
    edited 2009-02-21 05:50
    That's the one I found and put in my first post. Unfortunately, the downloadable zip files seem to be missing a lot of information or the data is lost when imported into Access. The website works very well though.

    For CD databases, try OrangeCD from Firetongue.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ~~ dRu ~~
  • ZootZoot Posts: 2,227
    edited 2009-02-21 15:24
    Such systems already exist and are commercially available; however they generally use the RFID tags that are already placed on just every item available in a modern supermarket. This way when the item is in the cabinet or the refrigerator, it is "known". The commercial systems also generally include a web connection so that you can check the status of your fridge or pantry and do your shopping before you come home, etc.

    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
  • rjo_rjo_ Posts: 1,825
    edited 2009-02-24 00:50
    Drudrudru,

    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
  • uxoriousuxorious Posts: 126
    edited 2009-02-24 04:57
    From off-forum feedback I have received, I guess if I at least get the pantry module done, people will be interested in the setup for other uses. The overall pantry concept has gained more laughs than Jay Leno has all year...... shakehead.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ~~ dRu ~~
  • GadgetmanGadgetman Posts: 2,436
    edited 2009-02-24 13:47
    Not all supermarkets use RFID to tag their goods, so you can't trust that as a method for getting the 'best before' date.

    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... smile.gif
    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...
Sign In or Register to comment.