0

Project Goal

In order to enhance interaction between the chef and the customer, we tried to design devices for customers to express their appreciation to the chef as well as soothing chef's stress doing the same thing all day. Our device should be more ambient and fits into the setting of Chinese Dim Sum restaurant.


0

Design Concept

Dim Sum restaurant's kitchen may be different, but two things are always the same: steam everywhere and steam baskets stacking all over the place. This makes the lack of vertical space for chefs and they spend most of the time busily on the little preparing tables. 

When the customer knocks on a particular point on the table, this device on the chef side creates an image on an acrylic sheet out of steam to convey to the chef that he/she really appreciated the food. On a level below this, we have moving lotus floating on water which gives a glimpse of a traditional Chinese pond to relieve the stress of the chef after a long day's work.



0

Input/Output

INPUT: Customer tapping on the dining table

OUTPUT: Chinese painting showing on the chef's table with lotus moving around underneath.

0

Bill of Materials

  • Particle Photon ×2
  • Omron 1185RE8 switch ×1
  • 1000 Ω Resistor ×2
  • Pump ×1
  • Humidifier ×1
  • Tube ×1
  • Transistor ×1
  • Servo Motor ×1
  • Battery pack ×1
  • Fan ×1
  • NeverWet ×1
  • Transparent acrylic ×2
  • 12'' × 12'' Wood board ×6
  • 36 '' Wood board
  • Wood stick × n
  • Wood scrap ×n
  • Jump wires ×n

0
Dim Sum Breather
Yifei Yin - https://vimeo.com/207747178
0

Outcomes


0
Code for the dining table
int leverButton = D1;
int flag =0;
int flagNew = 0;

void setup()
{
  pinMode(leverButton, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop()
{
  int leverState;
  leverState = digitalRead(leverButton);
  if (leverState == 0){ //Knocked
    flagNew = 1;
  }
  else{
    flagNew = 0 ;
  }
  if (flagNew == flag){//state stays the same
    /*Serial.println("NO CHANGE IN BUTTON STATE");*/
  }
  else{
    if (flagNew == 1){//someone pushed the button
      Particle.publish("diotthanku2");
      Serial.println("EVENT PUBLISHED");
      delay(5000);
    }
    else {//the state went back to unpushed
      Serial.println("Knock stopped");
    }
  }
  flag = flagNew;
}
Click to Expand
0
Code for the Kitchen Top
int servoPin = D2;
Servo steam;
int fanDraw = D3;
int angle = 0;   // servo position in degrees
int pumpPin = D1;
int pumpStrength = 255;

void setup()
{
  pinMode(fanDraw, OUTPUT);
  /*pinMode(leverButton, INPUT_PULLUP);*/
  steam.attach(servoPin);
  steam.write(0);
  delay(1000);
  Serial.begin(9600);
  Particle.subscribe("diotthanku2", Draw);
  steam.detach();
  Particle.variable("Strength", &pumpStrength, INT);
  pinMode(pumpPin, OUTPUT);
  /*Particle.subscribe("MoveLotus",MoveLotus);*/
  /*Particle.subscribe("StopLotus",StopLotus);*/
}

void loop()
{

}

/*void Draw(const char *event, const char *data)
{
  digitalWrite(fanDraw, HIGH);
  Serial.println("fanDraw");
  delay(3000);
  digitalWrite(fanDraw, LOW);
}*/

/*void MoveLotus(const char *event, const char *data)
{
  Serial.println("fanLotus");
  delay(10000);
  digitalWrite(fanLotus, HIGH);
  delay(10000);
  Serial.println("end");
}*/

/*void StopLotus(const char *event, const char *data)
{
  digitalWrite(fanLotus, LOW);
  Serial.println("StopLotus");
  delay(500);
}*/

void Draw(const char *event, const char *data)
{
  // scan from 0 to 180 degrees
  steam.attach(servoPin);
  delay(500);
  Serial.println("Draw Event Triggered");
  steam.write(30);
  digitalWrite(fanDraw, HIGH);
  /*Serial.println( pumpStrength);*/
  analogWrite( pumpPin, pumpStrength );
  delay(100) ;
  Serial.println("Door Opened, Fan moving and water pump woirking, will stay on for 10 seconds");
  delay(10000);
  steam.write(0);
  digitalWrite(fanDraw, LOW);
  analogWrite( pumpPin, 0 );
  Serial.println("Door Closed, fan stopped, water pump stopped, servo detached in 2 seconds");
  delay(2000);
    /*
  if (angle == 0){
    angle = 170;
    steam.write(angle);

  }
  if (angle >= 170){
    angle = 0;
    steam.write(angle);

    digitalWrite(fanDraw, HIGH);
    delay(2000);
    steam.detach();
    delay(8000);
    digitalWrite(fanDraw, LOW);
    Serial.println("Fan stopped");
  }*/
  steam.detach();
}
Click to Expand
0
0

Process

Laser cutting the ink wash painting



Origami Lotus Coating with Neverwet



Prototype


0

Reflection

As a team, we challenged ourselves to mix water with electronics. We tried to employ the most important component in the Dim Sum Kitchen -- steam to recreate traditional Chinese Ink wash painting. We successfully prototyped both the form and the function. Although it is an IoT device, we managed to keep it with a very analog appearance. 

It is hard working with both water and electronics, but we balanced it nicely using different fabrication methods, from origami to laser cutting/engraving, and different materials like wood, acrylic, and never wet.

0

Next Step

If we have more time, we would like to build the lotus as an indication of the demand, which interact with other subgroups' product.

x
Share this Project

Courses

49-713 Designing for the Internet of Things

· 26 members

A hands-on introductory course exploring the Internet of Things and connected product experiences.


Focused on
About

~

Created

March 6th, 2017