#概要
BluemixのRaspberryPi登録レシピに登場するデバイス用のsampleプログラムは、どんなにセンサーがたくさん付いていようが固定の4項目のデータのみをBluemixに送信する作りになっている。
Raspberry Pi 2にセンサーを付け加えて固定4項目以外のデータをBluemixで取得するには、sampleプログラムのソースコードを修正してビルドすれば良い。その方法を整理する。
整理している内に長くなってきたので、(1)Sampleプログラムの仕組みの整理と(2)どこをどのように変更すればよいのかを分けることにした。
(1) 仕組みの理解
(2) センサーを付けてデータを拾う 温度センサーデジタル編(これ)
(3) センサーを付けてデータを拾う 温度センサーアナログ編
(4) センサーを付けてデータを拾う 温度センサーデジタル編(リベンジ)
(5) センサーを付けてデータを拾う 温度・湿度・気圧まとめて採取編
番外編 『ムック「日経Linux ラズパイマガジン 2015年春号 」電子工作入門キット パーツセット』に入っていたもの
#センサーの選定
手元にあるセンサーは次の2つのみ。
電子工作素人の私の評価は以下の通り。
センサー | 入出力 | Raspberry Pi 2との通信 | 特徴 | 評価 |
---|---|---|---|---|
温度センサー LM35DZ |
アナログ | A/D変換器を用いてデジタル(SPI) | 良)とくになし 悪)構成が複雑 |
△ |
I2C対応温度センサー (ADT7410使用) |
デジタル | デジタル(I2C) | 良)構成がシンプル 悪)はんだ付けが必要? |
△ |
「どちらが手っ取り早くできそうか?」という観点で評価した結果、まずは「はんだ付けなしでも大丈夫なのでは?」という淡い期待を持って「I2C対応温度センサー(ADT7410使用)」を使うこととした。
#回路(ネタ)
ムック「日経Linux ラズパイマガジン 2015年春号 」第3部 はじめての電子工作ステップ50の内、「No.21 I2Cを有効にしてアドレスをチェック 温度センサーを読んでみよう」に記載されている回路でやってみる。
#回路(設計)
元ネタの図の通りにFritzingで作ってみた。
ADT7410のパーツはここからから入手して、Fritzingにインポートした。
https://github.com/MozOpenHard/examples/blob/master/i2c-ADT7410/ADT7410.fzz
#回路(実装)
Fritzingで作った絵の通りにつなげてみた。
ADT7410は、はんだ付けせずに乗せてあるだけ。
#Raspberry Pi 2上で温度を読んでみる
作業はRaspberry Pi 2にログインして行う。
実行時ユーザは次の通り
$ : pi
# : root
-
設定ファイルの退避
# cd /etc/
# cp -p modules modules.`date +%Y%m%d`_1
-
設定ファイル修正(1つ目)
# vi /etc/modules
末尾に以下の行を追加する
i2c-dev
-
設定ファイル修正(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 -
raspi-configから設定するとどうなったのかを一応確認しておく
$ cd /etc/modprobe.d/
$ ll
ファイルは生成されたが0バイトだった。
したがって、コメントアウト状態と同じと判断しそのままにした。 -
i2c用ツールのインストール
# apt-get -y install i2c-tools
-
Raspberry Pi 2 再起動
# reboot
-
デバイスのアドレス確認
# i2cdetect -y 1
アドレスが表示されるはずが、表示されていない。。。
やはりはんだ付けが必要なのだろう。
ということで次は構成が複雑になりそうだけどアナログでチャレンジする。
#続き
(3) センサーを付けてデータを拾う 温度センサーアナログ編
#環境
Raspberry Pi 2 Model B
Raspbian
#参考
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