The spice organizer will track containers of different spices, using a light sensor to sense when the spice is running out and send a text alerting the user to buy more of the given spice. It will also provide assistance in keeping track of which spices have or haven’t been used in a recipe, by opening the lids of the spices that correspond to a given recipe. Finally, it will monitor the temperature of the spices, sending a text if they get too hot or cold.
The code was submitted as a zip file. We used four continuous rotation servos as the mechanism to open and close the spice boxes. The servo heads are connected to the lids of the boxes with string, so that when they rotate they can open and close the boxes. When a recipe button is pressed (one of the top four buttons down the right side of the box), the servos rotate 180°, so that the side connected to the string is now away from the boxes, putting the lids into the open position. When the close button is pushed (the bottom button along the right side of the box), the servos rotate 180° again, letting the lids down into the closed position. The servos are controlled by the Arduino Uno inside the box. Spices are meant to be kept at room temperature, and if they are left at a different temperature they can go bad quickly. Because of this, we have the temperature sensor send the user a text if it is left in too hot or cold of a location (below 65°F or above 90°F). We used light sensors, attached to the back of each spice box, to sense when a box runs out of spices. When the light sensor senses more light, it sends the user a text to buy more of the given spice. The refill buttons below each box serve to “reset” the photoresistor, so that only one text is sent each time a spice runs out. After the user refills the spice box and presses the refill button, they will receive a text thanking them for refilling it, and the photoresistor will return to its normal state (sending a text once it runs out of spices). If the user presses the refill button without refilling the spice box, they will receive a text that informs the user that it hasn’t been refilled, and won’t change the state of the photoresistor. Each of the four recipe buttons is hard-coded to a specific recipe that uses some combination of the four spices. When one of them is pushed, it will open the corresponding spices. When the close button is pushed, it will close the spices that are open. These buttons, as well as the servos, are connected to an Arduino Uno. Multiple parts of the project involve texting. The texting goes through an MKR1000, which is connected to a Temboo account, which is connected to a Twilio account. Some of the code used was auto-generated on the Temboo website, and all the arduino has to do is pass the message it wants to send into the sendMessage() function. The MKR1000 is configured to connect to my phone’s hotspot, but this is easy to change.
In the Future
We had some interesting ideas that we didn't have to implement, but just want to mention them quickly. First would be interfacing with Amazon to have it order more spices when you run out, rather than just sending a text. Second would be building an app or some kind of user interface allowing the user to pick personalized recipes, rather than the 4 hardcoded in.