K型熱電対と1-Wire通信を用いた温度計測システムの実装
概要
本実装は、MAX31850K熱電対デジタル変換モジュールとK型熱電対を使用した温度計測システムです。Raspberry PiのGPIO5を使用し、1-Wire通信プロトコルで温度データを取得します。
システム構成
ハードウェア
- Raspberry Pi4 4GB
- MAX31850K熱電対アンプモジュール(Grove
- K型熱電対(Amazonより
- プルアップ抵抗 4.7kΩ (今回は未使用。今後温度安定性など事情で必要?)
配線などは飛ばします。。
主な機能
継続的な温度モニタリング
自動的なGPIOプルアップ設定
エラーハンドリングと再試行機能
詳細なログ記録
安全な終了処理
# 1-Wireドライバの有効化
sudo modprobe w1-gpio
sudo modprobe w1-therm
コード仕様
主要なクラス構成
- ThermocoupleMonitor クラス
温度センサーの制御と監視を行う中核クラス
GPIOの初期化と設定
センサーの検出と初期化
継続的な温度データの取得
CSVファイルへのデータ記録
エラー処理とログ記録
- TemperatureGUI クラス
リアルタイムデータ可視化を担当するクラス
Matplotlibを使用したグラフ表示
10分間の温度推移表示
最新温度の大きな数字表示
グラフのスクリーンショット保存機能
- カスタム例外クラス
NoSensorFoundError: センサー未検出時の例外
SensorNotReadyError: センサー準備失敗時の例外
主な機能
リアルタイム温度モニタリング(1秒間隔)
データのCSV保存(日時、温度)
ログローテーション機能付きのログ記録
グラフィカルなリアルタイム表示
エラー時の自動リトライ機能
システム要件の自動チェック
使用技術
Python 3.x
Raspberry Pi GPIO
1-Wire通信プロトコル
マルチスレッディング
Matplotlib(グラフ描画)
CSV/ログファイル処理
動作環境
Raspberry Pi
Python 3.x
必要なPythonパッケージ: matplotlib, logging
特徴的な点として、このシステムは産業用途でも使用できる堅牢性を備えており、以下の機能を実装しています:
エラー時の自動リカバリー
詳細なログ記録
データの永続化
リアルタイムモニタリング
結果画像
所感
今回も生成AIを用いて、作成/完成させた。
最初は、I2C ? 1-wire?と不明なことが多々あったが
最終的にpythonのスクリプトで構成できた。
今後も生成AIを用いた開発に鋭意取り組んでいく。