This project enables you to equip your bag with the capability of scanning the stuff you take with you.
It uses three Edison Breakout Boards for the IoT Roadshow demo, but it can also build with one.
Apart from that, it uses BLE nodes and the Grove Starter Kit Plus for the sensors.
It knows whether you're heading to work, the gym or any other destination and checks for all items you require for your activity.
If you're about to leave without a required item (e.g. your car keys), it alarms you (buzzer) and tells you which item you forgot (LCD).
The user can add/remove scenarios and item list by means of a web app.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: Make Your Bag Smart
Attach the shield to the Edison Breakout Board.
Take the Grove accelerometer and connect it to either one of the I2S ports.
Configure it to read out the experienced acceleration for as many times per second as you like (we chose 20x).
Use can you use the MMA7660 sample code, it will take you there.
Next, connect the Grove buzzer to any of the GPIO ports (we chose D5).
Whenever the bag experiences 1.5G or more in any direction, scan the bag for BLE-marked items.
Compare the detected items with the list you receive from the server (we'll into the server later).
If the list contains items you did not detect in your bag, play the alarming do-re-mi sound!
The Grove buzzer sample code provides a starting point for this.
Step 2: Set Up the Back End Server
For the back end server, we use a second Edison board but it can ben any computing device.
It will listen to the Front End client for new item lists to track (see next step).
For communication it uses websockets, which allow for asynchronous communication without needing constant polling.
Also, it listens to the bag for missing items.
Optionally, forwarded the missing items reported by the bag to the LCD screen (see step 4).
Step 3: Design the Front End Client
Create a front end client using Angular, a Google framework for designing web pages.
This way, users are able to add/remove bag configurations and items.
As a client from the Back End server, it will push the submitted item lists to the Back End server (from previous step), which will forward it to the bag.
Step 4: (optionally) Display Missing Items on the LCD
If you like, you can attach an LCD to the smart bag Edison or a third Edison (use one of the I2S ports).
After the bag is moved, it will notify the Back End server items that it expected but did not detect.
In case you attach the LCD to the Bag Edison, this message can also be used as input for the LCD.
Once again, the Grove LCD sample code will provide you the code to display text messages and use fancy colors.