Raspberry Pi
Overview
Raspberry Pi はLinuxが動作する有名で低コストな小型コンピュータである。 USBとGPIOピンを用いてM2Mソリューションのプロトタイピングを行うのに非常に適している。
このセクションでは、Raspberry Piに Things Cloud のエージェントと関連するドライバをインストールする方法を記載し、リモートからRaspberry Piやそこに繋がれているセンサ群を管理し、コントロールできるようにする。 これによって、
- 機能や接続管理、ソフトウェア管理などの標準的なエージェントの機能を活用することができる。
- Raspberry Piのシリアル番号を用いて、リモートから個体認証ができる。
- GitHub上のRaspberry Piファームウェアリポジトリから、リモートでRaspberry Piのファームウェアを更新することができる。
- TinkerForge センサを利用し、クラウドからコントロールすることができる。
- SensorTag を利用し、センサデータをクラウドにアップロードすることができる。
- EnOceanGW および EnOcean センサを利用し、センサデータをクラウドにアップロードすることができる。
前提条件
エージェントをインストールするRaspberry PiのOSはRaspbianを前提としています。 また、 Things Cloud にRaspberry Piを登録するため、シリアルナンバーを知る必要があります:
$ cat /proc/cpuinfo
Processor : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 464.48
Features : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2708
Revision : 000e
Serial : 0000000017b769d5
“Serial"の行に記されている番号をメモしてください。 Raspberry Piや接続されているデバイスに必要な電圧が供給されていることを確認してください。 標準的なUSB電源はモデムと同様に追加デバイスに電源を供給するには不十分なことがあります。 もっとも簡単な解決法はホストポートとクライアントポートの両方に電源を供給するUSBハブを利用することです。製品例. Raspberry Piをホスト側、他のデバイスをクライアント側に接続してください。
インストールと登録
Raspberry Piにログインし、エージェントをインストールします。 以下の手順を実行してください。
$ wget https://developer.ntt.com/iot/docs/files/agentInstall.sh
$ chmod 700 agentInstall.sh
$ ./agentInstall.sh
エージェントがインストールできたら、設定ファイルを書き換える必要があります。設定ファイルは通常 “/etc/cumulocity-agent.properties” に配置されています。設定ファイルを開き、ホスト名を適切な名前に書き換えてください。
Things Cloud のページをWebブラウザで開き、“Registration"ページに移動してください。 前のステップでメモを取ったシリアルナンバーを入力し、“Register Device"を押下してください。
Raspberry Piを再起動します。
$ sudo reboot
Raspberry Piの再起動はインストールされているソフトウェアや接続されているセンサ、ネットワークの種類にもよりますが、2分ほどで完了します。 再起動が完了したら、登録を承認してください。
Raspberry Piを管理するため、“All devices” をクリックしてください。 標準では"RaspPi «hardware model» «serial number»“という名前で表示されます。 デバイスの名前は"Info"タブで編集できます。
Tinkerforge製品を使う
エージェントはTinkerforge製品をサポートしており、Tinkerforge daemon for Raspberry Piがインストールされます。
SensorTagを使う
エージェントはTexas Instruments社のSensorTag(CC2650STK)をサポートしています。 エージェント起動後、SensorTagの電源ボタンを押下するとRaspberri Piと自動的にBLE(Bluetooth Low Energy)で接続され、クラウドに登録済みのRaspberry Piの子デバイスとして登録されます。
SensorTagのデータ収集については、親デバイスであるRaspberry Piの「設定」メニューで設定値を変更することができます。 設定値の変更は、SensorTagのBLE接続の切断を伴うことに注意してください。 設定値の変更が正常に完了すれば、自動的にBLE接続を再開します。
- “デバイス管理"アプリでRaspberry Piのページを開きます。
- メニューから"設定"を開きます。
- 設定値を記載・変更し、“保存"をクリックします。
- 画面上部に"設定が保存されました!“と表示されれば完了です。
- メニューから"制御"を開くと、“設定を更新"のログが表示されます。
設定可能な値は以下の通りです。
- nttcom.enabledSensors : SensorTagのセンサ群の中で、有効化したいセンサを指定します。指定できる値は all / barometer / humidity / movement / optical / temperature です。複数の値を選択したい場合は “,” で区切ります。
- nttcom.scan.interval : Raspberry PiがSensorTagとのBLE接続処理を行う周期です。単位はmsecです。
- nttcom.collect.interval : Raspberry PiがBLE接続済みのSensorTagからデータを読み取る周期です。単位はmsecです。
- nttcom.send.interval : Raspberry Piが収集したデータをクラウドにアップロードする周期です。単位はmsecです。
- nttcom.whiteList : Raspberry Piへの接続を許可するBLEアドレスのリストです。複数のBLEアドレスを記載する場合は”,“で区切ります。この設定値が存在しない場合は全てのSensorTagが接続可能となります。
EnOceanセンサを使う
EnOceanはエネルギーハーベスティング無線通信技術のことを指し、超低消費電力による無線通信を実現します。 エージェントはPressac communications社のEnOcean IP Gateway(60.IP.GWAY.24V.DC.928)から送信されるEnOcean対応センサのデータを受け取り、クラウドにアップロードすることができます。
現在エージェントが対応しており、動作確認済みのEnOceanセンサは以下の製品となります。
- 温度・湿度センサ(60.TEMP.HUM.928)
- CO2濃度・温度・湿度センサ(60.CO2.SLR.TMP.HUM.928)
Installing a 3G modem
Raspberry Piで3Gモデムをインストールするには多くの方法が利用可能 です。 Linuxで動作し、我々がRaspberry Pi上でテストした3Gモデムは Telekom Speedstick Basic (Huawei E3131)です。
Raspberry Pi Model Bで3Gモデムを利用する際には、電源接続型のUSBハブが必要です。 一部のモデムはRaspberry Piをインターネットに接続すると同時に接続統計情報を読み込みません。 したがって、この機能は Things Cloud のLinuxモデムドライバではデフォルトで無効になっています。
リモートからのファームウェアアップグレード
エージェントを利用することで、Raspberry Piのファームウェアをrpi-updateツールを使ってアップグレードすることができます。 ファームウェアを設定するためには以下の操作を行います。
- Things Cloud のWebページを開き"ファームウェア"をクリックします。
- “ファームウェアを追加"をクリックします。
- ファームウェアの名前を入力します。URLには https://github.com/Hexxeh/rpi-firmware でファームウェアバージョンを選択し、Gitのハッシュを入力してください。(“commits"をクリックし、そこでバージョンを選択してください。ハッシュはURLの末尾の文字列です。)
- ファームウェアバージョンを保存してください。
Raspberry Piにファームウェアを設定するためには以下の操作を行います。
- Raspberry Piの"Software"タブをクリックします。
- “Install firmware"をクリックします。
- インストールしたいファームウェアバージョンを選択します。
- “Install"をクリックします。
上記の手順を実行すると、Raspberry Piはファームウェアのインストールを開始し再起動します。 “Control"タブに移動し、アップグレードの手順に従ってください。 再起動の後、“Successful” か “Failed” の状態となります。
トラブルシューティング
エージェントはデバッグ情報をRaspberry Piのログに記載します。 接続上の問題などのトラブルシュートのためには以下のコマンドを利用してください。 (YYYY-MM-DDは年月日が入ります。)
$ tail -f /var/log/cumulocity-agent-YYYY-MM-DD.log
エージェントを開発する
もしRaspberry Piに他のデバイスを接続し、 Things Cloud から管理したい場合にはREST API)を参照してください。