前回Raspberry PiにMySQLを導入しました。
でもデータがないと意味がないですよね(×_×;)

といことで今回は温度・湿度データが取得できるICを導入してみたいと思います(ง°̀ロ°́)ง

使うICはどんなもの?

HDC1000という秋月電子で売っていたものを購入しましたヾ(。>﹏<。)ノ

HDC1000の画像。これからRaspberry Piにつなげて温度と湿度を取得する。

HDC1000の良いところ!
  • 温度・湿度のデータを単一ICで取得できる
  • 取得データは一次変換するだけなので簡単に扱える
  • I2Cで通信できるのでデータ取得が簡単
  • 秋月電子に売っている(?)

秋月電子のサイトはこちら。

接続は簡単。ケーブルでつなぐだけです!

写真のようにHDC1000をRaspberry Piと接続します。ジャンパーが5本必要です。
HDC1000をraspberry piとつないだ様子

Raspberry Piのピン配置については以前の記事にまとめているので参考にしてください。

HDC1000とRaspberry Piの接続

配線をちゃんとしてもうまく動かない可能性があります。作ったプログラムが悪いのか設定が悪いのか分からなくなったら行き詰まってしまうので、ちゃんと接続されているかと設定が正しいかを確認しましょう。

まずはライブラリのインストール

I2Cを制御するためのライブラリやツールをapt-get installでインストールします。

i2cdetect を実行してみてましょう

i2cdetectコマンドでデバイスが接続されているかを確認できます。

うまくいくと下記のようにデバイスのIDが返ってきます。
i2cdetectがうまく動いた場合の画像。

うまくいかない時には?

それでもうまくいかない場合があると思うのでいくつか例をあげておきます。

i2cがsuper userでないと使えない状態になっている

I2Cデバイスは一般ユーザーだとアクセスできないのでsudoでsuper user権限で実行する必要があります。
ですが、忘れてしまうケースがあったりsuで実行するのはあまりよろしくありません。
ということで、ユーザーpiをi2cにアクセスできるi2cグループに追加します。

Raspberry Piの設定を変える方法

ダイアグで変える方法です。まずは下記コマンドを実行。

あとは画像のように、I2CをEnableにしてください。

/etc/modules に追記する

/etc/modules にi2c-devを追記します。

とやって開きます。vimでもemacsでもなんでもOKです。
開いたファイルに

と追記して保存終了してください。

プログラムを作ってみます。

HDC1000用のClassを作りました。Pin#4をReady信号を受け取るinput pinにしています。お好みでHDC1000_RDY_PINを変えてください。
サンプルプログラムも添付します。自己責任でお願いします。hdc1000-sample

仕様はTexas Instrumentsのサイトにあります。

HDC1000を使うためのクラス

サンプルのmakefileとmain関数です。

Makefile

makeで実行すれば実行ファイルhdc1000runができます。

まとめ

HDC1000を使ってRaspberry Piから温度・湿度を取得する方法をご紹介しました。ここからは実際にMySQLにデータを登録していきますよ(*´罒`*)ニヒヒ

記事を読んでいただいてありがとうございます。この記事がいいなと思ったら下記のSNSボタンのクリックをお願いします。励みになります😁