【raspberry pi】ラズパイで気温の測定 その1


こんにちは。tobiです。
今回もraspberry piを使って勉強をしていきたいと思います。

今回のテーマは、気温の計測です。

まず、今回用意していただく、部品は以下のものです。

・ブレッドボード
IMG_4795

・ラズパイの基盤
IMG_4803

・ジャンプワイヤ
IMG_4796

・I2C・16ビット温度センサモジュール(ADT7410)

※温度センサモジュールにピンヘッダを半田付けしましょう
IMG_4836

以上です。


こちらが今回作成する電子工作のイメージです。

kion

温度センサにはGND, VDD, SDA, SCLがあります。GNDを6番ピン,VDDを1番ピン, SDAを3番ピン, SCLを2番ピンにつなぎます。

各ピンの役割はこちらを参照してください。

また、新しい用語が出てきましたね!こちらの用語についても勉強していきましょう。

SCL(シリアルクロック信号) ・・・同期を取るための信号線。通常はマスター→スレーブの一方向。

SDA(シリアルデータ信号) ・・・SCLに同期し、データの転送に用いる信号線。マスター、スレーブのどちらからも送信されうる。

それでは実際に接続してみます。

IMG_4838


ここからは、実際に気温を取得するためのプログラムを書いてみましょう。

今回も主にターミナルを使った開発になります。

/etc/modulesにi2c-bcm2708を追加します。ここではカーネルモジュールの読み込みを行っています。

ここではSPIモジュールをブラックリストから外すという処理を行います。「blacklist i2c-bcm2708」をコメントアウトしましょう。

ここで再起動。

i2c-toolsのインストールを行い、その後i2cdetectでデバイスの検出を行います。

※i2cdetect -y 1という箇所ですが、raspberrypiのハードウェアのリビジョンにより、「i2cdetect -y 1」の後ろの数字ですが、チャンネルが0か1か変わるとのことです。(R1:0, R2以上:1)

I2Cアドレス「0x48」になにかが取れているようですね。

※ちなみに48の前の「0x」とは16進数の数字を扱う場合にアドレスの前に記述されるものです。

ここからは「0x48」の中身が何かを探っていきましょう。

ここからは、rubyを利用し、i2c-deviceというgem(rubyに標準搭載されているモジュール)を使い、気温の取得を行います。

ここからは adt7410.rbに記載するスクリプトを記載します。

実際にスクリプトを実行してみましょう!!

気温が取れました!現在の気温は「27度」のようです!


みなさん、いかがでしたでしょうか?

次回は、もう本日学んだことを少し発展させ、1日の気温の変化を計測し、グラフにしてみたいと思います!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です