Shop OBEX P1 Docs P2 Docs Learn Events
Contest entry: MyInventory Web presented inventory list from bar codes. — Parallax Forums

Contest entry: MyInventory Web presented inventory list from bar codes.

zoopydogsitzoopydogsit Posts: 174
edited 2010-11-10 02:50 in Accessories
Folks, after discussion & buy-off with my wife (very important) we came up with the idea of the following contest entry which I've temporarily called "MyInventory"

Using the Spinneret Web Server, the TSL1401 Line Scanner and some switches and a Pizzio buzzer we intend to scan items, store them in the SD card to then display them in HTTP as an inventory list on request.

Concept:
My wife's intention is that this would be a kitchen appliance. When you get your shopping home, you scan every item and select the "In" switch that would indicate you have the item. Then as an item starts getting low (let's say milk or bread) then you re-scan the item and press the "Low" button. When the item is out you'd re-scan the item and press the "Out" button. Then when at the store, on your iPHONE you click on you personal web page for inventory, see the list of OUT items, LOW items. This will help you to buy the things you need (OUT) items, and consider buying (LOW) items on special. Another button will be available to "Delete" an item (you may choose that you didn't like that product and want it removed from your list). Likewise, while at work, if she thinks "what will we cook tonight, do we have ..." she can have a look at her virtual pantry to identify whether she has the ingredients we need. She would like the idea of being able to re-use non-food barcodes and re-name them in the local list so that she can maintain the inventory for Fruit and Vegetables. ie. the barcode from the hardware store for 1" wing nuts get's renamed to Brocolli.

Design considerations:
1) Spinneret Web Server to be able to do enough TCP/IP so connect on my HUB and respond to HTTP requests on my firewall. At this stage it is aimed only at IPV4 with a static RFC1918 address on a private network with controlled Internet access through a firewall.
2) Spinneret Web Server to be able to format and present data HTTP web pages over TCP/IP datagrams.
3) TSL1401 line scanner to accurately read bar codes. As this device has no moving parts then it should have a reasonable life.
4) Enough pins can be scavanged on the Spinneret to be able to read 4 buttons and execute one Pizzio buzzer (to notify the barcode read). We are considering a 1 wire approach using RCTIME and 4 different resistor levels per switch to reduce the pin count. We may consider this with a diode and Pizzio Buzzer to signal.
5) Able to read Date & Time on the Spinneret.
6) Able to write inventory to the SD card with date and time.
7) Able to serve data from the SD card as a series of organized web pages.
8) Investigation of publicly Internet available list of BAR CODE product look ups, to be able to display by meangful product description.
9) Consideration of security controls for a private ADMIN interface to be able to re-lable products by barcode rather than by lookup (assuming availability).
10) Spinneret formulating data by Availability, Expirey (milk will expire from date of purchase).

We are NOT planning to implement:
- IPV6
- DHCP Client
- Packet filtering (preventing packet corruption/malicious packets from breaking the device)
- HTTPS/SSL/TLS for secure sessions

Implementation considerations:
A) Currently on a DHCP cable connection. Use a DDNS look up for current web access. This should be documented in the SETUP configurnation for other folks to repeat in their implementations.
B) Currently have a DMZ on home firewall for an APACHE firewall on FreeBSD to present web content. Will place the Spinneret on this network for security rather than placing it on the raw Internet. Will need to document this for others to repeat in their project.
C) May consider front ending the Spinneret with APACHE MOD_SECURITY or some kind of proxy to better protect it from the Internet.
D) Let's hope we can be economical in our memory use to do all of this in the Prop.

Short-Cut considerations:
i) Will use TCPDUMP on FreeBSD (firewall) to capture current HTTP access to simple web pages for the format of datagrams to then re-use for building ARP and HTTP datagrams to assist with routing and presentation data generation.
ii) Will use a cheap commercial barcode scanner to look at the format of existing barcode data against the output of the TSL1401 line scanner to simplify development.
iii) Let's see if anyone else has used the TSL1401 to read barcodes (that could save some work).

Sounds like fun :-)

Comments

  • WBA ConsultingWBA Consulting Posts: 2,934
    edited 2010-11-09 12:31
    Excellent idea! Here are some similar notes....
    http://forums.parallax.com/showthread.php?t=110570

    I would check into using a serial barcode scan engine as opposed to the TSL1401. I picked up two a while back on eBay for $20 each. Symbol LS1220. Might be easier to manage, unless scanning code is already written for the prop.
  • $WMc%$WMc% Posts: 1,884
    edited 2010-11-09 19:07
    Folks, after discussion & buy-off with my wife (very important) we came up with the idea of the following contest entry which I've temporarily called "MyInventory"

    Using the Spinneret Web Server, the TSL1401 Line Scanner and some switches and a Pizzio buzzer we intend to scan items, store them in the SD card to then display them in HTTP as an inventory list on request.

    Concept:
    My wife's intention is that this would be a kitchen appliance. When you get your shopping home, you scan every item and select the "In" switch that would indicate you have the item. Then as an item starts getting low (let's say milk or bread) then you re-scan the item and press the "Low" button. When the item is out you'd re-scan the item and press the "Out" button. Then when at the store, on your iPHONE you click on you personal web page for inventory, see the list of OUT items, LOW items. This will help you to buy the things you need (OUT) items, and consider buying (LOW) items on special. Another button will be available to "Delete" an item (you may choose that you didn't like that product and want it removed from your list). Likewise, while at work, if she thinks "what will we cook tonight, do we have ..." she can have a look at her virtual pantry to identify whether she has the ingredients we need. She would like the idea of being able to re-use non-food barcodes and re-name them in the local list so that she can maintain the inventory for Fruit and Vegetables. ie. the barcode from the hardware store for 1" wing nuts get's renamed to Brocolli.

    Design considerations:
    1) Spinneret Web Server to be able to do enough TCP/IP so connect on my HUB and respond to HTTP requests on my firewall. At this stage it is aimed only at IPV4 with a static RFC1918 address on a private network with controlled Internet access through a firewall.
    2) Spinneret Web Server to be able to format and present data HTTP web pages over TCP/IP datagrams.
    3) TSL1401 line scanner to accurately read bar codes. As this device has no moving parts then it should have a reasonable life.
    4) Enough pins can be scavanged on the Spinneret to be able to read 4 buttons and execute one Pizzio buzzer (to notify the barcode read). We are considering a 1 wire approach using RCTIME and 4 different resistor levels per switch to reduce the pin count. We may consider this with a diode and Pizzio Buzzer to signal.
    5) Able to read Date & Time on the Spinneret.
    6) Able to write inventory to the SD card with date and time.
    7) Able to serve data from the SD card as a series of organized web pages.
    8) Investigation of publicly Internet available list of BAR CODE product look ups, to be able to display by meangful product description.
    9) Consideration of security controls for a private ADMIN interface to be able to re-lable products by barcode rather than by lookup (assuming availability).
    10) Spinneret formulating data by Availability, Expirey (milk will expire from date of purchase).

    We are NOT planning to implement:
    - IPV6
    - DHCP Client
    - Packet filtering (preventing packet corruption/malicious packets from breaking the device)
    - HTTPS/SSL/TLS for secure sessions

    Implementation considerations:
    A) Currently on a DHCP cable connection. Use a DDNS look up for current web access. This should be documented in the SETUP configurnation for other folks to repeat in their implementations.
    B) Currently have a DMZ on home firewall for an APACHE firewall on FreeBSD to present web content. Will place the Spinneret on this network for security rather than placing it on the raw Internet. Will need to document this for others to repeat in their project.
    C) May consider front ending the Spinneret with APACHE MOD_SECURITY or some kind of proxy to better protect it from the Internet.
    D) Let's hope we can be economical in our memory use to do all of this in the Prop.

    Short-Cut considerations:
    i) Will use TCPDUMP on FreeBSD (firewall) to capture current HTTP access to simple web pages for the format of datagrams to then re-use for building ARP and HTTP datagrams to assist with routing and presentation data generation.
    ii) Will use a cheap commercial barcode scanner to look at the format of existing barcode data against the output of the TSL1401 line scanner to simplify development.
    iii) Let's see if anyone else has used the TSL1401 to read barcodes (that could save some work).

    Sounds like fun :-)
    '
    zoopydogsit
    '
    This is a cool idea.
    '
    I'm waiting on the Spinneret to see what it can do Before I start a project.
    '
    I'll Post My idea for the contest shorty their after.
    '
    Good Luck!
  • zoopydogsitzoopydogsit Posts: 174
    edited 2010-11-10 02:50
    Thanks Andrew,

    I was not aware of it. I'll do some reading to see if there are any short cuts :-) Great suggestions. I have a friend that has a serial hand held barcode scanner that I'll use in development. I thought of using the TSL1401 to get extra points using a Parallax product ;-)

    My original thought of the project was to answer the big question that plagued the 20th century "Is the fridge light on when the door is closed". Use a Photo resistor and a thermister to each measure light and temperature using RC time, and a hall effect sensor and magnet to determine door open & duration, to provide data by date & time to the SD card and web pages. But my wife thought this was too theoretical, hence involving her in the creative process as part of buy-in approval, and getting this cool idea to work on :-)

    My big concern is whether I have enough memory to achieve everything that I need to do. But it will be fun to find out....

    Hi $WMc%,
    I'd suggest just go for it. There's nothing lost by trying (except buying a Spinneret and spending time developing. And worst case you'll still have a nice prop board you could use for something else (and/or canablise someone else's solution to do what you want)). The whole idea of this contest is to build a community by having active sharing in the forum. So theoretically in the spirit of how this contest was planned we will all be working together, sharing learnings, code fragments etc. If this be the case then you won't be doing this alone. So I'd say go for it :-)
Sign In or Register to comment.