セントラルヒーティングボイラーの監視
ハードウェア
PCをPiに交換していたので、リレーユニットは同じままなので、ここではPi固有のハードウェアのみをリストしました。
- モデルBPi
- Pifaceデジタルインターフェースカード
- Dallas Semiconductor(Maxim)DS9490R 1-WireUSBアダプター
- Dallas Semiconductor(Maxim)DS18S201-Wire温度計
以下のブロック図は、ハードウェアの一般的な配置を示しています。テキストアラートを送信するためのGSMモデムへのインターフェースは、後日追加される可能性があります。
ソフトウェア
RaspberryPiプログラムの構成は次のとおりです。
- イベントロガー– PiFace Digitalカードと通信し、主電源、ポンプの運転、バーナーの点火の3つの入力のステータスを記録します。イベントデータを日次ファイルに書き込みます。
- 温度ロガー– 1-Wireネットワークと通信し、ボイラーのさまざまなポイントの温度を記録し、データを日次ファイルに書き込みます。
- CGIプログラム–このプログラムはApacheによって呼び出され、カレンダーを生成し、ボイラーのイベントと温度のグラフを表示します。
プログラムはすべて元々Cfor Windowsで記述されており、Windows / 2000Serverを実行しているDellGX11PCで実行されていました。元のイベントロガーはVellemanK8055 USBインターフェイスカードと通信していましたが、プログラミングがPiFaceとは完全に異なっていたため、ほとんどのプログラムを書き直しました。
元の1-Wire温度ロガーはDalSemiDLLを使用していましたが、OWFSソフトウェアはすべての複雑さを隠しているため、このプログラムはI / Oセクションを除いてほとんど書き直されました。
CGIプログラムは、棒グラフとグラフ用に独自のカレンダーとインラインSVGを生成するため、最も複雑ですが、コーディングを2、3回変更するだけで変換するのが最も簡単であることがわかりました。これらの変更は、ファイルシステム統計のための関数定義と_stat()(Windows)の呼び出しをstatfs()(Linux)に置き換えていました。また、文字列を読み取るコードにいくつかの修正を加えました。
ファイルシステムの構造をここに示します。標準のLinuxおよびApacheディレクトリは黄色で示されています。青のカスタムディレクトリ。すべてが/ 1線式になり、ソースファイル、イベントデータ、温度データが、データを収集するデーモンとともに独自のサブディレクトリに送られます。
ステップ1
ディレクトリ構造を作成します:
sudo su
cd /
mkdir / 1-wire
mkdir / 1-wire / src
mkdir / 1-wire / events
mkdir / 1-wire / temperatures
ステップ2
プログラムをダウンロードしてコンパイルします:
wget http://www.noveldevices.co.uk/rpdl/logger.c -O /1-wire/src/logger.c
wget http://www.noveldevices.co.uk/rpdl/1-wire.c -O /1-wire/src/1-wire.c
wget http://www.noveldevices.co.uk/rpdl/server.c -O /1-wire/src/server.c
gcc -L / usr / local / lib -lpiface-1.0 -o / 1-wire / events / logger /1-wire/src/logger.c -lm
gcc -L / usr / local / lib -o / 1-wire / temperatures / 1-wire /1-wire/src/1-wire.c -lm
gcc -L / usr / local / lib -o / usr / lib / cgi-bin / server /1-wire/src/server.c -lm
ステップ3
いくつかの設定例ファイルとCSSファイルをダウンロードします:
wget http://www.noveldevices.co.uk/rpdl/1-wire.conf -O /1-wire/temperatures/1-wire.conf
wget http://www.noveldevices.co.uk/rpdl/server.conf -O /usr/lib/cgi-bin/server.conf
wget http://www.noveldevices.co.uk/rpdl/boiler.css -O /var/www/boiler.css
ステップ4
1-wire.confファイルには、1-wireプログラムおよびグラフを作成するCGIプログラムの構成情報が含まれています。各エントリについて以下に説明します(実際のレコードの順序は関係ありません):
- [Interval] =n –ポーリング間隔(秒単位)。ただし、以下の注を参照してください
- [DataDirectory] =データファイルを書き込むディレクトリ(末尾に/を付ける)
- センサーごとに:[DevicePath] =full-path-to-OWFS-directory-(with-trailing- /)plot-color Sensor-description
plot-colourは、#RRGGBB、#RGBCSSカラーとしての標準的なWebカラーです。
センサーの説明は、温度プロットに表示される短いフレーズです
ポーリング間隔は任意の秒数にすることができますが、OWFSが各センサーから温度を取得するのに通常2秒かかることに注意する必要があります。プログラムは、データ収集プロセスの開始時間と終了時間に基づいて実際の間隔時間を再計算し、収集の開始時間がずれないようにします。
詳細:セントラルヒーティングボイラーの監視
製造プロセス