Things used in this project

Hardware components:
Intel.web.720.405
Intel Edison
×1
Condiment Cup
The small cups used to hold the liquids we're cooking. Made out of aluminum
×4
Cardboard Circle
Used to make the rotating platform that the stove and collector are on
×1
Grove 20starter 20kit 20plus 20  20intel c2 ae 20iot2 01
SeeedStudio Grove starter kit plus for Intel Edison
×1
Aluminum Sheet
Small stove to concentrate the heat from the tea candles
×1
Tea Candle
Our heating mechanism
×3
16 Gauge Wire
Attached to the servos to suspend the cups for cooking and dumping
×1
Wood Frame
To suspend and set up everything
×1
Tower Pro Microservo 90
Stronger Servos are necessary due to the mass of liquids and wire
×3

Code

file_13769.txtPlain text
The code used to run the machine
#include "rgb_lcd.h"
#include <Servo.h>

rgb_lcd lcd;
const int colorR = 255;
const int colorG = 0;
const int colorB = 0;

const int pinTemp = A0;  // pin of temperature sensor
const int pinCandle = 6; // bottom, swaps heat source with strainer
const int pinLemon = 3; // top, dumps lemon juice
const int pinCheese = 5; // middle, dumps cheese to strainer
const int pinButton = 2; // manually rotate and reset servos

const int minRotation = 0;
const int maxRotation = 180;

Servo servoCandle;
Servo servoLemon;
Servo servoCheese;

double TempC, TempF, Setpoint;
int B = 3975; // B value of the thermistor
float resistance;

boolean rotated;
boolean pinButtonWasPressed;

void setup()
{
    Serial.begin(9600);
    pinMode(pinButton, INPUT);
    servoCandle.attach(pinCandle);
    servoLemon.attach(pinLemon);
    servoCheese.attach(pinCheese);
    Setpoint = 180; // temp needed to produce milk coagulation
    rotated = false;
    pinButtonWasPressed = false;
    delay(1000);

    lcd.begin(16, 2);
    lcd.setRGB(colorR, colorG, colorB);
    lcd.print("#TheTinyCheese");
}

void Unrotate()
{
  if (rotated)
  {
    servoCandle.write(minRotation);
    servoLemon.write(minRotation);
    servoCheese.write(minRotation);
    rotated = false;
  }
}

void Rotate()
{
  if (!rotated)
  {
    delay(500);
    servoCandle.write(maxRotation);
    delay(1000);
    servoLemon.write(maxRotation);
    delay(1000);
    servoCheese.write(maxRotation);
    rotated = true;
  }
}

void loop()
{
    int val = analogRead(pinTemp); // get analog value
    resistance = (float)(1023-val)*10000/val; // get resistance
    TempC = 1/(log(resistance/10000)/B+1/298.15)-273.15; // calc temperature
    TempF = (TempC * 9.0)/5.0+32.0;

    lcd.setCursor(0, 1);
    lcd.print(TempF);

    delay(1000);

    if (digitalRead(pinButton)) {
      delay(500);
      Rotate();
      pinButtonWasPressed = true;
    }
    else if (pinButtonWasPressed)
    {
      delay(500);
      pinButtonWasPressed = false;
      Unrotate();
    }
    else if (TempF > Setpoint) {
      delay(5000);
      Rotate();
    }
}

Credits

Replications

Did you replicate this project? Share it!

Love this project? Think it could be improved? Tell us what you think!

Give feedback

Comments

Similar projects you might like

Trashmatic
  • 390
  • 6

An automated trash sorter which can also decide when it must be emptied.

Trashmatic

Team Automagic

Eat In Time
  • 323
  • 5

Know when to eat food before it expires.

Eat In Time

Team Eat In Time

Floragotchi
  • 232
  • 3

Floracotchi is the world's first Tamagotchi with a living plant.

Floragotchi

Team floragotchi

Facebook Notifier using Intel Galileo
  • 1,160
  • 20

Tell when you have a Facebook notification with an LED and an Intel Galileo

Facebook Notifier using Intel Galileo

by bogdan.vlad on projects.wyliodrin.com

A Display to Track the Days Until MAKE hits Newsstands
  • 439
  • 9

Display on an Intel Galileo controlled LCD when the next MAKE magazine will arrive at the newsstands

ProjectsCommunitiesContestsLiveFree StoreBlogAdd projectSign up / Login
Respect project