昔、中学校で、日誌に温度と湿度を書いていたことを思い出すことがあります。すでに遠い記憶となって、何の日誌だったかは思い出せないでいますが、当時の生活環境で温度と湿度をペアとして先生に記録を指示されていたのでしょう。
こうしたとき、今日のように玄箱(pro)と「温湿度計測ユニット」を簡単に接続して温湿度観測の自動記録ができらたよかったですね。
と、まえおきを書きましたが、気楽に玄箱(pro)に接続できる「温湿度計測ユニット」が見つかれば、後は MRTG に温度と湿度の収集とグラフ化させて、それは実現できそうです。
プログラム
まずは、プログラム単体で測定値を標準出力に表示するプログラムを作る必要があります。作成したプログラムを以下に示します。
ソース・リスト中には、コマンドとして送信するコードが埋め込まれています。1-Wire システムでも、一つだけのデバイスをつなぐのであれば、これだけでかまわないようです。これらのコマンドについては、データシートと見比べてみてください。
簡単に受信フォーマット部分だけを説明しますと、「温度データ受信指示」部分がマニュアルでいうところの、READ MEMORY SEQUENCE
に相当しており、ここで 14 バイト受信される中の 8 バイト分(Read 8 Bytes Data)が DS18S20 側の MEMORY
MAP のコピー(中継して送られてくる)であり、その冒頭2バイトが温度データ部です。
これは、全体としてのデータ列としては、4 と 5
バイト目ですので、それを狙って拾い出し数値化しています。
なお、デフォルトでは 9600BPS での転送レートに設定されています。