開発Divのgamiです。
唐突ですが、Rasberry-piを購入しました。
何故なら弊社は主にデータを蓄積、分析する製品を開発しておりますが、データ自体を取得するというのは本来範囲外であるため、トータルにユーザをソリューションを提供する将来も見据えるとIoTのTも必須になってくるものと思われます。
おそらく、そんな理由で領収書は落とせるのではないかという目論見で購入したRasberry-piですが、思った以上にできることが多い印象です。
以下にRasberry-piを買ってやったことと、参考になったことを書いていきたいと思います。
購入したRasberry-piと諸々
Rasberry-piを始めるにあたり購入したもの一覧です。
・Rasberry-pi3 モデルB
・ケース
・HDMI
・MicroSDカード16GB
・USBケーブル付き電源(1.5A)
・SENSE HAT(センサー)
センサー以外は全部秋葉原の千石電商1号店で全部揃えました。
まず秋葉原でもRasberry-piを売っているところが限られていますが、こちらのお店なら専用のコーナーまであるのでまず間違いないです。
電源はUSBなのでスマホの充電器でもいけると思いきや、5V/2.5A以下では動作が安定しないとのことなので購入。
ネットで全部揃えた方が確かに安いですが、こちらで買うとMicroSDカードには最初から日本語版のRaspbian OSがインストール済みだったり、初期不良も対応してくれるので便利です。
何よりすぐに遊びたかった!
とりあえず仮組。説明書などはないのでネットの情報が頼り。
初起動
本体にMicroSDカードを指して、ケースに詰めて、HDMIをディスプレイに繋いで、電源ケーブルを繋ぐと、何も問題なくRaspbianのGUIが起動しました。
スイッチなどはないストイックな構成です。
また最初から日本語版なので、初回起動設定も楽々です。
この手のものは日本語化にするだけで一苦労なイメージがありますが、この簡易さが流行した理由の一つでもあるのでしょう。
起動するとsenserHATが虹色に光始めます。主張が激しい。
センサーからのデータ取得準備
raspbianには最初からsenseHATのライブラリ、起動に関係するモジュールがインストールされており、リファレンスサイトまであるので本当に至れり尽くせりです。
しかし、pyenvなどを入れてバージョン管理したい場合は改めてraspbianにインストールされているセンサー関連のモジュールをインストールする必要があります。ここで色々ハマりました。
senseHATを使用するためにsense_hatというモジュールインストールしなければならず、そのためにpip insatall sense_hatを実行するにはPillowというpytonのモジュールがインストールされていなければならず、 Pillowをインストールするためにpip install Pillowを実行するためには、apt-get installでlibjpeg-devをインストールする必要がありました。
つまり以下の順番でインストールする必要があります。
1.apt-get install libjpeg-dev
2.pip install Pillow
3.pip install sense_hat
しかも最後のpip install sense_hatの途中で重めのモジュールをインストールするため5分以上掛かります。
これでようやくsense_hatモジュールのインストールは完了しますが、こいつをimportしてリファレンス通りにソースを書いて実行しても、RTIMUのモジュールが足りないとエラーが出ます。
さらにもうひと手間、以下のサイトに沿ってRTIMULibというモジュールをcmakeして環境変数に突っ込んでようやく動作しました。
How to install and use RTIMULib - Raspberry Pi Forums
そこまで厳密にバージョン管理する必要なく、簡単にsenseHATを使用したいなら、OS標準のpythonを使用することを強くお勧めします。
センサーからのデータ取得
もう簡単です。上記に記載したリファレンス通りに温度やら湿度やらを取得する記述したソースを実行するだけです。
ただ温度は、センサーがCPUに近いせいで5℃ほど環境温度より高くなっています。
終わりに
開発者として嬉しいところは、センサー関連で必要になる組み込み系ライブラリが、cmakeせずに最初からインストールされていることは本当に助かります。
取得したデータはそのまま弊社製品のKeepdata Hubに送信してデータの蓄積も可能です。
ただ、蓄積する前にデータの加工、ノイズ処理といった処理に関してはKeepdata Hubで実施するよりは、データを取得する実機(Rasberry-pi等)上で実施した方が効率が良いので、実機上でどこまでデータの調整をしていけばいいのか、そういったところが課題になってくると思います。
senseHATは甘え。