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

10470604 10152953082001549 2325306502629680103 n
Adam Dziuk
1 project • 6 followers
Contact
2015 02 16 17 43 33 oneshot
Lucy Liang
1 project • 7 followers
hello
Contact
Screen shot 2015 02 23 at 11.15.00 pm
Adrienne
1 project • 5 followers
Let's make cool stuff!
Contact
7174808
Sarah Guermond
1 project • 6 followers
I like Python and power tools.
Contact

Comments