Йогуртниця на основі arduino своїми руками

Йогуртниця на основі arduino своїми руками


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

Блукаючи по просторах інтернету, натрапив я на таку цікаву річ, як йогуртниця. Дружина у мене любить йогурт і частенько його купує. Почитав профільний сайт, надихнувся. Надихнула сама думка про те, що його можна легко приготувати вдома, причому він вийде навіть корисніше, ніж з магазину. Після прочитання кількох оглядів і порівнянь, ми з дружиною вирішили купити «Moulinex YG230 YOGURTEO». Але ось невдача - місто у нас невеликий і в продажу її ми просто не змогли знайти. Хотіли вже оформляти під замовлення і тут мене осінило.
Що таке йогуртниця? Грубо кажучи - прилад для підтримки певної температури протягом певного часу. Це ж просто, чому б не зробити самому? Звичайно! Якраз в тумбочці вже з півроку лежить без діла arduino. Каюсь, грішний, хай вибачать мене гуру мікроконтролерів, але я далекий від цього. Необхідності і часу вивчати програмування мікроконтролерів у мене не було, тому, інтересу заради, купив ардуінку, покліпав світлодіодом, прибрав в тумбочку і забув. І ось, у мене з'явився шанс пояснити дружині «навіщо я купую весь цей мотлох, якщо він потім все одно без діла лежить в тумбочці».
Крім Ардуіно потрібні ще термодатчик DS18B20 і твердотельное реле.

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. Здивуйте свою кохану дівчину, подайте на сніданок саморобний йогурт. Як то кажуть - кращий подарунок, це подарунок, зроблений своїми руками. Йогурт на подарунок, звичайно, не тягне, але дівчина оцінить вашу турботу і увагу.

Робіть саморобки своїми руками як ми, робіть краще нас!