オリジナルのソースをビルドすると、GPIOの操作はシミュレーションされたものとなります。つまり、Webインタフェースで、GPIOのピンのON/OFFを制御する機能が組み込まれることになります(ソースのsimio/io_simulation.cをみてください)。
ただ、このままではRaspberry PiのGPIOを操作できないため、Raspberry Pi用に筆者が少し書き直したものを追加します。OSDNに関係するファイルを用意しました(OSDN:alljoyn-raspber)。ビルドに必要なファイルはraspGPIO.tgzとbin.tgzですので、それらをダウンロードします。
GPIO制御用ライブラリもインストールします。最近はパッケージ化されたようなので、
Apt-get install libwiringPi
と、インストールします。
alljoyn-jsの下でraspGPIO.tgzを展開すると、raspbianとjs-raspという名前のディレクトリができます。raspbianの下には、wiringPiライブラリを使用して、GPIOを制御するモジュールを入れてあります。js-rasp下には、JavaScriptで書かれたクライアント(アプリケーション)があります。
bin.tgzにはJavaScriptで使用するscriptが格納されているのでそれらを展開後、/usr/local/bin/に格納します。ビルドするため、SConstructを編集して、ビルド時に必要なlibwiringPiの追加と、GPIO操作モジュールの入れ替えを行います。
root@AllJoyn# diff SConstruct* 165c165 < env.Append(LIBS = ['libwiringPi', 'libwiringPiDev', 'libm', 'libcrypto', 'libpthread', 'librt']) --- > env.Append(LIBS = ['libm', 'libcrypto', 'libpthread', 'librt']) root@AllJoyn# diff SConscript* 70c70 < io_sources = [Glob('raspbian/*.c')] --- > io_sources = [Glob('simio/*.c')]
オリジナルと同様にビルドします。
export DUK_TAPE=(duktapeをインストールしたディレクトリ) scons WS=off CPU=arm CROSS_COMPILE=/usr/bin/
実行は次のようにします。まず、ヘルプを表示します。
sudo ./alljoynjs --help Usage: sudo ./alljoynjs [--debug] [--daemon] [--log-file <log_file>] [--nvram-file <nvram_file>] [--name <device_name>] [script_file]
--nameの後ろには、後で説明するAndroid端末で表示する名称を指定します。script_fileは、Java scriptで記述したクライアント(アプリケーション)を指定します。例題をjs-raspに幾つか置いています。
Copyright © ITmedia, Inc. All Rights Reserved.