49713 Designing for the Internet of Things
· 18 members
A hands-on introductory course exploring the Internet of Things and connected product experiences.
Smart kitchen solution: a boil-over alert that notifies people when their cooking soup is boiling over the pot.
My IoT object was designed for my mom since she encounters a lot of problems with housework. When she makes porridge and soups, the simmering process usually lasts for 2 – 3 hours. What makes her frustrated is that there are lots of foam (scum and fat) in the meat soup which always boil over the pot if she doesn’t skim it off as soon as possible. It always makes a mess in the kitchen and lead to potential fire risks. Therefore, I proposed to make a “Boil-over Alert” that can alert her as soon as the bubbles and foam rise close to the pot surface, so that she can scoop them off quickly without waiting in the kitchen the whole time.
The Boil-over Alert should have a sensor that senses the liquid level of the soup and an indicator to give her alert on time. I chose to use a soil moisture sensor instead of a temperature sensor because the soup flowing over the pot can happen before, during or after boiling, so a soil moisture sensor will be more accurate to capture the boil over moment. Both a LED light and a text message will be indicators so that she can be alerted no matter where she is at home and whether she is paying attention on something else or not. After she skim off the foam, she should press a button to turn off the LED light.
I started with soldering wires on the soil moisture sensor, which Taylor helped me a lot. I tried soldering pins first so that they can be connected better that way. But the sensor is too small so eventually I just connected with wires directly. I then used the Arduino example script on SparkFun and tested the results with the sensor. The sensor worked properly.
However, I worried whether the sensor can work properly under high temperature in a real cooking scenario so I did multiple tests in my kitchen. The ideal way is to have the sensor integrated in the pot lid or at the edge of the pot. Since I didn't want to ruin the sensor under the high temperature, I tried removing the handle of my pot lid and placing the sensor on top of it to capture the steam. I couldn't really find the best way to place it but hopefully it can be integrated inside the pot when it becomes a mature product in the future.
int val = 0; //value for storing moisture value
int soilPin = A0;//Declare a variable for the soil moisture sensor
int soilPower = 6;//Variable for Soil moisture Power
int ledPin = D2;
int buttonPin = D3;
bool state = false;
void setup()
{
Particle.variable("val", val);
pinMode(soilPower, OUTPUT);//Set D6 as an OUTPUT
digitalWrite(soilPower, LOW);//Set to LOW so no power is flowing through the sensor
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
//This is a function used to get the soil moisture content
int readSoil()
{
digitalWrite(soilPower, HIGH);//turn D6 "On"
delay(10);//wait 10 milliseconds
val = analogRead(soilPin);//Read the SIG value form sensor
digitalWrite(soilPower, LOW);//turn D6 "Off"
return val;//send current moisture value
}
void loop()
{
Serial.print("Soil Moisture = ");
//get soil moisture value from the function below and print it
Serial.println(readSoil());
//This 1 second timefrme is used so you can test the sensor and see it change in real-time.
delay(1000);//take a reading every second
if (val > 200){
digitalWrite(ledPin, HIGH); //Turn on LED
int buttonState = digitalRead(buttonPin);
delay(50);
if (buttonState == LOW){
state =! state;
delay(50);
}
if (state == true)
{
digitalWrite(ledPin, LOW); //Turn off LED
}
else{
digitalWrite(ledPin, HIGH); //Turn on LED
}
}
else{
digitalWrite(ledPin, LOW); //Turn off LED
}
}
Click to Expand
When making the prototype of this object, I thought that it'd be nice to use it when we turn on bathwater as well. As we all know, filling up the bathtub with water can take at least a few minutes and I usually don't like waiting in the bathroom, this alert could let me know when the bath is ready.
I showed my mom the prototype and here are a few things that she concerned about. First, she asked how this object connects to her phone. As a non tech-savvy person, her biggest worry of IoT products comes from not knowing how this can connect to internet as well as whether it's a one-time setup or not. After I explained it, she felt satisfied to learn that it'd be a one-time setup and all she'll need to do is to verify her phone number. Second, she wondered if this object can be even smarter to rinse the soup and turn off the stove directly for her. My answer is that it is definitely feasible. I could imagine how these electric components can be connected to the stove as a smart kitchen product. I could also imagine that having a little "propeller" running at the bottom of the pot to rinse soup automatically for us in the future.
Making smart home objects is fun and full of bliss. In the example of bathtub water alert (although it's not the original problem that I tried to solve), this application could really make my day! Many users like myself are very impatient and the boredom of waiting in the bathroom for a few minutes can already kill our motivation of take a bath. Having this simple home assistant can make me feel like being taken care of. Same as the cooking pot scenario, I use a small pot at home and the boil-over situation happens every single time I cook. I always have to rush to the kitchen and clean up the mess after. However, such a simple object at home can already solve a lot of problems.
A hands-on introductory course exploring the Internet of Things and connected product experiences.
Smart kitchen solution: a boil-over alert that notifies people when their cooking soup is boiling over the pot.
January 30th, 2019