第5章 サンプルアプリケーションのカスタマイズ

前章では、サンプルアプリケーションの動作や使用方法について説明しました。サンプルアプリケーションの動作を確認し、あるいは改造してみることでArmadillo-IoTの開発手順を把握でき、オリジナルのシステムを開発する際に効率的に行えるようになるでしょう。本章では、サンプルアプリケーションのカスタマイズに関して、有用なドキュメントなどを紹介します。

5.1. 起動時に自動実行する

/etc/rc.localに起動時に実行したいコマンドを記述することで、プログラムを自動実行できます。サンプルアプリケーションを自動実行し、データを送信し続けるには、publish.py を/etc/ディレクトリにコピーし、/etc/rc.localの最後に下記のようにコマンドを追記してください。

cd /home/atmark
bundle exec python3 publish.py --times -1 &

図5.1 起動時に自動実行する


実行し続けるプログラムを起動する場合、コマンドの最後に & をつけて、バックグラウンド実行することを忘れないでください。

5.2. 他のセンサからのデータを扱う

クライアントサイドサンプルアプリケーションでは、Armadillo-IoTに内蔵されている温度センサの値を取得して、アップロードするよう実装されています。温度センサの値は、cat /sys/class/thermal/thermal_zone0/tempで取得できるように、ドライバが実装されています(class bmic_thermalの実装参照)。この他、GPIOやLEDの操作もsysfsを経由して行うことができますので、Pythonスクリプトからも容易に扱えるようになっています。

EnOcean、Wi-SUNなどは、全てシリアルポート[7]を通じて通信することができます。PythonではpySerial pipを使うことで、Rubyでは、serialport gemを使うことで、シリアルポートを扱うことができるようになります。

Python pip、rubygemはDebian GNU/LinuxをインストールしたPCと同様の手順でインストールや実行を行うことができます。

5.3. 他の言語で実装する

Armadillo-IoTの出荷用イメージには、Pythonの他に、Rubyが含まれています。今回のサンプルアプリケーションと同等の機能を持つプログラムを、他の言語を使って実装することもできるでしょう。

データのアップロードは、単純なREST API(HTTP POST)になっていますので、比較的簡単に実装できると思われます。しかし、Push通知を受け取るには、Pusherのライブラリが必要となります。Java用Pusherクライアントにはいくつかの実装があります。http://pusher.com/docs/client_libraries#android-java を参照してください。



[7] Linuxではttyデバイスとして扱います。