The assignment was to build something technical for Kolonial.no - one of Norway's biggest grocery stores - to help increase their sales.
The concept we came up with was an IoT device that brings the grocery store right into your kitchen. The device should connect to your wifi, and give you the chance to shop at your own convenience, by scanning barcodes for products you run out of. Took the last carton of milk? Scan it before you recycle the packaging and you'll have your inventory under control. This should also be a constant reminder that Kolonial.no is always ready to take your order, without the need for the mobile app or access to a computer/tablet.
The box is 3D-printed, and houses the NodeMCU microcontroller (based on ESP8266), battery and LEDs to signal feedback from the server.
Attached are a few images of the finished prototype.
Attached is hardware wire diagram, made with Fritzing.
The code running on the microcontroller is found in:
/NodeMCU_kode/MASTER/MASTER.ino
As we did not gain access to the Kolonial.no API we were left to make a backend that emulates the functionality of the grocery store Kolonial.no runs today. We filled the database with a list of common household items, pictures and their barcode. It's also possible to add new items.
The backend is made in the PHP framework Laravel and talks to a MySQL database. It also accepts incoming POST-requests from the Svisj box and sends feedback to the box depending on if the item exists in the database.
The code for the backend is found in:
/web_api/
The code also runs live at: vrangum.com/kolonial