Raspberry PiにAllJoynを移植して、IoTを自作する(7/10 ページ)
「いろいろなデバイスがシームレスにつながり、簡単に操作できる」――IoTが目指すその姿を、Raspberry Piと機器相互接続フレームワーク「Alljoyn」で自作してみましょう。
4.5.1 GPIOを操作するために
オリジナルのソースをビルドすると、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.
関連記事
- 「Alljoyn」のいまをクアルコムブースで見る
ET2015のクアルコムブースにて大きく展示されていたのは、機器相互接続フレームワーク「Alljoyn」のデモだ。機器連携シナリオ“ストーリー”の様子も紹介されている。 - 激化する“IoTの陣取り合戦”欠けているのは「共通言語」
IoTの未来像として、「いろいろなデバイスがシームレスにつながり、簡単に操作できる」様子が挙げられるが、AllSeen Allianceのディレクターはそのために必要なのは「共通言語だ」という。 - Allseen Allianceの中核技術「Alljoyn」とは何か
Linux Foundationが設立した非営利団体「Allseen Alliance」のキモとなるのが「Alljoyn」だ。IoTについて“現状の使いにくさ”の打破を目指す、この団体の中核技術を解説する。 - IoT団体によるUPnP(Universal Plug and Play)吸収を読み解く
インテルやサムスンらが主導するIoT標準化団体「OIC」が、UPnP(Universal Plug and Play)Forumを吸収した。UPnPの推進する“挿すだけで使える”をIoTに持ち込むことは理にかなっているように思えるが、AppleのHomeKitや、GoogleのProject Brilloに対する競争力はあるだろうか。