珈琲の自家焙煎にハマっています
過去に少し興味があって焙煎機を見てしまったがために、各種SNSには焙煎機の広告が出るようになってしまいました。
ただ、広告で表示される焙煎機はどれも高価(2万〜)で、ちょっと試してみたいくらいではちょっと気が引けます。
Youtubeでふと流れてきたのが、手鍋で出来る焙煎の動画。これだと初期投資が500円から(鍋だけなら)初められます。
鍋以外に必要な道具(コンロなど)は揃っていたので、早速鍋を手に入れて試してみました。
やってみるとこれが意外とおいしいんですよね。
となるとちょっと追求してみたくなるのがエンジニア。
説明しないこと
以下については他にも記事がたくさんあるので今回は省略します。
- ArduinoIDEの使い方
- MAX31856との接続方法
- artisanのインストール方法
温度測定
先のYoutubeを見てると当然他にもどんどん似たような動画が出てきます。すると焙煎時の温度測定を行って、再現性を高めるようなことをやってる人がいるじゃないですか。
温度ロガーというのがあって、鍋の温度を測定する熱電対とPCの間に入る機械が必要でした。この温度ロガーが8000円くらいします。温度測定だけに8000円はちょっと高いです。
※安いのだと3000円くらいのがあるようですが、安くて逆に怖い
非接触で測定できる機械もありますが、これだとある特定のタイミングしか測定できないので今回は見送ります。
「artisan」というフリーソフトを使うと測定温度をグラフ化してくれるようです。
自作
少し調べてみると、Arduinoとartisanを連携して実現している人が居ました。
ArduinoでいけるならESP32が乗ってるやつでもいけるだろうと手元にあった「M5Stamp C3U」を使って自作することにしました。
購入当時は1000円しなかったのですが、今見ると1300円ちょっとしますね。
※2025/12/14現在
M5Stampが必須というわけではありません。Arduinoでも実現できます。
パーツ調達
他に必要となるのは、以下のパーツ
- 温度測定するための「Kタイプ熱電対」
- 測定した温度をデジタル信号に変換する「ADコンバーター」
- 回路を組むための「ブレッドボード」
Kタイプ熱電対
これは、いくつかタイプがあって今回は「Kタイプ」を利用します。また以下を考慮する必要があります。
- 必要なプローブの長さ
鍋の直径に合わせて選択、今回は16cmの鍋なので半分より少し長い100mmを選択 - 計測可能な温度の範囲
焙煎豆の温度は高くて230度くらいなので300度くらいまで計測できればOK - 取り付けるための穴に合う太さ
手鍋に8mmの穴を空けて通すのでM8を選択 - ケーブルの長さ
鍋からADコンバーターまでの距離をどれくらい取るかで1mを選択
これに合う商品をAmazonやAliExpressで探すと、AliExpressで送料込み400円程度で売られているのを見つけました。
※今のところ問題なく動いてます
ADコンバーター
これはMAX3155というチップを積んでるものを探します。MAX3156というのもあって、こちらの方が精度が良いみたいです。となると、MAX3156が欲しくなります。
これもAmazonとAliExpressで探すと、AliExpressで送料込み1200円程度で売られているのを見つけました。
ADコンバーターは熱電対を接続する端子が1個のものと複数のものがあります。今回は豆温度だけ測定できれば良いので1個のものを選んでいます。もし複数箇所で測定したい場合は複数のものを選択して下さい。
ブレッドボード
これは、昔Arduinoの開発キットに付いてきてたのを使います。買うとなるとAmazonなどでブレッドボード小として売ってるのを買えば良いです。
ただし、使うマイコンのサイズによっては小さいかもしれないので手持ちのマイコンに合わせて購入して下さい。
作ってみましょう
ゴール
今回のゴールは熱電対で測定した温度がartisanに反映されるところまでとします。
以下の手順でデバッグしながら開発を進めます。
- マイコンとartisanの連携ができること
- 熱電対で測定した温度がPCで見られること
- 熱電対で測定した温度がartisanで表示されること
1.マイコン → PC → artisan
マイコンからartisanにデータが送れるかどうかを確認します。
マイコンから擬似的に固定温度を出力しartisanに表示するプログラムを作成します。
サンプルコード
artisanとシリアル接続を行うので、シリアル通信の設定と固定温度を送信するだけのプログラムです。
このプログラムをコンパイルしてマイコンに書き込んで下さい。
/**
* artisanとシリアル接続して固定温度を送るサンプル
*/
void setup() {
// artisanとシリアル通信を行うので通信速度決めて初期化します
Serial.begin(9600);
}
void loop() {
// 50度を0.5秒毎に送る設定
Serial.println(50);
delay(500);
}
artisanの設定
マイコンとシリアル接続するので「メニュー > 構成 > デバイス」からメーターに「Behmor BT/CT」を選択します。
OKを押すと2枚目のシリアルポート構成の設定が表示されます。
※表示されない場合は「メニュー > 構成 > シリアルポート」から開けます。
ポートはマイコンが接続されているポートを選択して下さい。
通信速度にはサンプルコードで指定した Serial.begin(9600) の値を指定します。
※今回の場合だと9600を指定します。
他の値はデフォルトのままでOKです。
artisanで表示確認
ここまでの設定が完了すればartisan側で温度が見えるようになります。
新規で焙煎記録を開きます。右上にある「ON」をクリックします。
右側にプログラムで指定した温度が表示されていれば成功です。
今回の場合だと50度を指定していたので50と表示されているのが分かります。
このまま「START」を押します。
時間変化に伴ってグラフが描画されていくのが分かるかと思います。
今回は固定なので横一直線になります。
artisan側の温度単位が「摂氏(C)モード」になっていることを確認してください。
「構成 > 温度単位」で確認できます。
2.熱電対 → ADコンバーター → マイコン → PC
温度が測定できるかどうかを確認します。
これは、単なるArduinoIDEのシリアルモニタに出力するところをゴールとします。
サンプルコード
センサーモジュールにはMAX31856を利用するので、そのためのライブラリをincludeしています。
ライブラリ初期化時にマイコンとMAX31856を接続しているピンの指定が必要です。
今回接続しているピンの値をそれぞれdefineで定義しています。
/**
* 熱電対センサーから読み取った値をシリアルモニタに表示するサンプル
*/
#include <Adafruit_MAX31856.h>
#define TEMP_CS 3
#define TEMP_OSI 4
#define TEMP_ISO 5
#define TEMP_SCK 6
// ライブラリの初期化
Adafruit_MAX31856 maxthermo = Adafruit_MAX31856(TEMP_CS, TEMP_OSI, TEMP_ISO, TEMP_SCK);
void setup() {
// シリアルモニタに出力するための設定
Serial.begin(9600);
// 温度測定開始
maxthermo.begin();
}
void loop() {
// 0.5秒間隔で読み取った温度をシリアルモニタに出力する
float tempC = maxthermo.readThermocoupleTemperature();
Serial.println(tempC);
delay(500);
}
シリアルモニタ
ArduinoIDEのシリアルモニタを確認します。
それっぽい温度が表示されているのが分かります。

3.熱電対 → ADコンバーター → マイコン → PC → artisan
ここまでくれば、全てを繋げてartisanに温度変化が現れることを確認します。
手順2で測定温度を Serial.println しているのでプログラムはそのままで artisan を立ち上げれば温度変化が測定できます。
ArduinoIDE側のシリアルモニタを開いているとartisan側で読み取れなくなるため、シリアルモニタは閉じておいてください。
出力結果
熱電対を手で握るなどすると、温度の変化がわかるかと思います。
完成
材料費は約3000円ほどで自家焙煎温度ロガーが作れました。
コードも20行ほどです。
今回は手元にESP32のチップが載ったマイコンがあったのでそれを利用しましたが、一般的なArduinoボードでも代用可能です。
実施の焙煎ではこんな感じにグラフ化できます。
実際に使っている鍋
ボードが水に濡れないように気をつけてください。
焙煎は日々試行錯誤です。温度変化を可視化することで再現性の向上や気付きが得られるかもしれません。
少しでも皆さんのお役に立てれば幸いです。
良き焙煎ライフを!







