Raspberry Pi発酵槽でビール仕込みに挑戦!

どうも、発酵おじさんです。

Raspberry Piでクラフトビール発酵槽を開発していましたが、ひとまず最低限の機能を作れたので満を辞してキットの仕込みを行いました。

今のところ機能として、以下のことができるようになりました。

  • 発酵水温の取得
  • Webサーバーへのデータ送信
  • Web上でリアルタイムにグラフ化(このページの下にあります)

ここまでの技術情報に興味がある方は、無料で公開していますのでこちらをご覧ください。

さて、仕込みですが実は今回が初めてなので、あまり自身はないです。美味しくできればいいなぁ。ちなみに、日本ではアルコール度数1%以上の醸造には免許が必要です。仕込みはアルコール度数1%未満になるようにキット付属の注意事項に従って麦汁の濃度を調整してくださいね。

発酵温度のリアルタイムチャート(発酵水温は22度設定にしています)

chart of results

2019.7.1 朝から発酵温度が急に上がり始め、最終的には25.5℃にまでなってしまいました。昨日から外出していたので原因はわかりませんでしたが、温度が上昇するのは、扇風機が壊れたか、水が干上がったか、のどちらかだろうと。

買ったばかりの扇風機が壊れてたら嫌だなぁと思いつつ、夜に帰宅して確認すると、水が干上がっていました。。扇風機セーフ!そして改めて「気化熱」ってすごい!!

今回は水が干上がったせいで、水温が上昇しましたがギリギリ発酵適温の範囲で収まってくれていました。トレイに水を足したので、これからまた温度が下がってくれるはずです。

連続運転の結果、冷却扇風機が壊れました。

頑張ってくれていた冷却扇風機が壊れました。

2日間でしたが、ありがとう。

扇風機の能力を増強しました。

超静音!

夏場の発酵水温テスト

2019/6/23 23:07開始
目的:夏場の水温変化を確認すること
濡れたタオルを発酵槽に巻き、水道水を満たして水温をモニタリングする。22℃以上で扇風機リレーがONするように設定した。5分に一回、温度の測定を行う。

リアルタイムチャート

chart of results

2019.06.24
昨日から冷却装置(扇風機)が悲鳴をあげていた。
今日、夜に確認するとリレーONの状態で回転が止まっていた。
さすがに400円の扇風機に連続運転はキツイか。。

2019.06.25
扇風機ついに逝去

2019.06.26
部屋の冷房をつけてどこまで冷やせるか確認

2019.06.27
冷房、扇風機OFF。自然のままでどこまで水温が上がるか確認

Raspberry Pi でクラフトビール発酵装置を作ろう!

発酵に大切なものといえば、

「発酵温度

発酵が適正範囲より高くなってしまうとオフフレーバーと呼ばれる臭みができたり、適正範囲より低くなってしまうと発酵が進まずに美味しいビールができません。

外出先から「今日暑いけど、温度大丈夫かなぁ」なんてことありますよね。たしかに、エアコンをつけっぱなしにすれば一発で解決する問題ですが、発酵が終わるまでの長期間、エアコンをつけておくのはエコじゃないし、電気代ももったいないので僕はやりたくありません。

この記事では、Raspberry Piを使って、できるだけ安く夏場も冬場も温度管理ができるクラフトビール発酵装置の作り方を説明したいと思います。このTipsは発酵装置に限らず、アクアリウムなどにも応用ができるので、そちらから来られた方もぜひ読んでいってくださいね。

今回説明する部分

Raspberry Piで水温を取得、スマホやPCからリアルタイムに確認できるようにする!

(長くなるのでキリがいいところで複数記事に分けて説明します)

必要なもの

  • Raspberry Pi
  • ADコンバーター(MCP3002)
  • サーミスタ(103-AT-11)
  • 抵抗(10 kΩ, 4.7 kΩ)
  • コンデンサ(100 μF)
  • HTTPサーバー(phpが動作するレンタルサーバー)

今回は秋月に水没できるサーミスタが売っていたので、それを使っていきたいと温度の取得にサーミスタとADコンバーターを使います。

ジャンパ線とかブレッドボードは適宜用意してくださいね!

サーミスタ

サーミスタは、温度によって電気抵抗が変わるセンサーです。
今回は秋月電子で購入しました。金額は200円でした。
通販でも購入できるので確認してみてください。

ADコンバーター

サーミスタからの信号は電圧です。
電圧はアナログ信号なので直接Raspberry Piに入れることができません。
そこでADコンバーターを使って電圧をデジタル値に変えて入力します。今回は秋月電子でMCP3002を入手して使いました。金額は180円でした。

配線図

この電圧Voutからサーミスタの抵抗値を求め、抵抗値から温度が求められます。

余談ですが、抵抗は秋月だとバラ売りがなかったので、秋葉原にあるバラ売りしてくれるお店で購入しました。一本10円。

Raspberry Piから温度取得

ラズパイ側で以下のPythonコードを作成し実行します。

実行前の注意点

  • importしたモジュールは必ず事前にインストールしてください。($ pip install モジュール名)
  • Raspberry Piの設定からSPI通信をONにしてください
  • inputdata.phpはラズパイから送られたデータをサーバー側でファイルに書き込むためのプログラムです。パスと、POSTで値を送信する際のnameは環境に合わせて書き換えてください。
  • サーミスタの各定数は、103-AT-11のものです。

実行するとサーミスタから取得された温度が画面に表示されているはずです。

また、取得したデータはHTTPサーバー側に送られています。

ADコンバーター(MCP3002)には、既存のモジュールが用意されており、たった1行で値を取得できました。私のような素人にはありがたい限りです。

#!/usr/bin/env python
#coding: utf-8
import time
import math
import requests
from datetime import datetime

from gpiozero import MCP3002 #ADコンバータ用モジュール

#サーミスタへの入力電圧
Vref=5.00000

#バランス抵抗の抵抗値(10kΩ)
bar_res=10000.0

#B定数(サーミスタの仕様書より)
b_val=3435.0

#25℃での抵抗値(サーミスタの仕様書より)
ther_rt0=10000.0

#基準温度(25℃)
t0=25.0

#HTTPサーバー上のinputdata.phpへのパス
url="http://hogehoge.com/inputdata.php"

while True:
    pot=MCP3002(channel=0) #ADコンバーターCH0から電圧の取得

    #電圧からサーミスタの抵抗値を計算
    ther_vol=pot.value*Vref
    ther_res=(Vref/ther_vol-1)*bar_res #サーミスタの抵抗
    
    #抵抗値を温度に変換し、小数点1桁で丸める
    ther_temp=round(1/(math.log(ther_res/ther_rt0)/b_val+(1/(t0+273)))-273,1)

    #日時の取得
    dtime=datetime.now().strftime("%Y/%m/%d %H:%M:%S")
    
    #カンマ区切りで日時と温度を結合し、画面に出力
    ther_data=dtime+','+str(ther_temp)
    print(ther_data)
    
    #サーバーへPOSTで受け渡し
    send_data=ther_data+'\n' #改行コードの追加
    try:
        ferm_condition={'名前': send_data} #名前はinputdata.phpと統一
        r = requests.post(url, data=ferm_condition)
    except requests.RequestException as e: #avoid error stop
        print(e)
        
    time.sleep(300) #300秒に1回実行する

HTTPサーバー側の設定

サーバー側でデータを受け取るための設定です。以下のようなファイルをサーバーに置きます。
getdata.pyから送られてくる温度データをデータファイルに書き込む動作をさせています。これで書き込まれない場合はデータファイルのファイルのパスが間違っていないかどうか、パーミッションが正しいかどうかを確認してみてください。

<?php
echo $_POST["名前"];

$a = fopen("サーバー上にあるCSVファイルのパス", "a");
 @fwrite($a, $_POST["名前"]);
 fclose($a);
?>

ここまでで、Raspberry Piで温度を取得し、サーバー上のデータファイルを更新できるようになりました。

長くなりますので、グラフ作成は次回にしたいと思います。

Raspberry Pi発酵槽でクラフトビール!

ビールって自分で作れるのかな?

唐突にビールを作ってみたいなと思い、調べていくうちに色々とビールの奥深さを知りました。

同じ酵母でも「発酵条件」で味が変わるみたいですね。

え!?

ということは、発酵条件記録をきちんと記録しておかないと、同じレシピでも同じ味を再現できないのでは?

ということで

「じゃあまずはビールより先に高性能なMy発酵槽を作ろう!!!」

と思い立ちました。

なにより、発酵の過程をリアルタイムに追っていけると、楽しみも増すはずですよね!

特に最近では「Raspberry pi」や「Arduino」など格安でモニタリングや制御ができます。これを利用しない手はない。

この企画では、Raspberry piを使って発酵槽の製作をしていきたいと思います。

コンセプトは「簡単に手に入るもので安く作れること」です。
思いつく限りで、欲しい機能も考えてみました。

  • 発酵槽内温度のオンラインモニタリング
  • 発酵槽の温度調節機能(加温・冷却)
  • 非定常な発酵槽条件制御(発酵時間と共に温度を変化させていく)
  • 発酵速度のオンラインモニタリング
  • 発酵槽外温度・湿度などのオンラインモニタリング

実現を目指して、これから少しずつ進めていく予定です。ご期待ください!

最後に、言い忘れましたが日本ではアルコール度数1%以上の醸造は法律で禁止されています。家庭で作る場合は必ずアルコール度数が1%未満になるように麦汁濃度の調整を行ってくださいね。