AmIcook

A smart solution for student campus

What is it?


Student! Imagine that you come back to the campus dormitory and your roommates have already set water and pasta for the lunch. How stressful is it to wait for water to boil?
AmIcook is the solution!

Whenever you are hungry, you can organize easily a meal or join one. AmIcook will count how many partecipants will attend the meal, furthermore it will decide and dispense the optimal amount of ingredients needed for the pasta.
Then, it controls the stove and notifies the users when the meal is ready.

The main benefit for the users, beyond the optimization of time, it is the waste reduction, because the right amount of water, ingredients and energy is used to cook.

Consequently the shared dormitory kitchen results a more intelligent ambient.


Get a brief flyer!


Why is this an AmI?

Because AmIcook:

But wait there is more!

SUSTAINABILITY

Save food with your help, by always selecting the right amount of ingredients

Save energy by always cooking the pasta with the right time and with residual heat


RESPONSIVE

Remember the usual amount of pasta for each user

ADAPTIVE

Suggest early refill in order to satisfy an average meal

UBIQUITOUS

Accessible everywhere in the dormitory through the mobile app

GET TECHNICAL


Typical problems in a campus dormitory regards common spaces, like the kitchen.
The goal of the system is to guide the roommates of the shared kitchen into the organization of the meal, and to control the stages of the cooking in a sustainable way.
During a time window preceding the meal, the system collects, through a mobile application, the numbers of roommates attending. Then, the system computes the optimal amount of water and ingredients (pasta, salt) needed, and, based on these quantities, a dispenser releases the latters.
The system mainly manages the cooking phases (turn off/on the stove) and alerts the roommates when the meal is ready.

System Requirements



Intro

Functional Area Description
1 - SENS How it will sense
2 - ACT How it will act
3 - THK Various internal computations
4 - ALARM The system notifies when to add or drain pasta
5 - POLL Poll in order to organize the right number of users
6 - DEL Delete your poll partecipation or directly your poll
7 - EMPTY Prompt to refill the dispenser
8 - TIME Keep a countdown to the end of cooking steps

Specifics

FR SENS.1
Title: Water boiling
Description: A sensor will check if the water in the pot is boiling.
Priority: 1

FR SENS.2
Title: Pot presence
Description: A sensor will check if a pot is on the stove in order to enable switching it on.
Priority: 2

FR SENS.3
Title: Dispenser emptiness
Description: A sensor will check if the dispenser is running low on its ingredient.
Priority: 5

FR ACT.1
Title: Dispense pasta
Description: A dispenser will drop in the pot the right amount of pasta.
Priority: 1

FR ACT.2
Title: Control the stove
Description: Via smart-plug the system will switch on or off the stove.
Priority: 1

FR ACT.3
Title: Dispense other ingredients
Description: Other dispenser will drop salt and water in the pot.
Priority: 5

FR THK.1
Title: Average amount of pasta for each roommate
Description: The system will put as default this value. This will be eventually overwritten by the decision in POLL.2.
Priority: 3

FR THK.2
Title: Trigger early refills
Description: The system will check the next meal ingredients and launch EMPTY.1 if needed.
Priority: 5

FR THK.3
Title: Scheduling
Description: The system will keep a schedule to of the programmed meal and it will not allow two meal to be organised in the same moment (ex. not two lunches on the same day).
Priority: 2

FR ALARM.1
Title: Add water alarm
Description: Notifies the User when it's time to add water in order to start the cooking process.
Priority: 1

FR ALARM.2
Title: Drain pasta alarm
Description: Notifies the user when it's time to drain pasta
Priority: 1

FR POLL.1
Title: Create a poll
Description: The User creates a poll with an expiration time
Priority: 1

FR POLL.2
Title: Join a poll
Description: A Roommate joins an existing poll and decide the desired amount of pasta
Priority: 1

FR DEL.1
Title: Delete a poll
Description: The poll User can delete it completly.
Priority: 4

FR DEL.2
Title: Delete a poll partecipation
Description: A Roommate can delete his participation to a poll he joined.
Priority: 4

FR EMPTY.1
Title: Notification of empty dispenser
Description: The latter User is called to refill to dispenser.
Priority: 5

FR TIME.1
Title: Countdown
Description: Between every step the system will provide a countdown to its end
Priority: 5
Code Area Description
1 Portability The microcontroller should be able to communicate with the mobile application through wi-fi
2 Portability At least the app will be available for Android 5.0 or upper versions
3 Efficiency Time will not be an issue with the micro controller but with the app/server, that will need to guarantee adequate response time
4 Usability System language will be, at least, english
5 Usability For now, the system will be optimized only for one kind of pasta
6 Interoperability The microcontroller should be able to communicate with the electric stove and the dispenser (wired)

Terminology:

  • Session → Meal, either lunch or dinner
  • Poll → Survey that take places during a time window partecipation
  • Notification → Alarm sent to the user
  • Interface → Mobile application through which the poll is managed and the users
  • Dispenser → Physical container which releases pasta and salt
  • Hardware → Microcontroller + Dispenser + Sensors
  • System → Hardware + App

Actors:

  • User → Roommate who start the poll and oversees the cooking process
  • Roommate → Meal partecipants

ARCHITECTURE


Hardware


Software


Network


Name Component
Micro Controller Arduino Uno + Arduino Wi-Fi Shield + Adafruit Motor Shield v2.3
Humidity & Temperature Sensor Sensor AM2302 (wired DHT22)
Ultrasound Sensor Sensor HC-SR04
Smart Plug Z-Wave Smart Plug
DC Motor NEMA-17 Stepper Motor
Dispenser 1 lt. plastic dispenser
Electric Stove Blinky electric stove diam.: 15.5 cm
Server HP 15 Notebook PC
Name Version/API
Python 3.6.0
Flask 0.12
Wi-Fi IEEE 802.11
Z-Wave ZC08-14110009
Android OS 21
  • Controlling electronically the electric stove, we have to switch on/off, eventually increase/decrease the heat
  • How to control an electric stove with a microcontroller?
  • How to detect if the pot is on the stove?
  • Which microcontroller?
  • Finding a smart-plug directly driven by Arduino-uno
  • Distinguish User from Roommate
  • Making a working server to app communication
  • Making the Wi-Fi shield work consistently and reliably