diff --git a/content/posts/smart-yogurt-maker-part-01/index.md b/content/posts/smart-yogurt-maker-part-01/index.md
new file mode 100644
index 0000000..e3e0b3f
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/index.md
@@ -0,0 +1,250 @@
+---
+title: "Smart Yogurt Maker Part 1"
+date: "2022-01-25"
+author: "William Floyd"
+featured_image: "media/IMG_20220125_113949_cleaned.jpg"
+categories: [
+ "Development",
+ "Hardware",
+ "Software"
+]
+tags: [
+ "ESPHome",
+ "Rice Cooker",
+ "Home Assistant",
+ "Smart Home",
+ "Automation",
+ "Yogurt"
+]
+---
+
+A certain [Rice](/2018/smart-rice-cooker) [Cooker](/2018/dumb-rice-cooker) has been languishing in a box for the last several years - now it is time to revisit it.
+It is a tale of Solder, Software, and Streptococcus thermophilus.
+
+***
+
+# "Last time, on Rice Cooker Adventures"
+
+This story picks up where I left off 3 years ago - the rice cooker has thermistors taped to the bottom of the pot with high temperature fiberglass tape. Specifically, I have 4 of the same thermistor in 2 parallel lines of 2 series resistors, like so.
+
+![Thermistor Diagram][thermistors]
+
+This serves to roughly average the resistances, to account for possible hotspots on the pot, while only taking a single ADC pin.
+
+However, time has not been kind to my memory, and the specific parameters of these thermistors are unknown, so first, it's time to do some testing.
+
+# Side Quest: Thermistor Calibration
+
+I have a thermocouple that I can use to verify the temperature of the pot with, so here is the setup: log the resistance through the thermistor bank at close to room temperature, rolling boil, and a middle temperature (during cooldown). These three sample points may then be used to find the parameters of the thermistor exactly.
+
+From hazy memory (and counting parts in inventory), my suspicion was that I had used a $100k\Omega$ thermistor.
+Brand is unknown, but representative datasheets online cite a $\beta$ value of 3950 - let's see how we compare.
+
+## Wait, what does $\boldsymbol{\beta}$ mean?
+
+For a more in depth read, look [here](https://www.qtisensing.com/wp-content/uploads/Beta-vs-Steinhart-Hart.pdf), but in summary early studies proposed that for NTC thermistors, the temperature $T$ could be determined given a measured resistance $R$, coefficient $\beta$ and reference resistance $R_0$ and temperature $T_0$, like so:
+
+$$
+\frac {1}{T}=\frac{1}{T_{0}}+{\frac {1}{\beta}} \ln{\frac {R}{R_{0}}}
+$$
+
+While this may work for small temperature ranges (approximately $20^\circ \text{C}$ or so), we require a larger range, and so we are instead going to look at the...
+
+## Steinhart-Hart Equation
+
+Briefly summarizing [Wikipedia](https://en.wikipedia.org/wiki/Steinhart%E2%80%93Hart_equation), the equation states:
+
+$$\frac{1}{T}=A+B\cdot\ln\{\left(R\right)}+C(\ln \left(R\right))^{3}$$
+
+Which, when using 3 sample points, results in:
+
+$$
+\begin{bmatrix}
+ 1 & \ln R_1 & \ln^3 R_1 \\\\
+ 1 & \ln R_2 & \ln^3 R_2 \\\\
+ 1 & \ln R_3 & \ln^3 R_3
+\end{bmatrix}\begin{bmatrix}
+ A \\
+ B \\
+ C
+\end{bmatrix} = \begin{bmatrix}
+ \frac{1}{T_1} \\\\
+ \frac{1}{T_2} \\\\
+ \frac{1}{T_3}
+\end{bmatrix}
+$$
+
+In my case, I found the points of reference using a setup like so:
+
+
+
+Do note that in order to reach a full boil (and $100^\circ \text{C}$ on the thermocouple), the lid of the rice cooker was attached.
+
+While I could show the calculations, and they wouldn't be difficult, I'll be honest: I used an [online calculator](https://www.thinksrs.com/downloads/programs/therm%20calc/ntccalibrator/ntccalculator.html).
+
+
+
+Using the measurements:
+
+$$
+\begin{array}{|l|l|}
+\hline \mathbf{R}(\boldsymbol{\Omega}) & \mathbf{T}\left({ }^{\circ} \mathbf{C}\right) \\\\
+\hline 81 \mathrm{k} & 33 \\\\
+\hline 21.3 \mathrm{k} & 66 \\\\
+\hline 6.4 \mathrm{k} & 100 \\\\
+\hline
+\end{array}
+$$
+
+Yielded
+
+$$
+\begin{aligned}
+A &= 1.032978070 \cdot 10^{-3}\\\\
+B &= 1.733021623 \cdot 10^{-4}\\\\
+C &= 1.902682261 \cdot 10^{-7}\\\\
+\hline
+R_{(25^\circ \text{C})} &= 117072.68 \Omega \\\\
+\beta_\text{calculated} &= 4202.76 \text{K}
+\end{aligned}
+$$
+
+As we can see then, the actual $\beta$ value is larger than predicted ($3950\text{K}$ predicted vs. $4203\text{K}$ actual), as is the reference resistance ($100\text{k}\Omega$ predicted vs. $117\text{k}\Omega$ actual).
+In fact, neither of these are even in the commonly stated "$\pm 1 \\%$" range.
+Good thing we're calibrating, hey?
+
+# "Back to our regularly scheduled programming"
+
+How to use this data then?
+Being short on time, I opted to take the easy way out, and use the wonderful [ESPHome](https://esphome.io/), as I already use Home Assistant.
+As it turns out, they already have us covered, with a [NTC Sensor component](https://esphome.io/components/sensor/ntc.html) already built in.
+This, coupled with a [resistance](https://esphome.io/components/sensor/resistance.html) and [ADC](https://esphome.io/components/sensor/adc.html) sensor allow using a voltage divider to measure the resistance of the thermistor.
+
+You know those calculations and equations we did above?
+Unnecessary, all of it.
+ESPHome supports doing Steinhart-Hart calculations itself, and only needs the three sample points.
+
+In the meantime, a Wemos D1 Mini on a breadboard is ready to go (they're cheap and chearful).
+I wire it up with a $6.8\text{k}\Omega$ resistor (what I had handy), and away I went.
+The circuit looks something like this, where the two trailing wires connect to the thermistor bank:
+
+
+
+To prevent confusion, here is my final working config, then I'll explain.
+
+```yaml
+sensor:
+ - platform: ntc
+ sensor: resistance_sensor
+ calibration:
+ - 81.0kOhm -> 33°C
+ - 21.3kOhm -> 66°C
+ - 6.4kOhm -> 100°C
+ name: Rice Cooker Temperature
+ unit_of_measurement: °C
+
+ - platform: resistance
+ id: resistance_sensor
+ sensor: source_sensor
+ configuration: DOWNSTREAM
+ resistor: 6.96kOhm
+ reference_voltage: 3.306V
+ name: Resistance Sensor
+
+ - platform: adc
+ id: source_sensor
+ pin: A0
+ name: Voltage Sensor
+ filters:
+ - multiply: 3.2
+ update_interval: 1s
+```
+
+# Calibrate all the things
+
+## Series Resistor
+Easy, measuring mine I found it to be $6.96\text{k}\Omega$, certainly different from the $6.8\text{k}\Omega$ it's meant to be.
+Throw that in the config.
+
+## Reference Voltage
+This is also easy enough, measure the $3.3\text{V}$ pin off the D1 mini.
+Mine came out to be $3.306\text{V}$, respectably close to rated!
+That goes in the config too.
+
+## Multiply Filter
+As it turns out, the D1 mini has an internal voltage divider to convert the $3.3\text{V}$ of the input voltage down to the $1\text{V}$ the ADC is rated for.
+This is nice, as it protects the ADC, but it must be accounted for.
+But there's a catch - on my board this wasn't quite right - the voltage read was still slightly wrong.
+I could try manually tuning this, but there is an easier way.
+Instead, I measured the actual voltage ($3.306\text{V}$), and compared it to the voltage being read.
+
+Say there was no error, then we would say $V_\text{actual}=V_\text{measured}$, and if there is an error of a multiple difference between the two, we can say $V_\text{actual}=m\cdot V_\text{measured}$. Thus, to find this multiplier, we say:
+
+$$
+m = \frac{V_\text{actual}}{V_\text{measured}}
+$$
+
+Using this method, I find my multiplier to be $3.2$, not $3.3$.
+
+With that, the board is finally reading the correct voltage, the correct resistance, and the correct temperature.
+
+# "You're so controlling!"
+
+Given that I have Home Assistant, automating it becomes easy.
+
+I'm currently using a [Tasmota](https://tasmota.github.io/docs/) flashed smart outlet to control the power to the heating element of the rice cooker (for reference, it pulls up to $400\text{W}$ at full load).
+In future, I would like to condense all functionality into a relay controlled directly by the ESP8266, to allow greater safety in case of network issues or even local PID tuning.
+
+I am also using a [PID controller for Home Assistant](https://github.com/soloam/ha-pid-controller).
+It seems to work fine, I am just bad at PID tuning, so results may vary depending on hardware, amount of mass in the cooker, ambient temperatures, etc.
+That being said, a simple automation to turn the heater on when the PID response goes high and turn off when not high yields acceptable results.
+
+From fiddling with the settings, I currently am using the following parameters:
+
+$$
+\begin{aligned}
+P &= 60 \\\\
+I &= 5.6 \\\\
+D &= 6.7 \\\\
+\end{aligned}
+$$
+
+Further tuning is required, but this held well overnight - mostly...
+
+
+
+I did change the set point from $105^\circ\text{F}$ to $107^\circ\text{F}$ halfway through, as well as tweaked some of the PID tuning.
+The concerning spike at 9:00 is marked by a momentary loss of connection with the ESP board - my automation failed to account for a loss of connection and so allowed the heat to continue rising.
+Thankfully, this was a short-lived event, but it is concerning nonetheless, and will require testing of my automation to prove that power loss tends towards a "safer" outcome.
+Do note that "safer" means no dead yogurt culture - the safety features of the rice cooker remain unchanged and functional.
+
+# The proof is in the... yogurt?
+
+So how did it do?
+I am notoriously _not_ picky when it comes to food, but I think it turned out great!
+Filling the rice cooker about halfway with whole milk, I heated it to $180^\circ \text{F}$ for a few minutes (I read I ought to go for longer...), cooled to about $110^\circ \text{F}$, then added a liberal few spoonfuls (think 1/5 volume of milk) of plain Dannon yogurt.
+I let it proof in the rice cooker for 7.5 hours, with the lid sealed.
+
+
+
+I put the whole rice cooker in the fridge to cool, with the lid sealed.
+Trying it later that same evening, I quite enjoyed it.
+I'll start my next batch from this one, and hopefully it'll be even better.
+
+
+
+# "Next time, on Rice Cooker Adventures"
+
+Now that I have a temperature controllable rice-cooker, and the ability to remotely start, stop, and modify set points, I may try other foods.
+For now, I need to:
+
+* solder a perfboard version of the circuit
+* add a relay to control the cooker directly
+* ensure the outlet will turn off if the ESP8266 loses connection
+* PID tune the setup for the most common scenario (steady $107^\circ \text{F}$ with the lid shut)
+
+First though, I'm gonna go eat some fresh yogurt...
+
+[thermistors]: media/circuit.svg "Thermistor Diagram]"
+
+{{< mathjax >}}
\ No newline at end of file
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG-20220125-WA0001.jpeg b/content/posts/smart-yogurt-maker-part-01/media/IMG-20220125-WA0001.jpeg
new file mode 100644
index 0000000..00cbcd6
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG-20220125-WA0001.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b16af600f8f8ee3259c70060b5893c1979ade38064aa3c09f6ce54c43e91bd77
+size 63394
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG_20220124_174144.jpg b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220124_174144.jpg
new file mode 100644
index 0000000..362ce1d
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220124_174144.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:07e23f7d7e256ad0f44f08f6f50ecab7b2c0d44426a6955f7384d0a9dfeea313
+size 110591
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG_20220124_180143.jpg b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220124_180143.jpg
new file mode 100644
index 0000000..6a49665
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220124_180143.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9077fb676a7bc4a22f75da8c85ec1337bdde031508dd9959cc8d2168dc5e3046
+size 104384
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_105918.jpg b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_105918.jpg
new file mode 100644
index 0000000..f8c740a
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_105918.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a2fecc99f7bf51d35f5efce1083c2c2756d2190273858230459cb261fd6e294c
+size 100508
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_105924.jpg b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_105924.jpg
new file mode 100644
index 0000000..54f569a
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_105924.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:624a92c72c8f42fbd464cefe0d3d10a91175e3c9764a75a4059712c9cad7db04
+size 58150
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_113949.jpg b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_113949.jpg
new file mode 100644
index 0000000..0ab5a04
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_113949.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b628f16a3faef2d36121191b0c91e6d422a10d214d906df888b8a00d81ff4f90
+size 33189
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_113949_cleaned.jpg b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_113949_cleaned.jpg
new file mode 100644
index 0000000..2ea288f
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_113949_cleaned.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8dbba87e3607187083257ada00c466c13ffb253f65be0f32dc5c49be29e523d
+size 46840
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_114006.jpg b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_114006.jpg
new file mode 100644
index 0000000..ac3d9ca
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_114006.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ffabd7969dc2f0a85aa7f2798d2b7431ab34e2e05c1676a9dcd6311c53764d0d
+size 44376
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_114006_cleaned.jpg b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_114006_cleaned.jpg
new file mode 100644
index 0000000..df62f42
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_114006_cleaned.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7f7b02ecbab4e94167f4d7011954a677581cb166d5f402fb6f0c3ac024c960e7
+size 60728
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_175809.jpg b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_175809.jpg
new file mode 100644
index 0000000..3483b46
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_175809.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c067561633f76774b5f24a76d73905030332c3e5925f67b235f6de2f54381d19
+size 69297
diff --git a/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_180035.jpg b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_180035.jpg
new file mode 100644
index 0000000..2835976
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/IMG_20220125_180035.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e7659e569335479d9546dc4ac7956781d3a4d391a6bceb3acbdb702a10d2b182
+size 63765
diff --git a/content/posts/smart-yogurt-maker-part-01/media/calc.png b/content/posts/smart-yogurt-maker-part-01/media/calc.png
new file mode 100644
index 0000000..20bab9d
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/calc.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2d036c858fda239d081ddb59370ad49f41f0c7e08f8f85df43e3b9888d8af285
+size 65374
diff --git a/content/posts/smart-yogurt-maker-part-01/media/circuit.svg b/content/posts/smart-yogurt-maker-part-01/media/circuit.svg
new file mode 100644
index 0000000..554b0cb
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/circuit.svg
@@ -0,0 +1,98 @@
+
+
+
+
diff --git a/content/posts/smart-yogurt-maker-part-01/media/log.png b/content/posts/smart-yogurt-maker-part-01/media/log.png
new file mode 100644
index 0000000..5f65922
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/log.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:595fc4b6963f1926e4cc3d11aa22d49fa40414c0f2deccc23310e3ea2dfe6e01
+size 30075
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/.env b/content/posts/smart-yogurt-maker-part-01/media/src/.env
new file mode 100644
index 0000000..e69de29
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG-20220125-WA0001.jpeg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG-20220125-WA0001.jpeg
new file mode 100644
index 0000000..0739aa4
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG-20220125-WA0001.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e82571ae1460142dea8d6c2064164adeec31ec28b6e878712cda379334267798
+size 1119651
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG-20220125-WA0001.jpeg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG-20220125-WA0001.jpeg.hash
new file mode 100644
index 0000000..3c195b2
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG-20220125-WA0001.jpeg.hash
@@ -0,0 +1 @@
+350414652e48b1502c92d53cae3f8a8a
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_174144.jpg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_174144.jpg
new file mode 100644
index 0000000..b5e0ed4
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_174144.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0c5a112c6e5ad89f413021b01f349551f6bc9282931f23fe047bca73d772fc9f
+size 3749053
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_174144.jpg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_174144.jpg.hash
new file mode 100644
index 0000000..eddd578
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_174144.jpg.hash
@@ -0,0 +1 @@
+3ffd8f056e06cb258bfc412cda49c453
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_180143.jpg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_180143.jpg
new file mode 100644
index 0000000..2a548e3
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_180143.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:80a6ac438cf22b5d3ac0e8c3fa4b12b099de4fbc93db55ce112b020cb52bde9c
+size 3921991
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_180143.jpg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_180143.jpg.hash
new file mode 100644
index 0000000..27e2e66
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220124_180143.jpg.hash
@@ -0,0 +1 @@
+73535fefabedc24d7a9628a9832edc84
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105918.jpg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105918.jpg
new file mode 100644
index 0000000..9e497cc
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105918.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6792d78f1cac303e631dd138745b065f69fe4b12f3495528b3cc720005de1afb
+size 3622409
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105918.jpg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105918.jpg.hash
new file mode 100644
index 0000000..59c0e01
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105918.jpg.hash
@@ -0,0 +1 @@
+d971cb31c8c70b313ef7777c2e18f180
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105924.jpg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105924.jpg
new file mode 100644
index 0000000..225a251
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105924.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4751f8b7ef4080a6cc3715ecacfa815bc8de2cb562942435e11d3ef0f8324d4a
+size 3127791
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105924.jpg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105924.jpg.hash
new file mode 100644
index 0000000..9589240
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_105924.jpg.hash
@@ -0,0 +1 @@
+c01a86e33e628effde4cb073b2d4e788
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949.jpg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949.jpg
new file mode 100644
index 0000000..1e48867
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d0c64301ab3b3610c612d68c385c5a75ea58a7894c980095de7e69c5b35a2874
+size 1330323
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949.jpg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949.jpg.hash
new file mode 100644
index 0000000..e8cf551
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949.jpg.hash
@@ -0,0 +1 @@
+586e44b3168e8350d97d49a524187ee1
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949_cleaned.jpg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949_cleaned.jpg
new file mode 100644
index 0000000..97af040
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949_cleaned.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cbc4f4d817846a118c0ca71e41620ec74beb57ef5dec07e81358d22223b1e274
+size 492688
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949_cleaned.jpg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949_cleaned.jpg.hash
new file mode 100644
index 0000000..c0a9f13
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949_cleaned.jpg.hash
@@ -0,0 +1 @@
+871f28fb15205ad180e9050e8d56feb1
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949_cleaned.xcf b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949_cleaned.xcf
new file mode 100644
index 0000000..e114da9
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_113949_cleaned.xcf
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:518e76e58765a5675c00b80d895b46c6ba381f36e13de094eede426fc1c0a0e9
+size 44138820
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006.jpg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006.jpg
new file mode 100644
index 0000000..637582d
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:98e5e57a2025f5e123d1ff3f1bd2136d08ed9c7bbc466c0be7ca81b9224b74fd
+size 1580217
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006.jpg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006.jpg.hash
new file mode 100644
index 0000000..1b08f34
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006.jpg.hash
@@ -0,0 +1 @@
+9f353e96551de67df144c31d8fae0edf
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006_cleaned.jpg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006_cleaned.jpg
new file mode 100644
index 0000000..644c92b
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006_cleaned.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:30223d076de7e2d3618de0bba2a9f048b3b53ac71a6b8002c6c58af30928d008
+size 820400
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006_cleaned.jpg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006_cleaned.jpg.hash
new file mode 100644
index 0000000..80804d3
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006_cleaned.jpg.hash
@@ -0,0 +1 @@
+29f2466883105eb032f60bb9fdfbf077
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006_cleaned.xcf b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006_cleaned.xcf
new file mode 100644
index 0000000..b92a658
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_114006_cleaned.xcf
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:12e6a34d2cc7667896eddbed3bb6b8f0b72f196436100ab230a2b9b444d94a94
+size 73969362
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_175809.jpg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_175809.jpg
new file mode 100644
index 0000000..ce33cd7
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_175809.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:93245771707ccd9fc1401378b9e54cdf32398d3af00604f264c7e1285d6235b3
+size 2684471
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_175809.jpg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_175809.jpg.hash
new file mode 100644
index 0000000..b0d3fe7
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_175809.jpg.hash
@@ -0,0 +1 @@
+9ec9803782dbd1372555907b9e596198
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_180035.jpg b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_180035.jpg
new file mode 100644
index 0000000..34f30c8
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_180035.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eafba2a26dfa2583c64c83a19d0dc41065c27cfa0948da30198f1a971ae9ded8
+size 2462354
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_180035.jpg.hash b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_180035.jpg.hash
new file mode 100644
index 0000000..efde55a
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/IMG_20220125_180035.jpg.hash
@@ -0,0 +1 @@
+a617dc66c55fe5979218f3fe7df43599
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/calc.png b/content/posts/smart-yogurt-maker-part-01/media/src/calc.png
new file mode 100644
index 0000000..9e72b28
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/calc.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:85235ab14c3e374e9899a630034caa4e0da008b0080e457fe4cf37e276beace7
+size 109203
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/calc.png.hash b/content/posts/smart-yogurt-maker-part-01/media/src/calc.png.hash
new file mode 100644
index 0000000..e21330f
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/calc.png.hash
@@ -0,0 +1 @@
+944f12a1110fa607994bb5b84e64dbbd
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/log.png b/content/posts/smart-yogurt-maker-part-01/media/src/log.png
new file mode 100644
index 0000000..df86173
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/log.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:625fc61f999b4421473663672f819e20b9212f556fc8439efd3f852c29ab2292
+size 46079
diff --git a/content/posts/smart-yogurt-maker-part-01/media/src/log.png.hash b/content/posts/smart-yogurt-maker-part-01/media/src/log.png.hash
new file mode 100644
index 0000000..4d41ea0
--- /dev/null
+++ b/content/posts/smart-yogurt-maker-part-01/media/src/log.png.hash
@@ -0,0 +1 @@
+ed3ce82d285ceb1c021ff0d6f01ada81
diff --git a/layouts/shortcodes/mathjax.html b/layouts/shortcodes/mathjax.html
new file mode 100644
index 0000000..82c1e6e
--- /dev/null
+++ b/layouts/shortcodes/mathjax.html
@@ -0,0 +1,28 @@
+
\ No newline at end of file