Adam DziukLucy LiangAdrienneSarah Guermond
Published © GPL

Tiny Cheese Maker

Have you ever said "I wish I could have a tiny amount of goat cheese in about 20 minutes"? Well have we got a project for you!

Full instructions provided2,987
Tiny Cheese Maker

Things used in this project

Hardware components

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 starter kit plus for Intel Edison
Seeed Studio 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

Story

Read more

Code

file_13769.txt

Plain 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

Adam Dziuk

Adam Dziuk

1 project • 6 followers
Lucy Liang

Lucy Liang

1 project • 7 followers
hello
Adrienne

Adrienne

1 project • 7 followers
Let's make cool stuff!
Sarah Guermond

Sarah Guermond

1 project • 8 followers
I like Python and power tools.

Comments