Raspberry Piで室温監視 – Gnuplotグラフとメールアラート
ハイパフォーマンスコンピューティング環境では、最適な周囲温度の維持が極めて重要です。以下のガイドでは、Raspberry Pi、USB温湿度センサー、Gnuplotによる視覚分析、Gmailによる自動アラートを用いた、信頼性の高いリアルタイム温度監視システムの構築方法を説明します。
ステップ1: ハードウェアセットアップ
USB温湿度センサーをPiのUSBポートに直接接続。低消費電力センサーならPiのネイティブ5V電源で十分;高消費電力デバイスの場合は、Piへの過負荷を避けるためセルフパワー型ハブを使用。
センサーは以下のようなシリアル文字列をストリーミングします:
temperature=20.9°C humidity=62.7% dewpoint=13.0°C
Pythonスクリプトが5分ごとにこのデータを読み取り、タイムスタンプを付けて3つのローリングログに書き込み:daily.dat、24hour.dat、48hour.dat。これらのファイルがGnuplotに供給され、最新の可視化を生成します。
ステップ2: ソフトウェア – Webサーバーと依存関係
監視ダッシュボードホスト用にApacheをインストール:
sudo apt-get install apache2
必要なPythonパッケージをインストール:
sudo apt-get install python-serial python-gnuplot
ダッシュボードのHTMLファイルを/var/www/htmlに配置。ページはGnuplotが生成した最新PNG画像(daily.png、24hour.png、48hour.png)を取得します。
ステップ3: メールアラート設定
アラート専用のGmailアカウントを作成(正しいポート設定があれば任意のSMTP対応サーバーで動作)。PythonスクリプトでSMTP詳細を設定:
from_address = "[email protected]" username = "[email protected]" password = "your_email_password"
受信者を定義:
to_addresses = ["recipient1@example.com", "recipient2@example.com"]
温度が事前定義閾値を超えると、関連するGnuplot画像を添付してメール送信。受信者は即座に深刻度を視覚的に把握可能。
ステップ4: シリアルパースとデータログ
センサーの9600bps、8-N-1形式に合わせてシリアルポートを設定:
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
「temperature」キーワードを検索し数値を抽出して着信文字列をパース。タイムスタンプ付き読み取り値を3つのログファイルに格納:
from time import strftime, localtime
timestamp = strftime("%d%b%Y %H:%M:%S", localtime())
# ファイルに追記
ステップ5: Gnuplotグラフ生成
GnuplotでログファイルをPNG画像に変換。日次グラフの例:
import Gnuplot
p = Gnuplot.Gnuplot(debug=0)
p('cd "{path}"')
p('set xdata time')
p('set timefmt "%d%b%Y %H:%M:%S"')
p('set format x "%H:%M\n%d%b"')
p('set title "Daily Current Temperature Display"')
p('set key off')
p('set grid')
p('set xlabel "Time\nDate"')
p('set yrange [15:35]')
p('set ylabel "Temperature (°C)"')
p('set datafile missing "NaN"')
p('set terminal png size 800,400')
p('set output "daily.png"')
p('plot "daily.dat" using 1:($3) with lines')
適切なファイル名で24時間、48時間ビューも同様に生成。
ステップ6: ダッシュボードとアラートロジック
Apacheで提供されるHTMLページはPNG画像を毎分リフレッシュし、ライブな視覚スナップショットを提供。Pythonスクリプトは最新温度をチェックし、ユーザー定義制限を超えると最新グラフを添付してSMTPメールを送信。
このセットアップは、即時アラートと履歴データ可視化の両方を確保する、低コスト・オープンソースの継続的環境監視ソリューションを提供します。
製造プロセス
- QR・RFID・体温検知統合アクセス制御システム(Raspberry Piベース)
- 複数DS18B20 1-WireセンサーをRaspberry Pi接続で精密温度監視
- Raspberry PiとNagiosで室温を効率監視
- Raspberry Pi 2でDS18B20温度センサー読み取りガイド
- Raspberry Pi & Webダッシュボードで自宅温度・湿度監視 – リアルタイムリモート追跡
- Raspberry PiとDS18B20によるプロフェッショナルな温度監視
- Raspberry PiでMaxim 1-WireセンサーとDS2482 I2Cブリッジを用いた温度測定
- Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
- ホームエナジーセンター:Raspberry PiとMoteinoで太陽光発電、ソーラー熱、室温を監視
- EzTempでRaspberry Pi上の温度・湿度をシームレスに監視
- Raspberry Piでサーバークローゼットの温度を正確に監視