PiでDS18B20温度センサーを使用する方法は?


12

DS18B20温度センサーがいくつかあります。これらは通常Arduinoプロジェクトで使用されますが、Piで使用しない理由がわかりません。デバイスを駆動するように見えるDigiTempというソフトウェアがあり、それをコンパイルしてPiにインストールしました。それほど明確ではないことは、どのようにそれらを接続するのですか?UARTに直接?

回答:


5

Adafruitは、1-wireサポートが組み込まれたoccidentalis呼ばれるディストリビューションをリリースしました。

DS18B20温度センサーには1本のワイヤが最も一般的に使用されます。Piには「ハードウェア」の1ワイヤサポートはありませんが、ある程度の成功を収めることができます。DS18B20をVCCで3Vに、グランドからグランドに、データをGPIO#4に接続します。次に、データからVCCに4.7Kの抵抗を接続します。

これにより、次のようなコマンドで温度を読み取ることができます

cat /sys/bus/w1/devices/28-*/w1_slave

digitempをそれらで動作させることができるかどうかはわかりませんが、温度グラフを取得したいだけであれば、muninプラグインを書くのはかなり簡単です。


Arch Linuxで1-wireドライバーを使用する方法はありますか?
トマス

@Tomas、私はArch Linuxを使っていませんが、最終的にはそこにモジュールが入ってくると思います。それまでの間、カーネルに自分でパッチを適用する必要があります。
ジョンラルーイ

5
GPIO 4の1ワイヤは公式カーネルでサポートされるようになりました(8月23日からの更新)。ただし、カーネルを更新する必要があります(カーネル3.2に基づいていることを確認してください)。次にwirew1-thermモジュールを挿入します。
レジストフアダムスキー

4

秘密のソースはこのページの最後の行だと思います

UARTから1線への変換を行うDS9097Uにリンクします

以前、これらのデバイスで「pic arbiter」を使用しました。同様の役割で機能し、1-wireデバイスからデータを取得し、UARTによる消費に適したものにします。

MCP9804などのI2CデバイスをGPIOピンに直接接続することもできます。欠点は、4本のワイヤが必要なことです


ありがとう。可能であれば、別のICを追加せずにセンサーを使用したいと思います。私は3つのGPIOピンを費やすことを気にしません。GPIOを直接使用して1線式デバイスを簡単にインターフェイスできますか?
トマス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.