Python разработчик
0,0
рейтинг
11 апреля 2014 в 15:24

Йогуртница на основе arduino из песочницы

картинка для привлечения внимания
Все знают, что йогурт очень полезный продукт, да к тому же и вкусный. Под катом небольшое повествование о том, как я решил сделать йогуртницу, немного фото и скетч.

Блуждая по просторам интернета, наткнулся я на такую интересную вещь, как йогуртница. Жена у меня любит йогурт и частенько его покупает. Почитал профильный сайт, вдохновился. Вдохновила сама мысль о том, что его можно легко приготовить дома, причём он получится даже полезней, чем из магазина. После прочтения нескольких обзоров и сравнений, мы с женой решили купить «Moulinex YG230 YOGURTEO». Но вот незадача – город у нас небольшой и в продаже её мы просто не смогли найти. Хотели уже оформлять под заказ и тут меня осенило.
Что такое йогуртница? Грубо говоря – прибор для поддержания определённой температуры в течении определённого времени. Это же просто, почему бы не сделать самому? Конечно! Как раз в тумбочке уже с полгода лежит без дела arduino. Каюсь, грешен, да простят меня гуру микроконтроллеров, но я далёк от этого. Необходимости и времени изучать программирование микроконтроллеров у меня не было, поэтому, интереса ради, купил ардуинку, поморгал светодиодом, убрал в тумбочку и забыл. И вот, у меня появился шанс объяснить жене «зачем я покупаю весь этот хлам, если он потом всё равно без дела лежит в тумбочке».
Помимо ардуины нужны ещё термодатчик DS18B20 и твердотельное реле. Описывать, как всё это соединять, думаю смысла нет – не раз обсуждалось на хабре и профильных сайтах.
Приведу только сам скетч:
#include <OneWire.h>

OneWire ds(10);
byte addr[8];
int active = true, ssrPin = 4, ledPin = 5;
float millisecondsPerGradus, currentTemperature, cookingTemperature = 36.0;
unsigned long totalWorkTime = 28800000; // 8 * 60 * 60 * 1000

void setup(void) {
  Serial.begin(9600);
  pinMode(ssrPin,OUTPUT);
  pinMode(ledPin,OUTPUT);
  while (true) {
    if (!ds.search(addr)) ds.reset_search();
    else break;
    delay(250);
  }
  //предварительный прогрев
  digitalWrite(ssrPin, HIGH);
  delay(10000);
  digitalWrite(ssrPin, LOW);
  delay(1000);
  //замер, за сколько миллисекунд температура воды изменяется на один градус
  thermometer();
  float startTemperature = currentTemperature;
  digitalWrite(ssrPin, HIGH);
  delay(30000);
  digitalWrite(ssrPin, LOW);
  delay(1000);
  thermometer();
  millisecondsPerGradus = 1000.0 / ((currentTemperature - startTemperature) / 30.0);
}

float thermometer(void) {
  byte data[9];
  while (true) {
    ds.reset();
    ds.select(addr);
    ds.write(0x44,1);
    delay(1000);
    ds.reset();
    ds.select(addr);
    ds.write(0xBE);
    for (byte i = 0; i < 9; i++) data[i] = ds.read();
    currentTemperature = (float)((data[1] << 8) | data[0]) / 16.0;
    if (currentTemperature != 85.00) break;
  }
  //Serial.println(currentTemperature);
}

void loop(void) {
  if (!active) {
    delay(5000);
    return;
  }
  if (millis() > totalWorkTime) {
    //завершаем подогрев и оповещаем светодиодом
    digitalWrite(ledPin, HIGH);
    active = false;
    return;
  }
  thermometer();
  unsigned long delayTime;
  if (currentTemperature >= cookingTemperature) {
    delay(1000);
    return;
  }
  else if (currentTemperature > cookingTemperature - 2.0){
    //если температура близка к необходимой, замедляем процесс подогрева
    delayTime = millisecondsPerGradus * ((cookingTemperature - currentTemperature)/3.0);
  }
  else {
    //иначе подогреваем на градус
    delayTime = millisecondsPerGradus;
  }
  digitalWrite(ssrPin, HIGH);
  delay(delayTime);
  digitalWrite(ssrPin, LOW);
  delay(1000);
}


Температура и время подбирались экспериментальным путём, не одна банка йогурта была испорчена. В итоге сошёлся на том, что надо готовить восемь часов (ставлю на ночь) при температуре 36 градусов. Везде пишут, что температура должна быть 38-40 градусов, но при такой температуре за восемь часов йогурт скисал (расслаивался), а за пять часов (до момента начала расслоения), как мне показалось, йогурт не успевал настаиваться и получался хоть и густым, но не таким вкусным. Кстати, точность DS18B20 меня приятно удивила, сверял с ртутным градусником — разница всего в 0,2-0,3 градуса. Об окончании приготовления оповещает светодиод (это же ардуино, она обязана моргать светодиодом в любом проекте, любой сложности).

Ну а теперь фотографии:

«Я его слепила из того, что было», реле с радиатором для хиленького кипятильничка это конечно сильно. Реле и без радиатора не нагревается, но чтобы не потерять радиатор — поставил реле вместе с ним.

Кипятильник, термодатчик и «миксер» чтобы температура воды была одинаковой в любой точке.

Внешний вид конечно с «Moulinex YG230 YOGURTEO» ни в какое сравнение, зато своими руками, из подручных средств, на коленке.

Жена отобрала кастрюлю, теперь йогуртница выглядит так.

На йогурт беру молоко 3,2% жирности (на 2,5% йогурт выходит жидковат). Закваску можно покупать в аптеке, например Эвиталия, но я предпочитаю Активию или Актимель, йогурт получается плотный и однородный, две чайных ложки на такую баночку вполне достаточно.



Готовый йогурт. Аж ложка стоит! Ну, почти стоит.

Вариант сервировки.

Здоровья вам и вашим близким!
P.S.: Удивите свою любимую девушку, подайте на завтрак самодельный йогурт. Как говорится – лучший подарок, это подарок, сделанный своими руками. Йогурт на подарок, конечно, не тянет, но девушка оценит вашу заботу и внимание.
@Shrim
карма
35,0
рейтинг 0,0
Python разработчик
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (53)

  • +5
    И вот, у меня появился шанс объяснить жене «зачем я покупаю весь этот хлам, если он потом всё равно без дела лежит в тумбочке»

    У меня ни как такой шанс не выпадет, благо сказал нннада, значит нннада)))
    А за +1 способ использования ардуино не совсем по назначению спасибо
    • +10
      ардуино не совсем по назначению

      совсем по назначению
      • –5
        Совсем не по назначению
        • +6
          А какое назначение у микроконтроллера широкого применения?
        • +1
          А какое у нее назначение по-вашему? Моргать светодиодом и все?? xD
  • +2
    Вытащите картинки из спойлера, а то не сразу понять в чём соль поста.
  • +2
    Только у меня от этого поста де жа вю? Пытался искать — такого же ранее опубликованного не нашел :(
    • +5
      Это не дежавю. Был подобный пост, только в нем автор модифицировал покупную йогурницу и, без обид только, сделано было аккуратнее.
      • 0
        Беда в том, что мне кажется, что я именно эти картинки видел, этот текст читал.
        • +6
          Я уже публиковал в песочницу эту статью с год назад.
          • +3
            Спасибо, избавили меня от бессонных ночей.
  • +20
    > Удивите свою любимую девушку, подайте на завтрак самодельный йогурт. Как говорится – лучший подарок, это подарок, сделанный своими руками.
    Может стоит уточнить, что вы имеете в виду именно йогурт, только йогурт, и ничего кроме йогурта?
    • +1
      Нет, не стоит. Потому что иные подарки сделанные своими руками могут быть приятней и вам, и вашей даме сердца.
    • +1
      Фу-фу-фу, хотя я наверно просто совсем испорченный человек
  • +16
    классно
    но фото с бананом у испорченных людей типа меня почему-то вызывает смутные неприличные ассоциации
    • +8
      А я там банана вообще не видел — казалось, что это миска такая специальная, с ребрышками.
      • +15
        А мне вообще ракушку напомнило )
        • +1
          Я, кстати, тоже подумал «wtf? йогурт в ракушке?».
  • +1
    Если йогурт жидковат получается (на 2.5% молоке), попробуйте немного увеличить время процесса. Но я только на сухих заквасках из аптеки пробовал.
    • +1
      Передерживать йогурт тоже не стоит, он становится очень кислым. Во всяком случае, у меня так было)

      На 2.5% хороший питьевой получается, а на на более жирном — обычный.
  • 0
    Ух ты, а я вот тоже как раз разрабатываю свою йогуртинцу, только на обычной Atmega 32 и с семисегментным индактором температуры/времени :)
    Самый главный вопрос для меня — корректный замер температуры будущего йогурта. Можете рассказать что это за трубка, в которую вы поместили DS18B20?
    Может кто-то вообще может чего-то дельного посоветовать, как правильно мерять температуру пищевой жидкости?
    • +1
      «Трубку» брал на ebay уже готовую, это DS18B20 в водонепроницаемом исполнении с полуметровым проводом, очень удобно, хоть и дороже.
      По поводу того, как правильно измерять температуру пищевой жидкости: я потому и использовал для нагрева банки йогурта воду — разница температуры воды и температуры йогурта вряд ли будет больше пол градуса, а такой точности вполне достаточно. Все йогуртницы, что есть в продаже сделаны по типу инкубатора, в них адекватно измерить температуру йогурта гораздо сложнее — баночки нагреваются снизу и температура дна банки от её верха может отличаться на несколько градусов.
    • 0
      И еще вопрос по реле. Какое реле у Вас на фото?
      • 0
        Твердотельное реле, Solid State Relay SSR-40DA, покупалось для управления большой нагрузкой, в итоге оказалось не востребовано, так и пошло на йогуртницу, где его потенциал просто излишен. Для небольшой нагрузки могу посоветовать SSR-25DA без радиатора, на ebay предложений по данной модели много, обойдётся в 3,5-4$
        P.S.: плюс твердотельного реле — оно бесшумно.
    • 0
      Вариант для тех, у кого в магазине за углом термометр продается без крутой трубки


      Это термоусадка, залитая термоклеем и равномерно прогретая ))
      • 0
        Я думал о таком варианте, но насколько безопасно помещать в пищевой продукт?
        • 0
          В 90-градусном чае отлично себя чувствовал. Совсем чучуть термоклея выпячилось и я это отрезал. Просто проблема в том что без защиты вообще опасно тем что электролиз на контактах насыщает продукт тяжелыми металлами, которые крайне неприятны и очень тяжело выводятся
          • 0
            Через некототорое время начинает проникать вода и датчик адски глючит
  • +6
    И в этом весь смысл гиков. Купить плату аппаратно вычислительную платформу, разобраться как она работает, изучить язык программирования который использует эта платформа, не придумать куда это всё добро можно применить и сделать йогуртницу! Ну, а потом написать о этом на хабр, разумеется.
    • +2
      В этом (с незначительными изменениями) смысл любой самоделки!
  • +1
    Задумывался а не переделать ли мультиварку на что то с тачскрином и возможностью запоминать свои рецепты в виде графиков — вермя/температура и сигналов если нужно помешивать.
  • +7
    В первую секунду увидел большую раковину какого-то моллюска :)
    Потом пришло чувство лёгкого замешательства — почему он в какой-то слизи?
    Потом прочёл название статьи.
    Вроде бы потихоньку всё встало на места, и даже банан увидел.

    В общем процесс был приблизительно как на этой фотографии

    image

    P.S. Если серьёзно — освещение вас подвело, для такого снимка оно никуда не годится.
    • +4
      Ну можно было бы в фотошопе зафотошопить яркость нормальную.image
      • +2
        А варенье на фотографии в статье выглядит лучше, чем у Вас :)
    • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Делали просто в термосе — получалось вполне хорошо. Хотя так интереснее.
  • –1
    Выдвигаю данный пост на номинацию самого эротишного на Хабре!
    • +16
      Жениться Вам, барин, надо!
    • 0
      Как мало вам нужно для счастья.
      • 0
        В былые времена на Хабре можно было встретить кой-че покруче банана в йогурте. А сегодня — вот, что есть.

        И судя по тому, что мне за этот каммент минуснули в карму пяток раз, ребятки на Хабре остались сугубо серьёзные, суровые, работящие, от зари до зари только на профильных сайтах только техническую литературу листают.

        Ну и рад за них! :D
  • 0
    1) Если вместо ардуино поставить покупной pid-регулятор температуры результат был бы тот-же?
    2) Если кастрюлю закрыть крышкой, то можно было бы и не перемешивать?
    • 0
      1) Как уже говорилось — йогурт не особо прихотлив в приготовлении, можно и в термосе сделать, так что да, с pid-регулятором результат был бы тот же, только в моём случае температура поддерживается в пределах одной десятой градуса, не уверен, что pid-регулятор даст такую же точность, опять же повторюсь — такая точность в йогуртнице излишняя, достаточно плюс-минус два градуса.
      2) Нет, перемешивать надо в любом случае, чтобы температура в любой точке была одинаковой, крышка же поможет сэкономить несколько ватт энергии.
  • 0
    Не замеряли расход эл. энергии? Было бы интересно узнать КПД подобной конструкции. Для сравнения могу сказать, что обычная йогуртница делает 7 банок по 150 мл за 8 часов при расходе 40 ватт/час.
    • +1
      Расход не замерял, не вижу в этом смысла. Если сделать теплоизоляцию, хотя бы фольгированным изолоном, то расход энергии будет меньше, чем у покупной йогуртницы. А производительность — в текущем варианте с контейнером (вместо кастрюли) можно за раз делать четыре литра йогурта, только куда его в таких количествах девать. А ещё данная йогуртница прекрасно масштабируется — контейнер по больше, тэн по мощнее, мешалку побольше и можно хоть сто литров йогурта готовить.
  • 0
    Для аналогичного по функционалу устройства, использовал аквариумный нагреватель.
    Для перемешивания воды уже купил погружной аквариумный насос, пока не пришел ещё.
  • +1
    Вы меня извините, а просто утюг и розетка с таймером не подойдет?
    Я понимаю, кайф не тот, но на утюге достаточно точно можно температуру подобрать…
    Жалко сам йогурт не люблю, а то попробовал бы.
    • 0
      Напомнило киножурнал-пятиминутку, который крутили в кино перед сеансом в 80х про «альтернативное использование вещей».
      Там на утюге яичницу жарили, а на проигрывателе пластинок точили ножи, положив на него точильный диск :)
      • 0
        Там на утюге яичницу жарили

        В студенческой общаге сплошь и рядом такое было.
        Утюг устанавливался в верхнюю крышку ATX блока питания, загнутую для устойчивости.
        И картофанчик тоже отлично жарился.
      • 0
        Ну если на утюг поставить прямоугольную металлическую емкость (как судок для мороженного например), и убрать его в прямоугольный корпус, то оно и выглядеть будет аккуратнее. Термометр не нужен — подбираем режим один раз и оставляем. Перемешиватель не нужен — конвекция, утюг греет снизу (почти) всю площадь судка. а в судок иже бутылочки с йогуртом.
        Главный недостаток конечно — ардуино некуда пристроить :)
  • 0
    Самое мистическое в этой конструкции – моторчик. Достаточно поместить нагреватель под банкой. Ну и при минимальной термоизоляции и наличии крышки (просто обложить пенопластом и обмотать) достаточно совсем слабого нагревателя. Лучше всего использовать трансформатор на 12 вольт, подключить один конец к кастрюле, другой – к какому-нибудь электроду, погруженному в воду, а температуру от регулировать добавлением соли в воду. Запомнить концентрацию соли в воде и дальше ее поддерживать более или менее точно.
    • 0
      Моторчик не мистика, а необходимость — без него вода возле нагревателя будет нужной температуры, а уже сантиметрах в 5 от него температура будет другая. Как вы описали в первом варианте, с слабым нагревателе и термоизоляцией — по этому пути пошли все производители йогуртниц, так как это проще и дешевле, но многие пользователи этих йогуртниц жалуются на перегрев и что вообще температура в йогуртнице зависит от температуры в помещении. Во втором описанном вами вариантом, если я не ошибаюсь, будет выделяться хлор, хоть и очень мало, но всё равно не приятно.
      • 0
        Наша цель – не выровнять температуру около нагревателя, а сделать ее равномерной вокруг банки. Конвекция сделает свое дело: если там есть хоть какая-то разница температур, она будет постоянно выравниваться за счет движения жидкости. Если сделать так, чтобы температура нагревателя не была сильно больше температуры воды, тогда градиент температур будет мизерный, особенно если закрыть все крышкой, чтобы исключить остывание за счет испарения с поверхности. Для этого достаточно подключить тот же нагреватель через трансформатор. В конце концов вы же понимаете, что греете жидкость, и внутри нее никто ничего не перемешивает. Плюс – конвекция затруднена за счет густоты. А значит – температура будет немного разной в разных ее местах.

        Да хлор будет немного выделяться. Я думаю, что если сделать хорошую термоизоляцию, то ток будет порядка сотни миллиампер, при таких токах значительного выделения газов не будет. Надо будет проветривать, зато гарантированное равномерное нагревание.

        Кстати, вот еще одно отличное решение, просто, компактно и многофункционально: www.ebay.com/bhp/usb-blanket
        • 0
          Моторчик, не то чтобы «необходимость». Но он облегчает жизнь…
          Без него получается большая инерция… Включили подогрев на 10 секунд, а температура меняется потом в течении 2х минут… Сложно поддерживать точные показатели. Получается погрешность ± 1.5 градуса.
          Сам пока собрал без моторчика (не оказалось лишнего под рукой). Позже добавлю.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.