オーブントースターハックの楽しさと難しさ

この記事は[おうちハックAdvent Calendar 2015](http://qiita.com/advent-calendar/2015/ouch-hack)の3日目の記事です。

昨日の記事はbohemian916さんの[我が家のおうちハックの現状](http://bohemia.hatenablog.com/entry/2015/12/01/163521)でした。HueやNetatmoをIFTTTなどの仕組みでつないで、めちゃくちゃ未来感あふれるおうちを作られています。「２日間体重計に乗らないと、Facebookにその旨を投稿する」とか、ストイックで素敵です。実際に日々使われているのは素晴らしいですね。

僕は普段は[Bluetooth関連機器やロボットなどを作っています](https://www.facebook.com/takahiro.okada1)。仕事が忙しいと食事もコンビニ弁当とかが多くなり、荒んできますよね。そこで、気分転換がてら楽しい食事ができるようなおうちハックができないかと思い、オーブントースターをハックしてみました。

なお、オーブントースターのハックは火事に繋がるリスクも有りますので、ハックの際は無茶をしないようにしましょう。

## オーブントースターをハックしてみる

一般的なオーブントースターは、一定の温度や出力をキープしたまま一定時間食品を温めることができます。この機能をハックすることで、より細かく温度を制御したり、美味しいご飯が作れるのではないかと思い試してみました。

使ったのはスイッチサイエンスさんから発売されている[K型熱電対モジュール](https://www.switch-science.com/catalog/146/)と、秋月電子で販売されている[ソリッドステートリレー](http://akizukidenshi.com/catalog/g/gI-08620/)、及びarduinoです。スマホとの通信のために、Bluetooth Low Energyモジュールもつけてみました。

<img width="452" alt="photo1.png" src="https://qiita-image-store.s3.amazonaws.com/0/42108/dd450321-0999-4596-4256-94a9366ebabe.png">


## 仕組み

K型熱電対を使ってトースター内の温度を測定し、目的の温度になるようにソリッドステートリレーでトースターのON／OFFをこまめに行います。

<img width="612" alt="photo2.png" src="https://qiita-image-store.s3.amazonaws.com/0/42108/b5ba41bf-7011-50ee-d59c-7686549d7614.png">


制御に使ったarduinoのコードは[Gist](https://gist.github.com/kopanitsa/e80d50e0b10ae7d943c5)にあります。こちらはスイッチサイエンスさんのページにあるサンプルコードを改変して作成しております。

ログとしてcsvが吐き出さるので、こちらをグラフにプロットすることで実際の温度変化を確認することもできます。

## 成果物

レシピと結果をご紹介します。

### チーズトースト

- 60℃前後で1分、その後一気に160℃まで上げ2分半キープ、最後に220℃まで加熱したところでトースターをオープン

<img width="961" alt="photo3.png" src="https://qiita-image-store.s3.amazonaws.com/0/42108/20acbd00-1c3d-11cf-8140-2fa87e560ca2.png">

![photo3.png](https://qiita-image-store.s3.amazonaws.com/0/42108/bcdd6573-b053-8518-df8b-64e92409dbbb.png)


### 温泉卵
 
- 70℃まで一気に上げ、20分キープ

![egg.png](https://qiita-image-store.s3.amazonaws.com/0/42108/ebaaeaac-5155-f86b-5060-e1bd8fd22946.png)


- 40分キープするとお肉もしっとり仕上がります。

![chicken.png](https://qiita-image-store.s3.amazonaws.com/0/42108/98e05ec7-3290-7248-42f0-257590a69d27.png)


### 基板リフロー

- 簡易的な電子基板リフロー炉としても使用が可能です。フラックスの影響等がよくわからないので、僕は基板用と食品用の２つのハックトースターを作りました。
- 150℃くらいでしばらくキープしたあとで最後に250℃まで上昇させます。

![pcb.png](https://qiita-image-store.s3.amazonaws.com/0/42108/ac65e101-9e76-ce05-9a97-556d9207076c.png)



## トースターをウェブにつなげる

さらに、AWS上にdjangoを設定してデータを置き、スマホ経由でトースターにレシピをダウンロードできるようにしました。スマホ(iPhone)とトースターの間はBluetooth Low Energyを使用しています。トースターに追加で[konashi](http://konashi.ux-xu.com/)を組み込みました。いちおう、流行りのIoTっぽくなってきましたね！
スマホを経由せずにオーブントースターを直接wifiにつなげたほうがスマートかもしれません。

<img width="998" alt="ss1.png" src="https://qiita-image-store.s3.amazonaws.com/0/42108/bf7147ce-1cd6-cea8-7850-229f8c01c54a.png">



## 楽しさと難しさ

- 既存のシステムに加えてちょっとプログラムするだけで、今まで制御出来ないと思っていた家電が操作できるって楽しいですね！
- 今まで家庭で作るのが難しかったドライな環境での低温調理ができるのも面白いですね！一度温度が安定すると長時間同じ温度をキープできるので、細かい温度制御も可能になりますね。


- とはいえ、やはりトースターのような機器は制御に危険が伴います。
    - 高温になるので、火事のリスクがある。
    - 100Vの電源を使っているので、漏電等しないように気をつけないといけない。
    - 低温調理に時間がかかるので、その時間ずっとトースターにつきっきりになっていないといけない。
    - インターネットにトースターをつなげると、意図せずトースターが高温になってしまったり、トースター制御を乗っ取られるおそれがある。
- また、オーブントースターハックは、温度を制御すれば良いというものではありません。**温度を制御して美味しい調理をしなければならない**ですよね。そのためには何度も何度も実験を繰り返して美味しいパラメータを見つけるのは、本当に難しいことだと思いました。

## まとめ

- オーブントースターのような身の回りをハックするだけでも、**ウェブサービス・iOSアプリ・BLEマイコン・制御マイコン(arduino)・電子工作**など、様々な領域を触ることができて、とっても勉強になりました。
- でも、本当にこのハックを**製品レベル**にするにはかなり長い道のりがあることも学びました。ネットに繋がる家電を作っているメーカーは本当にすごいな、と再認識しました。

- 明日はn0bisukeさんのpepper関連のハックです！pepperかわいいよね！