最近、ダイエットしてるんですが、ダイエットと言えばサラダチキン!とよく聞きます。
そして、サラダチキンをめっちゃ美味しく作ろう!というのでbonicなどの低温調理器がよさそうに見え、物欲がやばいです。
といっても、おそらく2〜3回使ったら飽きるであろうことは予想がついているので、自力でなんとかしてみました。
鶏胸肉低温調理とは
おいしいサラダチキンを作るのは
- 60度のお湯に入れて2時間放置する
というだけでいいようです(参考:https://boniq.jp/recipe/?post_type=recipe&p=25449 )
。。。さて、60度ってどうやって作るのでしょう?
100度だったら沸騰させればいいし、20度ぐらいならだったら常温でいいわけですが、60度は計測しないとわかりません。
そこを自動でやってくれるのがbonic、ということなので、じゃぁ手動で試してみよう、というのが今回のはなしです。
ちなみに、ちゃんと熱が通ってないと食中毒の危険があるので、気をつけましょう。
システム
鍋の中に温度計を入れ、その温度をobnizを使って取得します。obnizのロジック部分にはenebularを使い、フローで温度を監視します。ある一定範囲の温度を超えたら、obnizに繋がれたブザーで連絡して火加減の調節を求めます。
火加減を変える部分は手動です。
センサはINKBIRDのセンサを使いました。
こちらは外部プローブがあって125度までOKなので、安心して使うことができます。
プログラム
フロートしては結構シンプルになったのではないでしょうか。
起動と同時にinjectノードを起動させます。obnizFunction内でBLEのデータを取得し、次のfunctionノードに渡しています。
await obniz.ble.scan.startWait({deviceAddress: "494208002f2e"}, {duration: null, duplicate:true,waitBothAdvertisementAndScanResponse:true});
obniz.ble.scan.onfind = async (p) => {
let buf = Buffer.from(p.scan_resp);
let temp = (buf.readInt16LE(7) / 100);
let humid = (buf.readInt16LE(9) / 100);
let rssi = p.rssi;
node.send({payload:{Name:"計測",temp, humid, rssi}})
}
そのさきのfunction node で温度フィルタをしています。
今回は60~65度の範囲をOKとしたので、それ以外のときは次のobnizノードへ連絡します
if(msg.payload.temp < 60 || 65 < msg.payload.temp ){
return msg;
}
return null;
440と書かれたobnizノードでは440Hzの音を出します(440Hzはラの音で、国際標準化機構(ISO)で定められた基準周波数です(小ネタ))
obnizParts.speaker.play(440);
await obniz.wait(1000);
obnizParts.speaker.stop();
あとは火加減を頑張ればOK!
実践
まずは鶏胸肉を買ってきます。臭みを取るのに、塩麹があると便利です。
皮を履いだ鶏胸肉と塩麹をジップロックに入れ、揉み込み、少し放置します。ジップロック安いものだと耐熱が低いものがあるので注意してください。
ジップロック内の空気を抜きます。水の中にジップロックごと入れると、水圧で空気が抜けるのでかんたんです。(小ネタ)
あとは鍋に入れて、火にかけます。
デプロイしてenebularを起動させます。
音が鳴るたびに火加減をします
・・・・ちなみに、途中でセッションタイムアウトのこと忘れてて、再起動しました・・・・
無事に90分が経過すれば完成です!
結果
サラダチキンができました。
食べてみたところ、美味しいというよりは柔らかいな、という印象でした
温度推移をグラフにしてみると、ちゃんとアラートが機能してたのがわかりますね
でも結構手間がかかったので、bonic買ったほうがいいと思います。