Our sensor, hooked up to a breadboard!
About to make the magic happen. We put color dots on the bottom of the cans and hard corded the values into our backend.
Joe holding our custom sensor housing. Thanks to Max for designing this piece!
Our backend app just took an order from Terri! SMS ordering would really help internet-isolated areas.
Look at those delicious color values!
Rough mockup of how the fiber optics would transmit back to a single sensor.
How does it work?
Built with Python Using an Adafruit RGB color/light sensor and matte color dot-stickers, we can successfully teach a Raspberry Pi to identify and send packets of data containing color values to a backend system. Coke, Sprite, Diet Coke - mark the cans or bottles with a color dot corresponding to the product, and coolscan can detect the color for tracing inventory.
When the door is opened (or a mechanical trigger activated - still working on this particular detail!) a series of LED lights installed under the inventory flash. these flashes illuminate the underside of the cans or bottles, which are marked with color codes. The reflection of this flash is picked up by fiber optic cable, which runs to the color sensor. The color sensor then sends raw RGB values to a Raspberry pi, which creates a data object containing the ID of the unit and the Raw color values.
Built with Ruby on Rails One the update object is created (containing the raw color values), it is forwarded to a backend inventory system created with Rails. The backend server converts the raw RGB data into a color tag (preset and unique to every coke product: Coke = Red, Green = Sprite, Vermillion = Diet Grape Fanta, etc..). Once a color tag is identified, the rails app automatically updates the inventory count (also preset by the rep for the retailer - think of it like par levels in a bar or restaurant: how much do you need on hand on any given day?).
Ordering in Small Markets
Built with Twillio for Ruby on Rails _ By integrating Twillio into our backend, we are able to send data and ORDER MORE PRODUCT via text message! This allows places with limited internet to still be able to transmit orders and restock. While this won't directly solve the problem of predicting out of stock, it would ensure an easier access to product for remote places. Even in areas where smart phones don't exist, SMS capabilities DO!
What does it measure?
The sensor unit detects a color tag located on the bottom of the product. This could be a colored dot sticker, or some kind of matte color ink/paint. An LED flashes to trigger the color sensor, which reads the REFLECTION of the LED flash on our colored marker. In addition, the sensor detects light levels and changes in light levels and returns that information in an easy to read value.
Does the retailer/bottler/distributor have to do anything different to make your solution work? (if yes, please explain)
Following a Plan-O-Gram would be optimally beneficial to the success of this solution. Our solution allows items to be stocked at random (as it constantly checks the front row of the coolers) but it would far less initial calibration to use the Plan-O-Gram. In addition, there may be some sort of data collection or inventory update on the part of the retailer, but we feel as though the distributor/rep could easily take care of the necessary pieces of data collection and updating.
What materials does your solution require?
RGB and Light sensor 3.3V Raspberry Pi or similar micro CPU fiber optic strands (1.0mm, dual channel??) POSSIBLY some sort of celluar transmitter, if you wanted the cooler to be able to send data itself Duct tape Super glue Elbow grease
Best guest on cost to implement
$5 color sensor $3 Fiber Optic Strands ~$14 sensor controller (Raspberry Pi is overkill for this logic) $2 miscellaneous hardware
This is an extremely rough estimate and does not take into account bulk pricing options
Challenges you/your team ran into
Well, for one, we weren't able to get any fiber optic cable for our prototype. In addition, none of us have any electrical or mechanical engineering backgrounds. We have never used Python, color sensors or anything of the sort, so a lot of our time was spent learning new technologies and trying to get them to do what we wanted. Additionally, we had very limited experience with the micro CPU's, so there were some setup hurdles trying to integrate the color sensor and make it talk to our Python program.
What you/your team learned
We learned Python and taught it to talk to a Raspberry Pi. We learned how to use a sophisticated piece of technology, and not only get it to do something, but to return us useable data that we could understand. We taught our computers to see in color!!!
The next step to implementing this would be figuring out the proper way to rig our fiber optic strands to return data from the front row of our coolers. This solution requires us to be able to feed multiple light sources into a single sensor, and get useable color and light data from it. This could require considerable calibration time, recording values and averaging them to get useful core information.
After that, we would need to pair with mechanical and electrical engineers to work on triggering the "inventory flash", either utilizing a door open sensor, or some type of mechanically activated contact. We could in theory utilize the RGB sensor to detect changes of light, which will then trigger a poll of all positions, giving the program a picture of what's in the front row. Another light change would then reference that picture to determine what item was removed. This is theoretically all possible, but not tested yet.
Lastly, we would want to implement the data-to-text SMS service. We believe that this is really a 2-part solution: better inventory tracking coupled with easier inventory stocking. The ability to send an SMS to place orders could benefit rural, internet-isolated areas.
Anything else you want to add
While our solution does not actively inventory your cooler, it DOES tell you what was sold, when it was sold, what cooler it was sold from, what row and column it was sold from, if it's sold out and for how LONG it was sold out.