BluemixでRaspberryPi2のセンサーデータを拾う (2)センサーを付けてデータを拾う　温度センサーデジタル編

#<i class="fa fa-cubes" style="font-size:1em;"></i>概要
[BluemixのRaspberryPi登録レシピ](https://developer.ibm.com/recipes/tutorials/raspberry-pi-4/)に登場する[デバイス用のsampleプログラム](https://github.com/ibm-messaging/iot-raspberrypi/releases/tag/1.0.2)は、どんなにセンサーがたくさん付いていようが固定の4項目のデータのみをBluemixに送信する作りになっている。

Raspberry Pi 2にセンサーを付け加えて固定4項目以外のデータをBluemixで取得するには、[sampleプログラムのソースコード](https://github.com/ibm-messaging/iot-raspberrypi/blob/master/samples/c/)を修正してビルドすれば良い。その方法を整理する。

整理している内に長くなってきたので、(1)Sampleプログラムの仕組みの整理と(2)どこをどのように変更すればよいのかを分けることにした。

[(1)　仕組みの理解](http://qiita.com/getapojim/items/b76ea2cfadaff6dfd159)
(2)　センサーを付けてデータを拾う　温度センサーデジタル編(これ)
[(3)　センサーを付けてデータを拾う　温度センサーアナログ編](http://qiita.com/getapojim/items/12e5cb64a8046ab033e9)
[(4)　センサーを付けてデータを拾う　温度センサーデジタル編（リベンジ）](http://qiita.com/getapojim/items/0ea4c7369d342d5b00d5)
[(5)　センサーを付けてデータを拾う　温度・湿度・気圧まとめて採取編](http://qiita.com/getapojim/items/dfa526ece3af603b981e)
番外編 [『ムック「日経Linux ラズパイマガジン 2015年春号 」電子工作入門キット パーツセット』に入っていたもの](http://qiita.com/getapojim/items/c90edd38c0ad9d5eb379)

#<i class="fa fa-cube" style="font-size:1em;"></i>センサーの選定
[手元にあるセンサーは次の２つのみ。](http://qiita.com/getapojim/items/c90edd38c0ad9d5eb379#所感)
電子工作素人の私の評価は以下の通り。

|センサー|入出力|Raspberry Pi 2との通信|特徴|評価|
|:--|:--|:--|:--|:--|
|[温度センサー<br>LM35DZ](http://qiita.com/getapojim/items/c90edd38c0ad9d5eb379#3-温度センサー)|アナログ|[A/D変換器](http://qiita.com/getapojim/items/c90edd38c0ad9d5eb379#13-10ビット2ch-adコンバータ)を用いてデジタル(SPI)|良）とくになし<br>悪）構成が複雑|△|
|[I2C対応温度センサー<br>(ADT7410使用)](http://qiita.com/getapojim/items/c90edd38c0ad9d5eb379#20-i2c対応温度センサー)|デジタル|デジタル(I2C)|良）構成がシンプル<br>悪）はんだ付けが必要？|△|

「どちらが手っ取り早くできそうか？」という観点で評価した結果、まずは「はんだ付けなしでも大丈夫なのでは？」という淡い期待を持って「I2C対応温度センサー(ADT7410使用)」を使うこととした。

#<i class="fa fa-cube" style="font-size:1em;"></i>回路（ネタ）
ムック「日経Linux ラズパイマガジン 2015年春号 」第3部 はじめての電子工作ステップ50の内、「No.21 I2Cを有効にしてアドレスをチェック　温度センサーを読んでみよう」に記載されている回路でやってみる。

掲載されていた図（Excelで作図）
![温度を測定するための回路.png](https://qiita-image-store.s3.amazonaws.com/0/85506/36e85498-ce4d-b29a-0310-8058f14b5e15.png)

#<i class="fa fa-cube" style="font-size:1em;"></i>回路（設計）
元ネタの図の通りにFritzingで作ってみた。
ADT7410のパーツはここからから入手して、[Fritzing](http://fritzing.org/download/)にインポートした。
https://github.com/MozOpenHard/examples/blob/master/i2c-ADT7410/ADT7410.fzz
![温度を測定するための回路2.png](https://qiita-image-store.s3.amazonaws.com/0/85506/3b1d8ca2-fa2b-9743-1f07-ba5f84826c0e.png)

#<i class="fa fa-cube" style="font-size:1em;"></i>回路（実装）
Fritzingで作った絵の通りにつなげてみた。
ADT7410は、はんだ付けせずに乗せてあるだけ。
![温度デジタル_回路(実装).jpg](https://qiita-image-store.s3.amazonaws.com/0/85506/9c6451be-f38b-cd4e-163d-e2040f428404.jpeg)

#<i class="fa fa-cube" style="font-size:1em;"></i>Raspberry Pi 2上で温度を読んでみる
作業はRaspberry Pi 2にログインして行う。
実行時ユーザは次の通り
$ : pi
\# : root

1. 設定ファイルの退避
`# cd /etc/`
``# cp -p modules modules.`date +%Y%m%d`_1``

2. 設定ファイル修正(1つ目)
`# vi /etc/modules`
末尾に以下の行を追加する
`i2c-dev`

3. 設定ファイル修正(2つ目)
`# vi /etc/modprobe.d/raspi-blacklist.conf`
以下の行を先頭に#を付けてコメントアウトする
`# blacklist i2c-bcm2708`
という手順らしいのだが、私の場合はこのファイル「/etc/modprobe.d/raspi-blacklist.conf」が無かった。
その場合は↓raspi-configコマンドで設定するらしい。
http://qiita.com/takuya-andou/items/ba257d9df1b7e9e31369

4. raspi-configから設定するとどうなったのかを一応確認しておく
`$ cd /etc/modprobe.d/`
`$ ll`
![ファイル生成された.png](https://qiita-image-store.s3.amazonaws.com/0/85506/49921105-5cfd-e822-bbe6-68ac09da85c2.png)
ファイルは生成されたが0バイトだった。
したがって、コメントアウト状態と同じと判断しそのままにした。

5. i2c用ツールのインストール
`# apt-get -y install i2c-tools`

6. Raspberry Pi 2 再起動
`# reboot`

7. デバイスのアドレス確認
`# i2cdetect -y 1`
![アドレス表示されない.png](https://qiita-image-store.s3.amazonaws.com/0/85506/299b1351-2419-35a1-51b4-715a12d1d55c.png)
アドレスが表示されるはずが、表示されていない。。。
やはりはんだ付けが必要なのだろう。
ということで次は構成が複雑になりそうだけどアナログでチャレンジする。

<!--
#<i class="fa fa-cube" style="font-size:1em;"></i>修正内容（設計）

#<i class="fa fa-cube" style="font-size:1em;"></i>修正内容（実装）
-->

#<i class="fa fa-cube" style="font-size:1em;"></i>続き
[(3)　センサーを付けてデータを拾う　温度センサーアナログ編](http://qiita.com/getapojim/items/12e5cb64a8046ab033e9)

#<i class="fa fa-cube" style="font-size:1em;"></i>環境

[Raspberry Pi 2 Model B](https://www.raspberrypi.org/products/raspberry-pi-2-model-b/)
[Raspbian](https://www.raspberrypi.org/downloads/raspbian/)

#<i class="fa fa-book" style="font-size:1em;"></i>参考
Fritzingダウンロード
http://fritzing.org/download/

Fritzing用のADT7410のパーツ
https://github.com/MozOpenHard/examples/blob/master/i2c-ADT7410/ADT7410.fzz

raspi-blacklist.confが無いときの対処
http://qiita.com/takuya-andou/items/ba257d9df1b7e9e31369