1747
Yoghurt based on arduino
Everyone knows that yogurt very useful product, besides, and tasty. Under the cut a small story about how I decided to make for yogurt, a little photo and sketch.
Wandering through the internet, I stumbled upon this interesting article like Yoghurt. My wife loves yogurt and often it buys. I read a profile site, inspired. Inspired the idea that it can be easily prepared at home, moreover, he will turn even more useful than the store. After reading several reviews and comparisons, my wife and I decided to buy «Moulinex YG230 YOGURTEO». But here's the thing - we have a small town and in the sale of her we just could not find. Already wanted to execute the order, and then it hit me.
What is Yoghurt? Roughly speaking - a device to maintain a certain temperature for a certain time. It's just, why not make your own? Of course! Just in the nightstand since six months is around arduino. Repent, sinner, forgive me guru microcontrollers, but I am far from that. Need time to study and programming microcontrollers I was not, therefore, for the sake of interest, bought arduinku, LED blinked, put it in the locker and forgotten. And so, I had a chance to explain to his wife, "Why did I buy all this stuff, if it then still lying around in the bedside table».
Besides the Arduino needs more sensor DS18B20 and solid state relay. Describe how to connect it all, I think it makes no sense - not just discussed Habre and profile sites.
Here is only the sketch:
& lt; code class = & quot; cpp & quot; & gt; #include & lt; OneWire.h & gt; 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); } // Preheating digitalWrite (ssrPin, HIGH); delay (10000); digitalWrite (ssrPin, LOW); delay (1000); // Stopped, for how many milliseconds the water temperature changes by one degree 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 & lt; 9; i ++) data [i] = ds.read (); currentTemperature = (float) ((data [1] & lt; & lt; 8) | data [0]) / 16.0; if (currentTemperature! = 85.00) break; } //Serial.println(currentTemperature); } Void loop (void) {if (! Active) {delay (5000); return; } If (millis () & gt; totalWorkTime) {// complete the heating and notifies LED digitalWrite (ledPin, HIGH); active = false; return; } Thermometer (); unsigned long delayTime; if (currentTemperature & gt; = cookingTemperature) {delay (1000); return; } Else if (currentTemperature & gt; cookingTemperature - 2.0) {// if the temperature is close to necessary, slow down the process of heating delayTime = millisecondsPerGradus * ((cookingTemperature - currentTemperature) /3.0); } Else {// otherwise warms one degree delayTime = millisecondsPerGradus; } DigitalWrite (ssrPin, HIGH); delay (delayTime); digitalWrite (ssrPin, LOW); delay (1000); } & Lt; / code & gt; pre>
The temperature and time were chosen experimentally, not one bank yogurt was spoiled. In the end, converged on what is necessary to prepare eight o'clock (I put on a night) at a temperature of 36 degrees. Always write that the temperature should be 38-40 degrees, but at this temperature in eight hours sour yogurt (stratified) and five hours (before the start of the bundle), it seemed to me, did not have time to infuse yogurt and gets even and dense, but not so tasty. By the way, the accuracy of the DS18B20 I was pleasantly surprised, to check with a mercury thermometer - a difference of 0, 2-0, 3 degrees. The end of cooking LED alerts (same Arduino, it owes the LED to blink in any project of any complexity).
And now photos:
"I blinded him from what was" relay with heatsink for hilenky kipyatilnichka is certainly strong. Relays and without a radiator does not heat up, but not to lose the radiator - put relay with it.
Boiler, the temperature sensor and the "mixer" that the water temperature was the same at any point.
Appearance of course with «Moulinex YG230 YOGURTEO» no comparison, but with his own hands, improvised, on the knee.
Wife selected pot, now Yoghurt looks.
On taking milk yogurt 3, 2% fat (2, 5% goes watery yogurt). Cultures can buy in a drugstore, such Evitaliya, but I prefer the asset or Actimel yogurt turns dense and homogeneous, two teaspoons on a jar is enough.
Ready yogurt. Already spoon worth it! Well, almost worth.
Option servings.
Health to you and your loved ones!
PS: Surprise your favorite girl serving breakfast to homemade yogurt. As they say - the best gift is a gift made with your own hands. Yogurt for a gift, of course, does not pull, but she will appreciate your concern and attention.
Source: habrahabr.ru/post/219033/
Selection nastolok about space and review their mechanic
Analysis of 404 pages of top-error stores Runet