Piに温度センサを接続してみました。今回接続をしたのは、「DS18B20」という型式の温度センサです。屋外の気温を測れればと思い防水タイプのものを選びました。Semiconductorの製品だったのでしょう)です。このDS18B20は-55°C~125°Cを計測出来、-10°C~85°Cの範囲で±0.5°Cの精度があります。電源電圧は3.0Vから5.5Vです。インターフェースは独自の1-Wire®です。正確にはDS18B20は製造終了でDS18B20+に移行していく様です。プラスの有無の違いはデータシートに記載がありませんでした。Maxim的型式にMAX31820があります。ソフトウェア互換があり徐々にこちらに代わっていくのでしょう。(精度は少し劣ります。10°C~45°Cの範囲で±0.5°Cの精度です。)接続は7番ピン(GPIO4)に接続します。カーネルモジュールのソフトウェアの制限のため接続ピンは変更できません。Raspbianは1-Wireで通信するソフトウェアを持っています。w1-thermでカーネルモジュールをロードします。/sys/bus/w1/devices/w1_bus_master1/w1_master_slavesで接続しているデバイス(温度計)の固有番号が表示されます。このコードは8bitsのファミリーコードと48bitsのシリアルナンバーから構成されています。DS18B20の場合ファミリーコードは28Hexとなります。/sys/bus/w1/devices/28-xxxxxxxxxxxx/w1_slave(28-xxxxxxxxxxxxは上のコマンド実行で得られた結果)を実行すると温度を含む結果が得られます。t=4625t=以下の数字を1000で割ると実温度となります。上記の例の場合4.625°Cを表しています。このセンサの値を10分毎に記録してみました。結果はあまり良くありませんでした。データを取得できない場合があり、欠測が発生しました。(一日144回データが取得されますが一日約10回ほど欠測しました)プログラムはリトライを最大10回行うようにしていますが、それ以前に時々センサと通信出来ない状況が発生しているのかもしれません。実験的に使用するならば問題はにかもしれませんが、定期的に記録し続ける用途には今のままでは適さないようです。自分で1-Wire用のソフトウェアを書けば良いのでしょうが1-Wireの通信の仕組みはちょっと複雑です。物理的な接続は簡単ですがマルチドロップ可能な仕組みがソフトウェアを複雑にしています。1-Wireがシリアルバスとしてあまり広く広がらなかったのはそんな理由があるのかもしれません。14:12初めまして。購入した際に確認したところ、DS18B20+は、RoHS指定対象の鉛フリー対応品との事でした。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。コメントデータの処理方法の詳細はこちらをご覧ください。WordPress.。