ラズベリーパイと電気ケトルで鶏ハムを作る

少し前に、鶏胸肉を低温調理して鶏ハムにするのが流行りましたよね

鶏胸肉を60℃程度のお湯に1時間ほどさらすことで、しっとりとした鶏ハムができるというものです

簡単な方法ではジップロックに入れた味付け胸肉を沸騰した鍋に投入して、火を止めて1時間放置というものがあります

前の仕事でラズパイを使って温度制御をするプログラムを作ったので、試運転も兼ねて鶏ハムを作ってみました

食材側の準備

鶏胸肉・・・300g程度

ジップロック・・・Mサイズ1枚

塩・・・まんべんなく振りかける

黒胡椒・・・まんべんなく振りかける

バジル・・・まんべんなくry

浸すタレ(どこのサイトか忘れたけどレシピを残してたのでそれを使います)

オリーブオイル・・・大さじ1杯

はちみつ・・・小さじ1杯

みりん・・・小さじ1杯

白だし・・・大さじ1杯

水・・・50ml

まず、チャチャっとタレ?を制作

結構少ないですけど、ジップロックに入れれば肉は十分に浸ります。

次に胸肉を取り出し、温度計用の穴を開けます(オイ)

どうせなので湯温と内部温度の両方の推移を計測してみようと思いました

鶏肉に切れ込みを入れて、塩・黒胡椒・バジルをまんべんなく振りかけます

ちなみに料理初心者なので、どんな味になるか想像できません

食欲より好奇心!

最後にジップロックに入れて、タレを流し込み、温度計を指して準備完了

温度計があるため、真空には出来ません

電気ケトルにはこんな感じで入れます

ティファールの電気ケトルです

フィルターのところで温度計を固定できるから実験しやすいですね

あと電源がOFFになってもスイッチが切れないことが大事

ラズパイ側の準備

あらかじめ環境は整えてます

材料

ラズベリーパイ・・・1台

簡易モニター(とHDMIケーブル)・・・1台

マウス・・・1個

キーボード・・・1個

ブレッドボード・・・1~2個

ジャンパワイヤー・・・少々

温度計(DS18B20・防水加工品)・・・2本

ソリッドステートリレー20A用(SSR)・・・1個

100V用ケーブル・・・少々

100Vメスアダプタ・・・1個

ざっとこんな感じです。(食材っぽく書いてみました)

仕組みは凄く単純で、ラズパイ側のPythonプログラムで温度計の温度を拾ってきて、GPIO経由でリレーをON・OFFしてケトルの加熱制御をするといった感じです

仕事では使用する熱源が不安定ということで、PID制御を用いずにリアルタイムに加熱力を計算してN秒後の温度予測をしながら設定温度に近づけていくというプログラムを書いてます

全体像

100V側にVVFケーブルを使ってますが、細い100V用のケーブルで十分です。(固くて配置が面倒)

タコ足接続とかしないのであればヒューズ等も不要です。

こちらがソリッドステートリレー

ラズパイの3.3V GPIOから100Vの配線のON・OFFをする部品です

これが無いと始まらないですね

安全のためプラケースに入れてます

こちらがラズパイとブレッドボード

実験で使った余計なチップが乗ってますが、これらは使ってません

ラズパイからは、電源とGNDの2本・SSR操作用の1本・温度受信用の1本の計4本が出ているだけです

DS18B20は並列接続で複数の温度を同時に取得することができます(1Wire通信)

DS18B20の設定や温度取得プログラムなどは詳しく説明しているサイトがあるのでそちらを参考にしてください

温度制御

準備ができたら、温度制御プログラムを起動して工程温度設定のCSVを読み込ませます

設定CSVはN秒後の設定温度を記述するようになってます

8分掛けて65℃にして、その温度のまま2時間維持という工程にしました

ファイルを読み込むと5秒刻みのSVデータとして展開されます。

こちらが初期設定画面

PID係数を設定しない代わりに、加熱してから温度変化が現れるまでの遅延秒数を設定します(一番重要なパラメータ)

加熱は出力サイクル10秒を出力%で切り分ける感じです。(出力0.6なら6秒加熱・4秒停止を繰り返す)

スタート直後に初期出力で一定時間加熱し続けて加熱力を計算するので、そのための初期出力パラメータを設定します(ケトルは一気に温度が上がるため、0.05(5%)と低く設定してあります)

最低限の出力時間という項目もあります。
こちらは出力時間が1秒に満たない場合、累積出力時間が1秒を超えたときにまとめて出力するといった機能。
バルブの開閉によって加熱制御する場合などに使います。


スタートボタンを押すと温調開始です

全体像はこんな感じ(仕事で作ったものなのでマズかったら消すかも)

GUIにはTkinterを使ってます

Tkinterは変数とUIの同期がとても面倒なので、UI作成時に変数の種類と変数名を登録することでeval関数を使って自動で同期するフレームワークを作りました
配列変数によって簡単に項目を増やせます(ちょっとボタンが目障りかも)

温度を見ると、水温が29.56℃、胸肉内部の温度は19.06℃ですね(まだ冷えてる)

工程が始まると設定した5%の初期出力で60秒ほど加熱して過去30秒の温度上昇と出力から加熱能力を計算します
(本当は環境による冷却を考慮する必要があるので、実測による大体の加熱力です)

加熱力が定まると、SV値に近づけようと一気に加熱が始まります

ここは何度も試行錯誤した部分です

SV値にピッタリ合わせようとすると、温度計測の遅延があるためSV値を突き抜けてしまいます。そして今度は出力0になって温度が下がりすぎて・・・といった感じで大きな波を描いてしまいます。

SV値との傾斜を合わせるのを主軸にして、N秒後の温度差予測から出力に+αするという手法を取ることで安定させることが出来ました。(急激な応答には弱いですが)

SVの傾斜が横ばいになるとPVも出力が一気に下がります

あとは温度差補正によってジワジワと寄せていきます

経過18分ですが、胸肉内部の温度は30℃と全然上がりませんね

熱の伝わる速度は温度差に比例するということなので、鶏肉内部を60℃にするなら65℃は必要と考えましたが、実際どういう推移になるのかは分かりません

40分後のグラフ

だいぶ安定して温度維持が出来ています

設定温度が横ばいのときは加熱力の計算をせずに、温度維持出力というパラメータを使っています

(温度が高いほど外気温による冷却の影響が大きくなり、傾斜が緩やかなほど加熱に対する冷却の比が大きくなるため、加熱力の計算が狂ってしまう)

40分経過時、鶏肉内部の温度は50℃。温度上昇速度も落ちてきてます


約2時間後のグラフ(終了前)

ちょうど1時間で鶏肉の温度が60℃に達してますね

1時間30分ほどで65℃に達してます

衛生面では65℃1分程度で菌が死滅するらしいので加熱のし過ぎだったかも

1時間経過したら60℃に下げる設定にしても良さそうですね

実食

工程終了後、ケトルから鶏肉を引き上げて断面を見てみました

赤みは残っておらず、完全に熱が通っています

食感は柔らかいサラダチキンといった感じ

もう少し設定温度を下げるか、1時間20分程度で引き上げても良さそうですね

スライスせずにかじったら真っ赤な血管が出てきたあの時に比べれば大分マシな結果です(トラウマ)

トマトを添えて頂きます

うーん、美味い!

次は温泉卵でも作ってみようかな

fin

おすすめ

1件の返信

  1. 2022年9月9日

    […] 前回の鶏ハムに続き、今回は温泉卵を作ってみました […]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です