Йогуртница на основе arduino своими руками
---
Все знают, что йогурт очень полезный продукт, да к тому же и вкусный. Под катом небольшое повествование о том, как я решил сделать йогуртницу, немного фото и скетч.
Блуждая по просторам интернета, наткнулся я на такую интересную вещь, как йогуртница. Жена у меня любит йогурт и частенько его покупает. Почитал профильный сайт, вдохновился. Вдохновила сама мысль о том, что его можно легко приготовить дома, причём он получится даже полезней, чем из магазина. После прочтения нескольких обзоров и сравнений, мы с женой решили купить «Moulinex YG230 YOGURTEO». Но вот незадача – город у нас небольшой и в продаже её мы просто не смогли найти. Хотели уже оформлять под заказ и тут меня осенило.
Что такое йогуртница? Грубо говоря – прибор для поддержания определённой температуры в течении определённого времени. Это же просто, почему бы не сделать самому? Конечно! Как раз в тумбочке уже с полгода лежит без дела arduino. Каюсь, грешен, да простят меня гуру микроконтроллеров, но я далёк от этого. Необходимости и времени изучать программирование микроконтроллеров у меня не было, поэтому, интереса ради, купил ардуинку, поморгал светодиодом, убрал в тумбочку и забыл. И вот, у меня появился шанс объяснить жене «зачем я покупаю весь этот хлам, если он потом всё равно без дела лежит в тумбочке».
Помимо ардуины нужны ещё термодатчик DS18B20 и твердотельное реле.
Сам скетч:
#include
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
currentTemperature = (float) ( (data[1]
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
Хабрахабр
Блуждая по просторам интернета, наткнулся я на такую интересную вещь, как йогуртница. Жена у меня любит йогурт и частенько его покупает. Почитал профильный сайт, вдохновился. Вдохновила сама мысль о том, что его можно легко приготовить дома, причём он получится даже полезней, чем из магазина. После прочтения нескольких обзоров и сравнений, мы с женой решили купить «Moulinex YG230 YOGURTEO». Но вот незадача – город у нас небольшой и в продаже её мы просто не смогли найти. Хотели уже оформлять под заказ и тут меня осенило.
Что такое йогуртница? Грубо говоря – прибор для поддержания определённой температуры в течении определённого времени. Это же просто, почему бы не сделать самому? Конечно! Как раз в тумбочке уже с полгода лежит без дела arduino. Каюсь, грешен, да простят меня гуру микроконтроллеров, но я далёк от этого. Необходимости и времени изучать программирование микроконтроллеров у меня не было, поэтому, интереса ради, купил ардуинку, поморгал светодиодом, убрал в тумбочку и забыл. И вот, у меня появился шанс объяснить жене «зачем я покупаю весь этот хлам, если он потом всё равно без дела лежит в тумбочке».
Помимо ардуины нужны ещё термодатчик DS18B20 и твердотельное реле.
Сам скетч:
#include
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
currentTemperature = (float) ( (data[1]
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
Хабрахабр
Источник: labuda.blog
Комментарии (0)
{related-news}
[/related-news]