K熱電対のモジュールが届いたので、ユニバーサル基板にピンソケットをつけて配線したらとりあえずあっさりと1チャンネル分の熱電対ロガーが出来てしまったので、まとめておく。
参考にしたサイトは以下のサイトですが、フランス語なのでgoogle翻訳のお世話になった。
http://chezdjibb.wordpress.com/2013/03/02/raspberrypi-et-thermocouple/
K熱電対のモジュールは千石電商から購入し、ソケット終端の熱電対がセットになっています。
IC(MAX31855)部分は予め半田付けしてあるので、ピンヘッダ部と熱電対のソケットをハンダで固定するだけです。
モジュールとraspberry piとの配線は以下の通り
- VCC → 3V3 Power (隣の5Vはだめです。多分MAX31855が壊れます)
- GND → Ground
- SS → GPIO 8(CE0) あるいは GPIO 7(CE1)どちらでも可(のはず)
- MISO → GPIO 9 (MISO)
- SCK → GPIO 11(SCKL)
とりあえず繋いでみた写真がこんな感じ
ここからはソフトウェアの設定
- GPIOを制御するライブラリのダウンロードとインストール
https://github.com/quick2wire/quick2wire-python-api
quick2wire-python-api-master.zipを適当なフォルダに保存したら
unzip quick2wire-python-api-master.zip
cd quick2wire-python-api-master
もしここでpyhton3がインストールされていなければ sudo apt-get install python3-setuptoolsを実行
sudo python3 setup.py install
- Bitstringのダウンロードとインストール
https://code.google.com/p/python-bitstring/downloads/list
unzipで解凍したら先ほどと同じく解凍したフォルダに移動して
sudo python3 setup.py install
- GPIOポートの設定
/etc/modprobe.d/raspi-blacklist.confの全ての行をコメントアウト(行頭に#をつけて保存)
rebootで再起動
- MAX31855ドライバのダウンロードと編集
https://github.com/Tuckie/max31855/blob/master/
ZIPを解凍してmax31855.pyを編集
134行目 thermocouple = MAX31855(1, “f”) ここで括弧の中の1はCE1を示すので、CE1に接続したなら1のまま、CE0に接続の場合は0に書き換え、”f”は華氏、”c”に書き換えで摂氏に変更
- とりあえず実行してみる
python max31855.py で実行すると以下の通り温度が1秒おきにスクロール表示される
2つ値が表示されるが、tcが熱電対先端の温度で、rjがモジュールICに内蔵の冷接点補償回路のセンサー温度なので、常に冷接点補償された温度を記録できている。素晴らしい。
あとはもう1チャンネル繋いで、2チャンネル分収集出来るか確認が出来れば示差熱分析に使えそう!
ただ14ビットで最少0.25C刻みなので、ちょっと不安ではありますが・・・、まあ学生実験であれば許されるだろう;
というか-200℃~1800℃を14ビットで分解しているのはどう見てもおかしいでしょう。K熱電対はそんな高温まで耐えられないんだから1100℃上限のスケールにしてもらえればもう少し分解能は改善すると思うんですが。不思議です。
MAX31855はR熱電対用もあるみたいです。ただ1000個ロットでないと安く購入するのは難しいようなので、
どなたかR熱電対用も同じ価格でモジュールを販売していただけると助かります。
このコストパフォーマンスには驚かされます。Raspberry piが2950円(typeAに至っては2150円)、熱電対モジュールが1個2730円。モニタはターミナルあるいはVNC経由にしてしまえば通常は必要ないので、この時点で6000円ほどでLAN対応温度ロガーができてしまいます。電気炉のモニタにも使えるでしょうし、この面白さ、学生にもぜひ理解して欲しいところです。